diff --git a/src/main/java/com/wb/domainserver/security/config/BatchServerConfig.java b/src/main/java/com/wb/domainserver/security/config/BatchServerConfig.java index 201ef3e..f7d77a7 100644 --- a/src/main/java/com/wb/domainserver/security/config/BatchServerConfig.java +++ b/src/main/java/com/wb/domainserver/security/config/BatchServerConfig.java @@ -1,56 +1,15 @@ package com.wb.domainserver.security.config; -import com.nimbusds.jwt.JWT; -import com.nimbusds.jwt.JWTParser; -import com.wb.domainserver.security.authentication.CustomAuthenticationEntryPoint; -import com.wb.domainserver.security.authentication.MemberJwtAuthenticationConverter; -import com.wb.domainserver.security.authorization.WnbtAuthorizationManager; -import jakarta.servlet.http.HttpServletRequest; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.aop.Advisor; -import org.springframework.aop.support.JdkRegexpMethodPointcut; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; -import org.springframework.context.annotation.Role; -import org.springframework.security.authorization.method.AuthorizationManagerBeforeMethodInterceptor; -import org.springframework.security.config.annotation.method.configuration.EnableMethodSecurity; import org.springframework.security.config.annotation.web.builders.HttpSecurity; import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; import org.springframework.security.config.annotation.web.configurers.AbstractHttpConfigurer; -import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; -import org.springframework.security.oauth2.jwt.JwtDecoder; -import org.springframework.security.oauth2.jwt.JwtDecoders; -import org.springframework.security.oauth2.jwt.NimbusJwtDecoder; import org.springframework.security.web.SecurityFilterChain; -import org.springframework.security.web.util.matcher.AntPathRequestMatcher; -import org.springframework.util.StringUtils; - -import java.text.ParseException; - -import static org.springframework.beans.factory.config.BeanDefinition.ROLE_INFRASTRUCTURE; @EnableWebSecurity @Configuration -@EnableMethodSecurity public class BatchServerConfig { - private static final Logger logger = LoggerFactory.getLogger(BatchServerConfig.class); - - @Value("${spring.security.oauth2.resourceserver.jwt.issuer-uri}") - String issuerUri; - - @Autowired - private CustomAuthenticationEntryPoint authenticationEntryPoint; - - @Bean - @Role(ROLE_INFRASTRUCTURE) - public Advisor authorizationManagerBeforeMethodInterception(WnbtAuthorizationManager authorizationManager) { - JdkRegexpMethodPointcut pattern = new JdkRegexpMethodPointcut(); - pattern.setPattern("com.wb.domainserver.*.controller.*"); - return new AuthorizationManagerBeforeMethodInterceptor(pattern, authorizationManager); - } @Bean SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception { @@ -58,53 +17,7 @@ public class BatchServerConfig { .csrf(AbstractHttpConfigurer::disable) .authorizeHttpRequests(authorize -> authorize .anyRequest().permitAll() - ) - .oauth2ResourceServer(oauth2 -> oauth2 - .jwt(jwt -> jwt - .decoder(jwtDecoder()) - .jwtAuthenticationConverter(new MemberJwtAuthenticationConverter()) - ) - .bearerTokenResolver(this::customBearerTokenResolver) - - ) - .exceptionHandling(exceptions -> exceptions - .authenticationEntryPoint(authenticationEntryPoint) ); - return http.build(); } - - private String customBearerTokenResolver(HttpServletRequest request) { - String authorization = request.getHeader("Authorization"); - if (StringUtils.hasText(authorization) && authorization.startsWith("Bearer ")) { - return authorization.substring(7); - } - return null; - } - - @Bean - public JwtDecoder jwtDecoder() { - return token -> { - String issuerUri = determineIssuerUri(); - logger.debug("Determined issuerUri: {}", issuerUri); - JWT jwt = null; - try { - jwt = JWTParser.parse(token); - logger.debug("Token issuer: {}", jwt.getJWTClaimsSet().getIssuer()); - } catch (ParseException e) { - throw new RuntimeException(e); - } - NimbusJwtDecoder jwtDecoder = JwtDecoders.fromOidcIssuerLocation(issuerUri); - return jwtDecoder.decode(token); - }; - } - - private String determineIssuerUri() { - return String.format(issuerUri); - } - - @Bean - public BCryptPasswordEncoder bCryptPasswordEncoder() { - return new BCryptPasswordEncoder(); - } }