@ -50,6 +50,7 @@ public class ServerBearerTokenAuthenticationConverter
Pattern . CASE_INSENSITIVE ) ;
Pattern . CASE_INSENSITIVE ) ;
private boolean allowUriQueryParameter = false ;
private boolean allowUriQueryParameter = false ;
private String bearerTokenHeaderName = HttpHeaders . AUTHORIZATION ;
public Mono < Authentication > convert ( ServerWebExchange exchange ) {
public Mono < Authentication > convert ( ServerWebExchange exchange ) {
return Mono . justOrEmpty ( token ( exchange . getRequest ( ) ) )
return Mono . justOrEmpty ( token ( exchange . getRequest ( ) ) )
@ -90,8 +91,21 @@ public class ServerBearerTokenAuthenticationConverter
this . allowUriQueryParameter = allowUriQueryParameter ;
this . allowUriQueryParameter = allowUriQueryParameter ;
}
}
private static String resolveFromAuthorizationHeader ( HttpHeaders headers ) {
/ * *
String authorization = headers . getFirst ( HttpHeaders . AUTHORIZATION ) ;
* Set this value to configure what header is checked when resolving a Bearer Token .
* This value is defaulted to { @link HttpHeaders # AUTHORIZATION } .
*
* This allows other headers to be used as the Bearer Token source such as { @link HttpHeaders # PROXY_AUTHORIZATION }
*
* @param bearerTokenHeaderName the header to check when retrieving the Bearer Token .
* @since 5 . 4
* /
public void setBearerTokenHeaderName ( String bearerTokenHeaderName ) {
this . bearerTokenHeaderName = bearerTokenHeaderName ;
}
private String resolveFromAuthorizationHeader ( HttpHeaders headers ) {
String authorization = headers . getFirst ( this . bearerTokenHeaderName ) ;
if ( StringUtils . startsWithIgnoreCase ( authorization , "bearer" ) ) {
if ( StringUtils . startsWithIgnoreCase ( authorization , "bearer" ) ) {
Matcher matcher = authorizationPattern . matcher ( authorization ) ;
Matcher matcher = authorizationPattern . matcher ( authorization ) ;