@ -1,5 +1,5 @@
/ *
/ *
* Copyright 2002 - 2018 the original author or authors .
* Copyright 2002 - 2022 the original author or authors .
*
*
* Licensed under the Apache License , Version 2 . 0 ( the "License" ) ;
* Licensed under the Apache License , Version 2 . 0 ( the "License" ) ;
* you may not use this file except in compliance with the License .
* you may not use this file except in compliance with the License .
@ -45,10 +45,14 @@ public final class JwtGrantedAuthoritiesConverter implements Converter<Jwt, Coll
private static final String DEFAULT_AUTHORITY_PREFIX = "SCOPE_" ;
private static final String DEFAULT_AUTHORITY_PREFIX = "SCOPE_" ;
private static final String DEFAULT_AUTHORITIES_SPLIT_REGEX = " " ;
private static final Collection < String > WELL_KNOWN_AUTHORITIES_CLAIM_NAMES = Arrays . asList ( "scope" , "scp" ) ;
private static final Collection < String > WELL_KNOWN_AUTHORITIES_CLAIM_NAMES = Arrays . asList ( "scope" , "scp" ) ;
private String authorityPrefix = DEFAULT_AUTHORITY_PREFIX ;
private String authorityPrefix = DEFAULT_AUTHORITY_PREFIX ;
private String authoritiesSplitRegex = DEFAULT_AUTHORITIES_SPLIT_REGEX ;
private String authoritiesClaimName ;
private String authoritiesClaimName ;
/ * *
/ * *
@ -77,6 +81,18 @@ public final class JwtGrantedAuthoritiesConverter implements Converter<Jwt, Coll
this . authorityPrefix = authorityPrefix ;
this . authorityPrefix = authorityPrefix ;
}
}
/ * *
* Sets the regex to use for splitting the value of the authorities claim into
* { @link GrantedAuthority authorities } . Defaults to
* { @link JwtGrantedAuthoritiesConverter # DEFAULT_AUTHORITIES_SPLIT_REGEX } .
* @param authoritiesSplitRegex The regex used to split the authorities
* @since 6 . 1
* /
public void setAuthoritiesSplitRegex ( String authoritiesSplitRegex ) {
Assert . notNull ( authoritiesSplitRegex , "authoritiesSplitRegex cannot be null" ) ;
this . authoritiesSplitRegex = authoritiesSplitRegex ;
}
/ * *
/ * *
* Sets the name of token claim to use for mapping { @link GrantedAuthority
* Sets the name of token claim to use for mapping { @link GrantedAuthority
* authorities } by this converter . Defaults to
* authorities } by this converter . Defaults to
@ -113,7 +129,7 @@ public final class JwtGrantedAuthoritiesConverter implements Converter<Jwt, Coll
Object authorities = jwt . getClaim ( claimName ) ;
Object authorities = jwt . getClaim ( claimName ) ;
if ( authorities instanceof String ) {
if ( authorities instanceof String ) {
if ( StringUtils . hasText ( ( String ) authorities ) ) {
if ( StringUtils . hasText ( ( String ) authorities ) ) {
return Arrays . asList ( ( ( String ) authorities ) . split ( " " ) ) ;
return Arrays . asList ( ( ( String ) authorities ) . split ( this . authoritiesSplitRegex ) ) ;
}
}
return Collections . emptyList ( ) ;
return Collections . emptyList ( ) ;
}
}