Skip to content

Commit f821112

Browse files
author
nigel.zheng
committed
feat: update WithTokenTestExecutionListener
1 parent a6d901f commit f821112

File tree

1 file changed

+7
-19
lines changed

1 file changed

+7
-19
lines changed

src/main/java/com/github/ahunigel/test/security/oauth2/WithTokenTestExecutionListener.java

Lines changed: 7 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44
import org.slf4j.Logger;
55
import org.slf4j.LoggerFactory;
66
import org.springframework.core.annotation.AnnotatedElementUtils;
7-
import org.springframework.mock.web.MockHttpServletRequest;
87
import org.springframework.security.core.Authentication;
98
import org.springframework.security.core.context.SecurityContext;
109
import org.springframework.security.oauth2.provider.OAuth2Authentication;
@@ -85,7 +84,7 @@ private void addAuthHeader(AnnotatedElement annotated, TestContext testContext,
8584
Assert.state(withToken != null, "No @WithToken exists!!!");
8685
MockMvc mockMvc = testContext.getApplicationContext().getBean(MockMvc.class);
8786
MockHttpServletRequestBuilder requestBuilder = MockMvcRequestBuilders.get("/")
88-
.with(testSecurityContext()).with(bearerAuthPostProcessor(withToken.value()));
87+
.with(testSecurityContext()).with(bearerTokenProcessor(withToken.value()));
8988
// stash original default request builder
9089
RequestBuilder originalRequestBuilder = (RequestBuilder) ReflectionTestUtils.getField(mockMvc, MockMvc.class,
9190
"defaultRequestBuilder");
@@ -122,26 +121,15 @@ private void setDefaultRequestBuilder(MockMvc mockMvc, RequestBuilder requestBui
122121
ReflectionTestUtils.invokeSetterMethod(mockMvc, "setDefaultRequest", requestBuilder, RequestBuilder.class);
123122
}
124123

125-
private RequestPostProcessor bearerAuthPostProcessor(String token) {
126-
return new BearerAuthPostProcessor(token);
127-
}
128-
129-
class BearerAuthPostProcessor implements RequestPostProcessor {
130-
private final String token;
131-
132-
BearerAuthPostProcessor(String token) {
133-
this.token = token;
134-
}
135-
136-
@Override
137-
public MockHttpServletRequest postProcessRequest(MockHttpServletRequest request) {
138-
String authHeader = request.getHeader("Authorization");
124+
private RequestPostProcessor bearerTokenProcessor(String token) {
125+
return mockRequest -> {
126+
String authHeader = mockRequest.getHeader("Authorization");
139127
if (!StringUtils.hasText(authHeader)) {
140-
request.addHeader("Authorization", "Bearer " + token);
128+
mockRequest.addHeader("Authorization", "Bearer " + token);
141129
} else {
142130
log.warn("DO NOT OVERRIDE existing authorization header: {}", authHeader);
143131
}
144-
return request;
145-
}
132+
return mockRequest;
133+
};
146134
}
147135
}

0 commit comments

Comments
 (0)