mirror of
https://github.com/spring-projects/spring-security.git
synced 2025-05-31 09:12:14 +00:00
Enables empty authorityPrefix
- docs stated that empty authorityPrefix are allowed but implementation denied to use `""` - commit removes the `hasText`-limitation but restricts to `notNull` Fixes gh-8421
This commit is contained in:
parent
32ce94d2dd
commit
60d4d5b7ee
@ -68,7 +68,7 @@ public final class JwtGrantedAuthoritiesConverter implements Converter<Jwt, Coll
|
|||||||
* @since 5.2
|
* @since 5.2
|
||||||
*/
|
*/
|
||||||
public void setAuthorityPrefix(String authorityPrefix) {
|
public void setAuthorityPrefix(String authorityPrefix) {
|
||||||
Assert.hasText(authorityPrefix, "authorityPrefix cannot be empty");
|
Assert.notNull(authorityPrefix, "authorityPrefix cannot be null");
|
||||||
this.authorityPrefix = authorityPrefix;
|
this.authorityPrefix = authorityPrefix;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -37,6 +37,12 @@ import static org.springframework.security.oauth2.jwt.TestJwts.jwt;
|
|||||||
*/
|
*/
|
||||||
public class JwtGrantedAuthoritiesConverterTests {
|
public class JwtGrantedAuthoritiesConverterTests {
|
||||||
|
|
||||||
|
@Test(expected = IllegalArgumentException.class)
|
||||||
|
public void setAuthorityPrefixWithNullThenException() {
|
||||||
|
JwtGrantedAuthoritiesConverter jwtGrantedAuthoritiesConverter = new JwtGrantedAuthoritiesConverter();
|
||||||
|
jwtGrantedAuthoritiesConverter.setAuthorityPrefix(null);
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void convertWhenTokenHasScopeAttributeThenTranslatedToAuthorities() {
|
public void convertWhenTokenHasScopeAttributeThenTranslatedToAuthorities() {
|
||||||
Jwt jwt = jwt().claim("scope", "message:read message:write").build();
|
Jwt jwt = jwt().claim("scope", "message:read message:write").build();
|
||||||
@ -62,6 +68,19 @@ public class JwtGrantedAuthoritiesConverterTests {
|
|||||||
new SimpleGrantedAuthority("ROLE_message:write"));
|
new SimpleGrantedAuthority("ROLE_message:write"));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void convertWithBlankAsCustomAuthorityPrefixWhenTokenHasScopeAttributeThenTranslatedToAuthorities() {
|
||||||
|
Jwt jwt = jwt().claim("scope", "message:read message:write").build();
|
||||||
|
|
||||||
|
JwtGrantedAuthoritiesConverter jwtGrantedAuthoritiesConverter = new JwtGrantedAuthoritiesConverter();
|
||||||
|
jwtGrantedAuthoritiesConverter.setAuthorityPrefix("");
|
||||||
|
Collection<GrantedAuthority> authorities = jwtGrantedAuthoritiesConverter.convert(jwt);
|
||||||
|
|
||||||
|
assertThat(authorities).containsExactly(
|
||||||
|
new SimpleGrantedAuthority("message:read"),
|
||||||
|
new SimpleGrantedAuthority("message:write"));
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void convertWhenTokenHasEmptyScopeAttributeThenTranslatedToNoAuthorities() {
|
public void convertWhenTokenHasEmptyScopeAttributeThenTranslatedToNoAuthorities() {
|
||||||
Jwt jwt = jwt().claim("scope", "").build();
|
Jwt jwt = jwt().claim("scope", "").build();
|
||||||
@ -97,6 +116,19 @@ public class JwtGrantedAuthoritiesConverterTests {
|
|||||||
new SimpleGrantedAuthority("ROLE_message:write"));
|
new SimpleGrantedAuthority("ROLE_message:write"));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void convertWithBlankAsCustomAuthorityPrefixWhenTokenHasScpAttributeThenTranslatedToAuthorities() {
|
||||||
|
Jwt jwt = jwt().claim("scp", "message:read message:write").build();
|
||||||
|
|
||||||
|
JwtGrantedAuthoritiesConverter jwtGrantedAuthoritiesConverter = new JwtGrantedAuthoritiesConverter();
|
||||||
|
jwtGrantedAuthoritiesConverter.setAuthorityPrefix("");
|
||||||
|
Collection<GrantedAuthority> authorities = jwtGrantedAuthoritiesConverter.convert(jwt);
|
||||||
|
|
||||||
|
assertThat(authorities).containsExactly(
|
||||||
|
new SimpleGrantedAuthority("message:read"),
|
||||||
|
new SimpleGrantedAuthority("message:write"));
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void convertWhenTokenHasEmptyScpAttributeThenTranslatedToNoAuthorities() {
|
public void convertWhenTokenHasEmptyScpAttributeThenTranslatedToNoAuthorities() {
|
||||||
Jwt jwt = jwt().claim("scp", Collections.emptyList()).build();
|
Jwt jwt = jwt().claim("scp", Collections.emptyList()).build();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user