@ -458,14 +458,36 @@ public class OidcUserServiceTests {
@@ -458,14 +458,36 @@ public class OidcUserServiceTests {
@Test
public void loadUserWhenTokenDoesNotContainScopesThenNoScopeAuthorities ( ) {
OidcUserService userService = new OidcUserService ( ) ;
OidcUserRequest request = new OidcUserRequest ( TestClientRegistrations . clientRegistration ( ) . build ( ) ,
TestOAuth2AccessTokens . noScopes ( ) , TestOidcIdToken s. idToken ( ) . build ( ) ) ;
OidcUserRequest request = new OidcUserRequest ( this . clientRegistrationBuilder . build ( ) ,
TestOAuth2AccessTokens . noScopes ( ) , thi s. idToken ) ;
OidcUser user = userService . loadUser ( request ) ;
assertThat ( user . getAuthorities ( ) ) . hasSize ( 1 ) ;
Iterator < ? extends GrantedAuthority > authorities = user . getAuthorities ( ) . iterator ( ) ;
assertThat ( authorities . next ( ) ) . isInstanceOf ( OidcUserAuthority . class ) ;
}
@Test
public void loadUserWhenTokenDoesNotContainScopesAndUserInfoUriThenUserInfoRequested ( ) {
// @formatter:off
String userInfoResponse = "{\n"
+ " \"sub\": \"subject1\",\n"
+ " \"name\": \"first last\",\n"
+ " \"given_name\": \"first\",\n"
+ " \"family_name\": \"last\",\n"
+ " \"preferred_username\": \"user1\",\n"
+ " \"email\": \"user1@example.com\"\n"
+ "}\n" ;
// @formatter:on
this . server . enqueue ( jsonResponse ( userInfoResponse ) ) ;
String userInfoUri = this . server . url ( "/user" ) . toString ( ) ;
ClientRegistration clientRegistration = this . clientRegistrationBuilder . userInfoUri ( userInfoUri ) . build ( ) ;
OidcUserService userService = new OidcUserService ( ) ;
OidcUserRequest request = new OidcUserRequest ( clientRegistration , TestOAuth2AccessTokens . noScopes ( ) ,
this . idToken ) ;
OidcUser user = userService . loadUser ( request ) ;
assertThat ( user . getUserInfo ( ) ) . isNotNull ( ) ;
}
private MockResponse jsonResponse ( String json ) {
// @formatter:off
return new MockResponse ( )