From fd5226797c91d8680de3d15ff82638aac52ee044 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thomas=20Skj=C3=B8lberg?= Date: Fri, 28 Aug 2026 17:22:37 +0200 Subject: [PATCH] Reduce duplicated config to single --- .../entur/jwt/spring/JwtAutoConfiguration.java | 17 +++++++++++++++++ .../grpc/netty/JwtGrpcAutoConfiguration.java | 17 ----------------- .../JwtWebSecurityChainAutoConfiguration.java | 17 ----------------- .../JwtWebFluxSecurityAutoConfiguration.java | 17 ----------------- 4 files changed, 17 insertions(+), 51 deletions(-) diff --git a/jwt-server/spring/jwt-spring-common/src/main/java/org/entur/jwt/spring/JwtAutoConfiguration.java b/jwt-server/spring/jwt-spring-common/src/main/java/org/entur/jwt/spring/JwtAutoConfiguration.java index 141707062..985c34d89 100644 --- a/jwt-server/spring/jwt-spring-common/src/main/java/org/entur/jwt/spring/JwtAutoConfiguration.java +++ b/jwt-server/spring/jwt-spring-common/src/main/java/org/entur/jwt/spring/JwtAutoConfiguration.java @@ -1,6 +1,10 @@ package org.entur.jwt.spring; import org.entur.jwt.spring.actuate.ListJwksHealthIndicator; +import org.entur.jwt.spring.decode.BoundedJwtHeaderToIssuerMapper; +import org.entur.jwt.spring.decode.DefaultJwtHeaderToIssuerMapperDecider; +import org.entur.jwt.spring.decode.JwtHeaderToIssuerMapperDecider; +import org.entur.jwt.spring.decode.JwtHeaderToIssuerMapper; import org.entur.jwt.spring.properties.JwtProperties; import org.entur.jwt.spring.properties.SecurityProperties; import org.entur.jwt.spring.properties.jwk.JwtTenantProperties; @@ -67,6 +71,19 @@ public List> claimConstraints(SecurityProperties prope return oAuth2TokenValidatorFactory.create(properties.getJwt().getClaims()); } + @Bean + @ConditionalOnProperty(name = "entur.jwt.decode.header.map-to-issuer.enabled", havingValue = "true") + @ConditionalOnMissingBean(JwtHeaderToIssuerMapper.class) + public JwtHeaderToIssuerMapper jwtHeaderToIssuerMapper(SecurityProperties securityProperties) { + int maxSize = securityProperties.getJwt().getDecode().getHeader().getMapToIssuer().getMaxSize(); + return maxSize != -1 ? new BoundedJwtHeaderToIssuerMapper(maxSize) : new JwtHeaderToIssuerMapper(); + } + @Bean + @ConditionalOnProperty(name = "entur.jwt.decode.header.map-to-issuer.enabled", havingValue = "true") + @ConditionalOnMissingBean(JwtHeaderToIssuerMapperDecider.class) + public JwtHeaderToIssuerMapperDecider jwtHeaderToIssuerMapperDecider() { + return new DefaultJwtHeaderToIssuerMapperDecider(); + } } diff --git a/jwt-server/spring/jwt-spring-grpc-native/src/main/java/org/entur/jwt/spring/grpc/netty/JwtGrpcAutoConfiguration.java b/jwt-server/spring/jwt-spring-grpc-native/src/main/java/org/entur/jwt/spring/grpc/netty/JwtGrpcAutoConfiguration.java index 6397de256..db1473538 100644 --- a/jwt-server/spring/jwt-spring-grpc-native/src/main/java/org/entur/jwt/spring/grpc/netty/JwtGrpcAutoConfiguration.java +++ b/jwt-server/spring/jwt-spring-grpc-native/src/main/java/org/entur/jwt/spring/grpc/netty/JwtGrpcAutoConfiguration.java @@ -8,8 +8,6 @@ import org.entur.jwt.spring.JwtAutoConfiguration; import org.entur.jwt.spring.KeycloakJwtAuthorityEnricher; import org.entur.jwt.spring.NoUserDetailsService; -import org.entur.jwt.spring.decode.BoundedJwtHeaderToIssuerMapper; -import org.entur.jwt.spring.decode.DefaultJwtHeaderToIssuerMapperDecider; import org.entur.jwt.spring.decode.JwtHeaderToIssuerMapperDecider; import org.entur.jwt.spring.decode.JwtHeaderToIssuerMapper; import org.entur.jwt.spring.grpc.properties.GrpcPermitAll; @@ -100,21 +98,6 @@ public JwtAuthorityEnricher jwtAuthorityEnricher() { return new DefaultJwtAuthorityEnricher(); } - @Bean - @ConditionalOnProperty(name = "entur.jwt.decode.header.map-to-issuer.enabled", havingValue = "true") - @ConditionalOnMissingBean(JwtHeaderToIssuerMapper.class) - public JwtHeaderToIssuerMapper jwtHeaderToIssuerMapper() { - int maxSize = securityProperties.getJwt().getDecode().getHeader().getMapToIssuer().getMaxSize(); - return maxSize != -1 ? new BoundedJwtHeaderToIssuerMapper(maxSize) : new JwtHeaderToIssuerMapper(); - } - - @Bean - @ConditionalOnProperty(name = "entur.jwt.decode.header.map-to-issuer.enabled", havingValue = "true") - @ConditionalOnMissingBean(JwtHeaderToIssuerMapperDecider.class) - public JwtHeaderToIssuerMapperDecider jwtHeaderToIssuerMapperDecider() { - return new DefaultJwtHeaderToIssuerMapperDecider(); - } - @Bean @GlobalServerInterceptor public AuthenticationProcessInterceptor jwtSecurityFilterChain( diff --git a/jwt-server/spring/jwt-spring-web/src/main/java/org/entur/jwt/spring/JwtWebSecurityChainAutoConfiguration.java b/jwt-server/spring/jwt-spring-web/src/main/java/org/entur/jwt/spring/JwtWebSecurityChainAutoConfiguration.java index 755524348..802f72cdb 100644 --- a/jwt-server/spring/jwt-spring-web/src/main/java/org/entur/jwt/spring/JwtWebSecurityChainAutoConfiguration.java +++ b/jwt-server/spring/jwt-spring-web/src/main/java/org/entur/jwt/spring/JwtWebSecurityChainAutoConfiguration.java @@ -3,8 +3,6 @@ import org.entur.jwt.spring.config.EnturAuthorizeHttpRequestsCustomizer; import org.entur.jwt.spring.config.EnturOauth2ResourceServerCustomizer; import org.entur.jwt.spring.config.JwtMappedDiagnosticContextFilter; -import org.entur.jwt.spring.decode.BoundedJwtHeaderToIssuerMapper; -import org.entur.jwt.spring.decode.DefaultJwtHeaderToIssuerMapperDecider; import org.entur.jwt.spring.decode.JwtHeaderToIssuerMapperDecider; import org.entur.jwt.spring.decode.JwtHeaderToIssuerMapper; import org.entur.jwt.spring.filter.log.JwtMappedDiagnosticContextMapper; @@ -101,21 +99,6 @@ public CompositeWebSecurityConfigurerAdapter(SecurityProperties securityProperti this.securityProperties = securityProperties; } - @Bean - @ConditionalOnProperty(name = "entur.jwt.decode.header.map-to-issuer.enabled", havingValue = "true") - @ConditionalOnMissingBean(JwtHeaderToIssuerMapper.class) - public JwtHeaderToIssuerMapper jwtHeaderToIssuerMapper(SecurityProperties securityProperties) { - int maxSize = securityProperties.getJwt().getDecode().getHeader().getMapToIssuer().getMaxSize(); - return maxSize != -1 ? new BoundedJwtHeaderToIssuerMapper(maxSize) : new JwtHeaderToIssuerMapper(); - } - - @Bean - @ConditionalOnProperty(name = "entur.jwt.decode.header.map-to-issuer.enabled", havingValue = "true") - @ConditionalOnMissingBean(JwtHeaderToIssuerMapperDecider.class) - public JwtHeaderToIssuerMapperDecider jwtHeaderToIssuerHeaderMapperDecider() { - return new DefaultJwtHeaderToIssuerMapperDecider(); - } - @Bean @ConditionalOnExpression("${entur.authorization.enabled:true} && !${entur.jwt.enabled:true}") public SecurityFilterChain securityWebFilterChain( diff --git a/jwt-server/spring/jwt-spring-webflux/src/main/java/org/entur/jwt/spring/JwtWebFluxSecurityAutoConfiguration.java b/jwt-server/spring/jwt-spring-webflux/src/main/java/org/entur/jwt/spring/JwtWebFluxSecurityAutoConfiguration.java index 7648568d9..9662a129c 100644 --- a/jwt-server/spring/jwt-spring-webflux/src/main/java/org/entur/jwt/spring/JwtWebFluxSecurityAutoConfiguration.java +++ b/jwt-server/spring/jwt-spring-webflux/src/main/java/org/entur/jwt/spring/JwtWebFluxSecurityAutoConfiguration.java @@ -2,8 +2,6 @@ import org.entur.jwt.spring.config.EnturAuthorizeHttpRequestsCustomizer; import org.entur.jwt.spring.config.EnturOauth2ResourceServerCustomizer; -import org.entur.jwt.spring.decode.BoundedJwtHeaderToIssuerMapper; -import org.entur.jwt.spring.decode.DefaultJwtHeaderToIssuerMapperDecider; import org.entur.jwt.spring.decode.JwtHeaderToIssuerMapperDecider; import org.entur.jwt.spring.decode.JwtHeaderToIssuerMapper; import org.entur.jwt.spring.properties.Auth0Flavour; @@ -81,21 +79,6 @@ public JwtAuthorityEnricher jwtAuthorityEnricher() { return new DefaultJwtAuthorityEnricher(); } - @Bean - @ConditionalOnProperty(name = "entur.jwt.decode.header.map-to-issuer.enabled", havingValue = "true") - @ConditionalOnMissingBean(JwtHeaderToIssuerMapper.class) - public JwtHeaderToIssuerMapper jwtHeaderToIssuerMapper(SecurityProperties securityProperties) { - int maxSize = securityProperties.getJwt().getDecode().getHeader().getMapToIssuer().getMaxSize(); - return maxSize != -1 ? new BoundedJwtHeaderToIssuerMapper(maxSize) : new JwtHeaderToIssuerMapper(); - } - - @Bean - @ConditionalOnProperty(name = "entur.jwt.decode.header.map-to-issuer.enabled", havingValue = "true") - @ConditionalOnMissingBean(JwtHeaderToIssuerMapperDecider.class) - public JwtHeaderToIssuerMapperDecider jwtHeaderToIssuerHeaderMapperDecider() { - return new DefaultJwtHeaderToIssuerMapperDecider(); - } - @Configuration @ConditionalOnMissingBean(name = BeanIds.SPRING_SECURITY_FILTER_CHAIN) @ConditionalOnExpression("${entur.authorization.enabled:true} || ${entur.jwt.enabled:true}")