diff --git a/oauth2/oauth2-resource-server/src/test/java/org/springframework/security/oauth2/server/resource/authentication/JwtGrantedAuthoritiesConverterTests.java b/oauth2/oauth2-resource-server/src/test/java/org/springframework/security/oauth2/server/resource/authentication/JwtGrantedAuthoritiesConverterTests.java index 643049f1cb..8c4333d906 100644 --- a/oauth2/oauth2-resource-server/src/test/java/org/springframework/security/oauth2/server/resource/authentication/JwtGrantedAuthoritiesConverterTests.java +++ b/oauth2/oauth2-resource-server/src/test/java/org/springframework/security/oauth2/server/resource/authentication/JwtGrantedAuthoritiesConverterTests.java @@ -139,6 +139,43 @@ public class JwtGrantedAuthoritiesConverterTests { assertThat(authorities).isEmpty(); } + @Test + public void convertWhenTokenHasEmptyScopeAndEmptyScpAttributeThenTranslatesToNoAuthorities() { + Map claims = new HashMap<>(); + claims.put("scp", Collections.emptyList()); + claims.put("scope", Collections.emptyList()); + Jwt jwt = this.jwt(claims); + + JwtGrantedAuthoritiesConverter jwtGrantedAuthoritiesConverter = new JwtGrantedAuthoritiesConverter(); + Collection authorities = jwtGrantedAuthoritiesConverter.convert(jwt); + + assertThat(authorities).isEmpty(); + } + + @Test + public void convertWhenTokenHasNoScopeAndNoScpAttributeThenTranslatesToNoAuthorities() { + Map claims = new HashMap<>(); + claims.put("roles", Arrays.asList("message:read", "message:write")); + Jwt jwt = this.jwt(claims); + + JwtGrantedAuthoritiesConverter jwtGrantedAuthoritiesConverter = new JwtGrantedAuthoritiesConverter(); + Collection authorities = jwtGrantedAuthoritiesConverter.convert(jwt); + + assertThat(authorities).isEmpty(); + } + + @Test + public void convertWhenTokenHasUnsupportedTypeForScopeThenTranslatesToNoAuthorities() { + Map claims = new HashMap<>(); + claims.put("scope", new String[] {"message:read", "message:write"}); + Jwt jwt = this.jwt(claims); + + JwtGrantedAuthoritiesConverter jwtGrantedAuthoritiesConverter = new JwtGrantedAuthoritiesConverter(); + Collection authorities = jwtGrantedAuthoritiesConverter.convert(jwt); + + assertThat(authorities).isEmpty(); + } + @Test public void convertWhenTokenHasCustomClaimNameThenCustomClaimNameAttributeIsTranslatedToAuthorities() { Map claims = new HashMap<>();