diff --git a/spring-boot-project/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/session/SessionsEndpoint.java b/spring-boot-project/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/session/SessionsEndpoint.java index 36554ce435..10c29f69bd 100644 --- a/spring-boot-project/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/session/SessionsEndpoint.java +++ b/spring-boot-project/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/session/SessionsEndpoint.java @@ -60,6 +60,9 @@ public class SessionsEndpoint { @ReadOperation public SessionDescriptor getSession(@Selector String sessionId) { Session session = this.sessionRepository.findById(sessionId); + if (session == null) { + return null; + } return new SessionDescriptor(session); } diff --git a/spring-boot-project/spring-boot-actuator/src/test/java/org/springframework/boot/actuate/session/SessionsEndpointTests.java b/spring-boot-project/spring-boot-actuator/src/test/java/org/springframework/boot/actuate/session/SessionsEndpointTests.java index 871c7cb8e7..b0dd0df047 100644 --- a/spring-boot-project/spring-boot-actuator/src/test/java/org/springframework/boot/actuate/session/SessionsEndpointTests.java +++ b/spring-boot-project/spring-boot-actuator/src/test/java/org/springframework/boot/actuate/session/SessionsEndpointTests.java @@ -81,6 +81,12 @@ public class SessionsEndpointTests { assertThat(result.isExpired()).isEqualTo(session.isExpired()); } + @Test + public void getSessionWithIdNotFound() { + given(this.repository.findById("not-found")).willReturn(null); + assertThat(this.endpoint.getSession("not-found")).isNull(); + } + @Test public void deleteSession() { this.endpoint.deleteSession(session.getId()); diff --git a/spring-boot-project/spring-boot-actuator/src/test/java/org/springframework/boot/actuate/session/SessionsEndpointWebIntegrationTests.java b/spring-boot-project/spring-boot-actuator/src/test/java/org/springframework/boot/actuate/session/SessionsEndpointWebIntegrationTests.java index 14ff946e07..0fb7578ec3 100644 --- a/spring-boot-project/spring-boot-actuator/src/test/java/org/springframework/boot/actuate/session/SessionsEndpointWebIntegrationTests.java +++ b/spring-boot-project/spring-boot-actuator/src/test/java/org/springframework/boot/actuate/session/SessionsEndpointWebIntegrationTests.java @@ -80,6 +80,14 @@ public class SessionsEndpointWebIntegrationTests { .isEqualTo(new JSONArray().appendElement(session.getId())); } + @Test + public void sessionForIdNotFound() { + client.get() + .uri((builder) -> builder.path( + "/actuator/sessions/session-id-not-found").build()) + .exchange().expectStatus().isNotFound(); + } + @Configuration protected static class TestConfiguration {