Skip to content

Commit 9f97df6

Browse files
committed
Update OidcUserInfoTests to use mocks for UserInfoConfig
1 parent 907c3f8 commit 9f97df6

File tree

1 file changed

+11
-11
lines changed
  • oauth2-authorization-server/src/test/java/org/springframework/security/oauth2/server/authorization/config/annotation/web/configurers

1 file changed

+11
-11
lines changed

oauth2-authorization-server/src/test/java/org/springframework/security/oauth2/server/authorization/config/annotation/web/configurers/OidcUserInfoTests.java

+11-11
Original file line numberDiff line numberDiff line change
@@ -61,10 +61,8 @@
6161
import org.springframework.security.oauth2.server.authorization.client.TestRegisteredClients;
6262
import org.springframework.security.oauth2.server.authorization.config.annotation.web.configuration.OAuth2AuthorizationServerConfiguration;
6363
import org.springframework.security.oauth2.server.authorization.oidc.authentication.OidcUserInfoAuthenticationContext;
64-
import org.springframework.security.oauth2.server.authorization.oidc.authentication.OidcUserInfoAuthenticationToken;
6564
import org.springframework.security.oauth2.server.authorization.settings.AuthorizationServerSettings;
6665
import org.springframework.security.oauth2.server.authorization.test.SpringTestRule;
67-
import org.springframework.security.oauth2.server.resource.authentication.JwtAuthenticationToken;
6866
import org.springframework.security.web.SecurityFilterChain;
6967
import org.springframework.security.web.context.HttpSessionSecurityContextRepository;
7068
import org.springframework.security.web.context.SecurityContextRepository;
@@ -74,8 +72,12 @@
7472
import org.springframework.test.web.servlet.ResultMatcher;
7573

7674
import static org.assertj.core.api.Assertions.assertThat;
75+
import static org.mockito.ArgumentMatchers.any;
76+
import static org.mockito.Mockito.mock;
7777
import static org.mockito.Mockito.reset;
7878
import static org.mockito.Mockito.spy;
79+
import static org.mockito.Mockito.verify;
80+
import static org.mockito.Mockito.when;
7981
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get;
8082
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post;
8183
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.jsonPath;
@@ -102,14 +104,18 @@ public class OidcUserInfoTests {
102104
@Autowired
103105
private OAuth2AuthorizationService authorizationService;
104106

107+
private static Function<OidcUserInfoAuthenticationContext, OidcUserInfo> userInfoMapper;
108+
105109
@BeforeClass
106110
public static void init() {
107111
securityContextRepository = spy(new HttpSessionSecurityContextRepository());
112+
userInfoMapper = mock(Function.class);
108113
}
109114

110115
@Before
111116
public void setup() {
112117
reset(securityContextRepository);
118+
reset(userInfoMapper);
113119
}
114120

115121
@Test
@@ -145,11 +151,12 @@ public void requestWhenUserInfoRequestPostThenUserInfoResponse() throws Exceptio
145151
}
146152

147153
@Test
148-
public void requestWhenSignedJwtAndCustomUserInfoMapperThenMapJwtClaimsToUserInfoResponse() throws Exception {
154+
public void requestWhenUserInfoEndpointCustomizedThenUsed() throws Exception {
149155
this.spring.register(CustomUserInfoConfiguration.class).autowire();
150156

151157
OAuth2Authorization authorization = createAuthorization();
152158
this.authorizationService.save(authorization);
159+
when(userInfoMapper.apply(any())).thenReturn(createUserInfo());
153160

154161
OAuth2AccessToken accessToken = authorization.getAccessToken().getToken();
155162
// @formatter:off
@@ -158,6 +165,7 @@ public void requestWhenSignedJwtAndCustomUserInfoMapperThenMapJwtClaimsToUserInf
158165
.andExpect(status().is2xxSuccessful())
159166
.andExpectAll(userInfoResponse());
160167
// @formatter:on
168+
verify(userInfoMapper).apply(any());
161169
}
162170

163171
// gh-482
@@ -271,14 +279,6 @@ SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception {
271279
RequestMatcher endpointsMatcher = authorizationServerConfigurer
272280
.getEndpointsMatcher();
273281

274-
// Custom User Info Mapper that retrieves claims from a signed JWT
275-
Function<OidcUserInfoAuthenticationContext, OidcUserInfo> userInfoMapper = context -> {
276-
OidcUserInfoAuthenticationToken authentication = context.getAuthentication();
277-
JwtAuthenticationToken principal = (JwtAuthenticationToken) authentication.getPrincipal();
278-
279-
return new OidcUserInfo(principal.getToken().getClaims());
280-
};
281-
282282
// @formatter:off
283283
http
284284
.requestMatcher(endpointsMatcher)

0 commit comments

Comments
 (0)