From 34acf68408cc82c13609e824f5d967f9f1d65064 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=9D=B4=EC=A3=BC=EC=9D=BC?= Date: Sat, 23 May 2026 10:10:29 +0900 Subject: [PATCH] =?UTF-8?q?refactor:=20BatchServerConfig=20Keycloak/OAuth2?= =?UTF-8?q?=20=EC=BD=94=EB=93=9C=20=EC=A0=9C=EA=B1=B0,=20=EB=8B=A8?= =?UTF-8?q?=EC=88=9C=20permitAll=20=EC=84=A4=EC=A0=95=EC=9C=BC=EB=A1=9C=20?= =?UTF-8?q?=EA=B5=90=EC=B2=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../security/config/BatchServerConfig.java | 87 ------------------- 1 file changed, 87 deletions(-) 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(); - } }