@ -66,6 +66,7 @@ import org.springframework.security.web.util.matcher.OrRequestMatcher;
@@ -66,6 +66,7 @@ import org.springframework.security.web.util.matcher.OrRequestMatcher;
import org.springframework.security.web.util.matcher.RequestHeaderRequestMatcher ;
import org.springframework.security.web.util.matcher.RequestMatcher ;
import org.springframework.util.Assert ;
import org.springframework.util.ClassUtils ;
import org.springframework.web.accept.ContentNegotiationStrategy ;
import org.springframework.web.accept.HeaderContentNegotiationStrategy ;
@ -149,13 +150,19 @@ import org.springframework.web.accept.HeaderContentNegotiationStrategy;
@@ -149,13 +150,19 @@ import org.springframework.web.accept.HeaderContentNegotiationStrategy;
public final class OAuth2ResourceServerConfigurer < H extends HttpSecurityBuilder < H > >
extends AbstractHttpConfigurer < OAuth2ResourceServerConfigurer < H > , H > {
private static final boolean dPoPAuthenticationAvailable ;
static {
ClassLoader classLoader = OAuth2ResourceServerConfigurer . class . getClassLoader ( ) ;
dPoPAuthenticationAvailable = ClassUtils
. isPresent ( "org.springframework.security.oauth2.jwt.DPoPProofJwtDecoderFactory" , classLoader ) ;
}
private static final RequestHeaderRequestMatcher X_REQUESTED_WITH = new RequestHeaderRequestMatcher (
"X-Requested-With" , "XMLHttpRequest" ) ;
private final ApplicationContext context ;
private final DPoPAuthenticationConfigurer < H > dPoPAuthenticationConfigurer = new DPoPAuthenticationConfigurer < > ( ) ;
private AuthenticationManagerResolver < HttpServletRequest > authenticationManagerResolver ;
private AuthenticationConverter authenticationConverter ;
@ -269,7 +276,10 @@ public final class OAuth2ResourceServerConfigurer<H extends HttpSecurityBuilder<
@@ -269,7 +276,10 @@ public final class OAuth2ResourceServerConfigurer<H extends HttpSecurityBuilder<
filter . setSecurityContextHolderStrategy ( getSecurityContextHolderStrategy ( ) ) ;
filter = postProcess ( filter ) ;
http . addFilter ( filter ) ;
this . dPoPAuthenticationConfigurer . configure ( http ) ;
if ( dPoPAuthenticationAvailable ) {
DPoPAuthenticationConfigurer < H > dPoPAuthenticationConfigurer = new DPoPAuthenticationConfigurer < > ( ) ;
dPoPAuthenticationConfigurer . configure ( http ) ;
}
}
private void validateConfiguration ( ) {