From a9bc0c44956c6005f4769fd34b1325d711102564 Mon Sep 17 00:00:00 2001 From: jkhong Date: Wed, 7 Feb 2024 10:53:00 +0900 Subject: [PATCH] modify --- pom.xml | 4 ++ .../i4way/I4WayGenesysServiceApplication.java | 3 +- .../co/i4way/config/SpringSecurityConfig.java | 51 +++++++++++++++++++ src/main/resources/application-prod.yml | 6 +-- 4 files changed, 60 insertions(+), 4 deletions(-) create mode 100644 src/main/java/kr/co/i4way/config/SpringSecurityConfig.java diff --git a/pom.xml b/pom.xml index ccd917e..37f0ab8 100644 --- a/pom.xml +++ b/pom.xml @@ -29,6 +29,10 @@ org.springframework.boot spring-boot-starter-security + + org.springframework.security + spring-security-test + org.springframework.boot spring-boot-starter-thymeleaf diff --git a/src/main/java/kr/co/i4way/I4WayGenesysServiceApplication.java b/src/main/java/kr/co/i4way/I4WayGenesysServiceApplication.java index 850d652..aff258e 100644 --- a/src/main/java/kr/co/i4way/I4WayGenesysServiceApplication.java +++ b/src/main/java/kr/co/i4way/I4WayGenesysServiceApplication.java @@ -27,13 +27,14 @@ package kr.co.i4way; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.boot.autoconfigure.security.servlet.SecurityAutoConfiguration; import org.springframework.scheduling.annotation.EnableScheduling; import com.ulisesbocchio.jasyptspringboot.annotation.EnableEncryptableProperties; -@SpringBootApplication @EnableScheduling @EnableEncryptableProperties +@SpringBootApplication public class I4WayGenesysServiceApplication { public static void main(String[] args) { diff --git a/src/main/java/kr/co/i4way/config/SpringSecurityConfig.java b/src/main/java/kr/co/i4way/config/SpringSecurityConfig.java new file mode 100644 index 0000000..ebb0c66 --- /dev/null +++ b/src/main/java/kr/co/i4way/config/SpringSecurityConfig.java @@ -0,0 +1,51 @@ +package kr.co.i4way.config; + +import org.apache.catalina.filters.CorsFilter; +import org.springframework.boot.web.servlet.DispatcherType; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.core.annotation.Order; +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.config.annotation.web.configurers.HeadersConfigurer; +import org.springframework.security.config.http.SessionCreationPolicy; +import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; +import org.springframework.security.crypto.password.PasswordEncoder; +import org.springframework.security.web.SecurityFilterChain; +import org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter; + +import lombok.RequiredArgsConstructor; + +@Configuration +@EnableWebSecurity +@EnableMethodSecurity +public class SpringSecurityConfig { + + private final CorsFilter corsFilter = new CorsFilter(); + + @Bean + public PasswordEncoder passwordEncoder() { + return new BCryptPasswordEncoder(); + } + + @Bean + public SecurityFilterChain filterChain(HttpSecurity http) throws Exception { + http + .csrf(AbstractHttpConfigurer::disable) + .addFilterBefore(corsFilter, UsernamePasswordAuthenticationFilter.class) + .sessionManagement(session -> session + .sessionCreationPolicy(SessionCreationPolicy.STATELESS) + ) + .authorizeHttpRequests(request -> request + .requestMatchers( + "/version", "/login/google" + ) + .permitAll() + ) + .authorizeHttpRequests(request -> request.anyRequest().authenticated()); + + return http.build(); + } +} \ No newline at end of file diff --git a/src/main/resources/application-prod.yml b/src/main/resources/application-prod.yml index 147c83f..d7df8ed 100644 --- a/src/main/resources/application-prod.yml +++ b/src/main/resources/application-prod.yml @@ -13,9 +13,9 @@ datasource: mssql: driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver - jdbc-url: jdbc:sqlserver://10.5.188.139;databasename=HCTIETLPRD;encrypt=true;trustServerCertificate=true - username: HCTIETLADM - password: ENC(0NvQrV/XiOyxCB+n6xL97JmMw1/kQlUc) + jdbc-url: jdbc:sqlserver://172.168.30.61;databasename=RND_TEST;encrypt=true;trustServerCertificate=true + username: RND_USER + password: ENC(G5u0UcCDMig4HljKNER2qw==) connection-test-query: SELECT 1 # mssql-brd: # driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver