Skip to content

Commit a3bcb27

Browse files
committed
Add message to response body for Cloud Foundry security error
See gh-7108
1 parent 8e160d7 commit a3bcb27

File tree

2 files changed

+8
-0
lines changed

2 files changed

+8
-0
lines changed

spring-boot-actuator/src/main/java/org/springframework/boot/actuate/cloudfoundry/CloudFoundrySecurityInterceptor.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424

2525
import org.springframework.boot.actuate.cloudfoundry.CloudFoundryAuthorizationException.Reason;
2626
import org.springframework.boot.actuate.endpoint.mvc.MvcEndpoint;
27+
import org.springframework.http.MediaType;
2728
import org.springframework.util.StringUtils;
2829
import org.springframework.web.cors.CorsUtils;
2930
import org.springframework.web.method.HandlerMethod;
@@ -74,6 +75,9 @@ public boolean preHandle(HttpServletRequest request, HttpServletResponse respons
7475
}
7576
catch (CloudFoundryAuthorizationException ex) {
7677
this.logger.error(ex);
78+
response.setContentType(MediaType.APPLICATION_JSON.toString());
79+
response.getWriter()
80+
.write("{\"security_error\":\"" + ex.getMessage() + "\"}");
7781
response.setStatus(ex.getStatusCode().value());
7882
return false;
7983
}

spring-boot-actuator/src/test/java/org/springframework/boot/actuate/cloudfoundry/CloudFoundrySecurityInterceptorTests.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@
2828
import org.springframework.boot.actuate.endpoint.mvc.EndpointMvcAdapter;
2929
import org.springframework.http.HttpHeaders;
3030
import org.springframework.http.HttpStatus;
31+
import org.springframework.http.MediaType;
3132
import org.springframework.mock.web.MockHttpServletRequest;
3233
import org.springframework.mock.web.MockHttpServletResponse;
3334
import org.springframework.util.Base64Utils;
@@ -87,6 +88,9 @@ public void preHandleWhenTokenIsMissingShouldReturnFalse() throws Exception {
8788
assertThat(preHandle).isFalse();
8889
assertThat(this.response.getStatus())
8990
.isEqualTo(Reason.MISSING_AUTHORIZATION.getStatus().value());
91+
assertThat(this.response.getContentAsString()).contains("security_error");
92+
assertThat(this.response.getContentType())
93+
.isEqualTo(MediaType.APPLICATION_JSON.toString());
9094
}
9195

9296
@Test

0 commit comments

Comments
 (0)