[스프링시큐리티] 보안강화

Welcome to Seoyun Dev Log·2024년 12월 18일
0

보안

목록 보기
15/18

다중 보안 설정

: 요청에 따른 보안 기능 설정을 하여 실행

  • Spring Security 는 여러 SecurityFilterChain @Bean 을 등록해서 다중 보안 기능을 구성 할 수 있다

초기화 구성

  • 다중보안 설정하는 경우 각각의 SecurityFilterChain이 생기고 proxy에 SecurityFilterChains 생성되는 것


Custom DSLs

  • Spring Security 는 사용자 정의 DSL 을 구현할 수 있도록 지원한다
  • DSL을구성하면필터,핸들러,메서드,속성등을한곳에정의하여처리할수있는편리함을제공한다

AbstractHttpConfigurer<AbstractHttpConfigurer, HttpSecurityBuilder>

  • 사용자 DSL 을 구현하기 위해서 상속받는 추상 클래스로서 구현 클래스는 두 개의 메서드를 오버라이딩 한다
    • init(B builder) : HttpSecurity 의 구성요소를 설정 및 공유하는 작업 등..
    • configure(B builder) : 공통클래스를 구성 하거나 사용자 정의 필터를 생성하는 작업 등..

DSL 적용하기 위한 API

//apply diprecate
HttpSecurity.with(C configurer, Customizer< C > customizer)
  • configurer는AbstractHttpConfigurer을상속하고DSL을구현한클래스가들어간다
  • customizer는DSL구현클래스에서정의한여러API를커스트마이징한다
  • 동일한클래스를여러번설정하더라도한번만적용된다 (with를 여러번 하더라도 한번만 적용)


이중화 설정

서버 이중화 상태에서 인증/인가 데이터를 하나의 애플리케이션에서 가지고 있다면 비정상 종료시 데이터가 날아간다. 데이터가 캐시 쿠키 서버에 저장되고 이를 바라보고 있다고 생각

세션을 공유할 수 있도록 설정하는 것

implementation 'org.springframework.session:spring-session-data-redis' 
implementation 'org.springframework.boot:spring-boot-starter-data-redis'
spring.data.redis.host=localhost 
spring.data.redis.port= 6379
@Configuration 
⭐️@EnableRedisHttpSession 
public class RedisConfig {

@Value("${spring.data.redis.host}") 
private String host; 
@Value("${spring.data.redis.port}") private int port;
@Bean

public RedisConnectionFactory redisConnectionFactory() { 
return new LettuceConnectionFactory(host, port);
}

}
profile
하루 일지 보단 행동 고찰 과정에 대한 개발 블로그

0개의 댓글

관련 채용 정보