11package com .example .security ;
22
3- import com .example .config .DPoPProperties ;
43import com .example .config .OAuth2ClientResourceDetailProperties ;
54import com .example .config .OAuth2ClientResourceDetailProperties .Detail ;
6- import com .example .security .dpop .DPoPAuthenticationFilter ;
7- import com .example .security .dpop .DPoPAuthorizationTokenResolver ;
8- import com .example .utils .AntPathRequestMatcherWrapper ;
95import com .nimbusds .jose .JOSEObjectType ;
106import com .nimbusds .jose .proc .DefaultJOSEObjectTypeVerifier ;
11- import jakarta .servlet .http .HttpServletRequest ;
127import java .util .ArrayList ;
138import java .util .List ;
149import lombok .RequiredArgsConstructor ;
2924import org .springframework .security .oauth2 .jwt .JwtIssuerValidator ;
3025import org .springframework .security .oauth2 .jwt .JwtTimestampValidator ;
3126import org .springframework .security .oauth2 .jwt .NimbusJwtDecoder ;
32- import org .springframework .security .oauth2 .server .resource .web .authentication .BearerTokenAuthenticationFilter ;
3327import org .springframework .security .web .SecurityFilterChain ;
3428
3529@ Slf4j
@@ -75,12 +69,6 @@ public SecurityFilterChain filterChain(HttpSecurity http,
7569 HelseIDJwtAuthenticationConverter jwtAuthenticationConverter ,
7670 OAuth2ClientResourceDetailProperties oAuth2ClientDetailProperties ) throws Exception {
7771 return http
78- .securityMatcher (new AntPathRequestMatcherWrapper ("/api/**" ) {
79- @ Override
80- protected boolean precondition (HttpServletRequest request ) {
81- return !String .valueOf (request .getHeader ("Authorization" )).contains ("DPoP" );
82- }
83- })
8472 .authorizeHttpRequests (
8573 registry -> ResourceServerConfiguration .configureAuthorizeRequests (registry ,
8674 oAuth2ClientDetailProperties ))
@@ -91,30 +79,6 @@ protected boolean precondition(HttpServletRequest request) {
9179 .build ();
9280 }
9381
94- @ Bean
95- public SecurityFilterChain filterChainDPoP (HttpSecurity http ,
96- HelseIDJwtAuthenticationConverter jwtAuthenticationConverter ,
97- OAuth2ClientResourceDetailProperties oAuth2ClientDetailProperties ,
98- DPoPProperties dPoPCheckerProperties ) throws Exception {
99- return http
100- .securityMatcher (new AntPathRequestMatcherWrapper ("/api/**" ) {
101- @ Override
102- protected boolean precondition (HttpServletRequest request ) {
103- return String .valueOf (request .getHeader ("Authorization" )).contains ("DPoP" );
104- }
105- })
106- .authorizeHttpRequests (
107- registry -> ResourceServerConfiguration .configureAuthorizeRequests (registry ,
108- oAuth2ClientDetailProperties ))
109- .addFilterBefore (new DPoPAuthenticationFilter (dPoPCheckerProperties ),
110- BearerTokenAuthenticationFilter .class )
111- .oauth2ResourceServer (
112- oauth2ResourceServer ->
113- oauth2ResourceServer .bearerTokenResolver (new DPoPAuthorizationTokenResolver ())
114- .jwt (jwtConfigurer -> jwtConfigurer .jwtAuthenticationConverter (
115- jwtAuthenticationConverter )))
116- .build ();
117- }
11882
11983 static void configureAuthorizeRequests (
12084 AuthorizeHttpRequestsConfigurer <HttpSecurity >.AuthorizationManagerRequestMatcherRegistry
0 commit comments