Skip to content

Commit 42e8fb0

Browse files
committed
Update OidcUserInfoTests to use mocks for UserInfoConfig
1 parent 5c77e01 commit 42e8fb0

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
@@ -60,10 +60,8 @@
6060
import org.springframework.security.oauth2.server.authorization.client.TestRegisteredClients;
6161
import org.springframework.security.oauth2.server.authorization.config.annotation.web.configuration.OAuth2AuthorizationServerConfiguration;
6262
import org.springframework.security.oauth2.server.authorization.oidc.authentication.OidcUserInfoAuthenticationContext;
63-
import org.springframework.security.oauth2.server.authorization.oidc.authentication.OidcUserInfoAuthenticationToken;
6463
import org.springframework.security.oauth2.server.authorization.settings.AuthorizationServerSettings;
6564
import org.springframework.security.oauth2.server.authorization.test.SpringTestRule;
66-
import org.springframework.security.oauth2.server.resource.authentication.JwtAuthenticationToken;
6765
import org.springframework.security.web.SecurityFilterChain;
6866
import org.springframework.security.web.context.HttpSessionSecurityContextRepository;
6967
import org.springframework.security.web.context.SecurityContextRepository;
@@ -73,8 +71,12 @@
7371
import org.springframework.test.web.servlet.ResultMatcher;
7472

7573
import static org.assertj.core.api.Assertions.assertThat;
74+
import static org.mockito.ArgumentMatchers.any;
75+
import static org.mockito.Mockito.mock;
7676
import static org.mockito.Mockito.reset;
7777
import static org.mockito.Mockito.spy;
78+
import static org.mockito.Mockito.verify;
79+
import static org.mockito.Mockito.when;
7880
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get;
7981
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post;
8082
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.jsonPath;
@@ -101,14 +103,18 @@ public class OidcUserInfoTests {
101103
@Autowired
102104
private OAuth2AuthorizationService authorizationService;
103105

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

109114
@Before
110115
public void setup() {
111116
reset(securityContextRepository);
117+
reset(userInfoMapper);
112118
}
113119

114120
@Test
@@ -144,11 +150,12 @@ public void requestWhenUserInfoRequestPostThenUserInfoResponse() throws Exceptio
144150
}
145151

146152
@Test
147-
public void requestWhenSignedJwtAndCustomUserInfoMapperThenMapJwtClaimsToUserInfoResponse() throws Exception {
153+
public void requestWhenUserInfoEndpointCustomizedThenUsed() throws Exception {
148154
this.spring.register(CustomUserInfoConfiguration.class).autowire();
149155

150156
OAuth2Authorization authorization = createAuthorization();
151157
this.authorizationService.save(authorization);
158+
when(userInfoMapper.apply(any())).thenReturn(createUserInfo());
152159

153160
OAuth2AccessToken accessToken = authorization.getAccessToken().getToken();
154161
// @formatter:off
@@ -157,6 +164,7 @@ public void requestWhenSignedJwtAndCustomUserInfoMapperThenMapJwtClaimsToUserInf
157164
.andExpect(status().is2xxSuccessful())
158165
.andExpectAll(userInfoResponse());
159166
// @formatter:on
167+
verify(userInfoMapper).apply(any());
160168
}
161169

162170
// gh-482
@@ -270,14 +278,6 @@ SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception {
270278
RequestMatcher endpointsMatcher = authorizationServerConfigurer
271279
.getEndpointsMatcher();
272280

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

0 commit comments

Comments
 (0)