Spring Boot 3.1 & Spring Security 6: Security Config 최적화 리팩토링 (12편)

2023. 9. 4. 19:55·Spring/Spring Security
반응형

이번에는 필요없는 필터는 없애고 최적화를 진행하기 위해 Security Config를 리팩토링 했다.

 


 

1. SecurityConfig 리팩토링


  • 앞의 게시글을 확인해보면 작성한 코드가 있기에 변경된 메서드만 설명하겠다.
  • 일단 나는 ssl(서버 사이드 랜더링)이기 때문에 에러페이지, 메인페이지, 회원가입, 로그인, 정적 리소스는 모두 접근을 허가해줬다.
  • 여기서 특히 바뀐건 addFilterBefore() 이것이다. jwtAuthorizationFilter 다음 바로 customAuthenticationFilter로 가도록 했다.
@Bean
public SecurityFilterChain filterChain(
        HttpSecurity http,
        CustomAuthenticationFilter customAuthenticationFilter,
        JwtAuthorizationFilter jwtAuthorizationFilter
) throws Exception {
    log.debug("[+] WebSecurityConfig Start !!! ");
    return http
            .httpBasic(AbstractHttpConfigurer::disable)
            .csrf(AbstractHttpConfigurer::disable)
            .cors(cors -> cors.configurationSource(corsConfigurationSource()))
            .authorizeHttpRequests(authorize -> authorize
                    .dispatcherTypeMatchers(DispatcherType.FORWARD).permitAll()
                    .requestMatchers(
                            new AntPathRequestMatcher("/main/rootPage"),
                            new AntPathRequestMatcher("/error.html"),
                            new AntPathRequestMatcher("/signUp/form"),
                            new AntPathRequestMatcher("/signUp/action/createUser"),
                            new AntPathRequestMatcher("/images/**"),
                            new AntPathRequestMatcher("/css/**"),         // 정적 리소스의 jwt필터 접근 로그가 남지만 실제로 필터가 돌아가지 않고 바로 다음으로 넘어가니 로그에 남는다고 신경쓰지 말자
                            new AntPathRequestMatcher("/js/**"),
                            new AntPathRequestMatcher("/login"),
                            new AntPathRequestMatcher("/favicon.ico"),
                            new AntPathRequestMatcher("/")
                    ).permitAll()
                    .anyRequest().authenticated()
            )
            .sessionManagement(session -> session.sessionCreationPolicy(SessionCreationPolicy.STATELESS))
            .addFilterBefore(jwtAuthorizationFilter, UsernamePasswordAuthenticationFilter.class)
            .addFilterBefore(customAuthenticationFilter, JwtAuthorizationFilter.class)
            .build();
}

 


 

 

2023.09.04 - [SpringBoot 개발/Spring Security] - Spring Boot 3.1 & Spring Security 6: JWT 검증 리팩토링 (11편)

 

Spring Boot 3.1 & Spring Security 6: JWT 검증 리팩토링 (11편)

JWT 필터 스프링 시큐리티 코드 리팩토링을 진행했다. 1. JwtAuthorizationFilter 클래스를 리팩토링 했다. 기존에는 한줄로 이루어져있던 코드를 extract method로 각각 역할별로 추출했다. import com.fasterxml.

curiousjinan.tistory.com

 

반응형

'Spring > Spring Security' 카테고리의 다른 글

Spring Security6 - Authentication(인증)  (1) 2023.10.21
Spring Security와 CORS: 크로스 도메인 요청 처리 기법 알아보기  (0) 2023.10.21
Spring Boot 3.1 & Spring Security 6: JWT 검증 리팩토링 (11편)  (2) 2023.09.04
Spring Security 6 이해하기: 동작 원리와 보안 기능 탐구  (0) 2023.09.04
Spring Boot 3.1 & Spring Security 6: 로그인 프로세스 및 JWT 토큰 동작 설명 (10편)  (0) 2023.08.08
'Spring/Spring Security' 카테고리의 다른 글
  • Spring Security6 - Authentication(인증)
  • Spring Security와 CORS: 크로스 도메인 요청 처리 기법 알아보기
  • Spring Boot 3.1 & Spring Security 6: JWT 검증 리팩토링 (11편)
  • Spring Security 6 이해하기: 동작 원리와 보안 기능 탐구
Stark97
Stark97
문의사항 또는 커피챗 요청은 링크드인 메신저를 보내주세요! : https://www.linkedin.com/in/writedev/
  • Stark97
    오늘도 개발중입니다
    Stark97
  • 전체
    오늘
    어제
    • 분류 전체보기 (240)
      • 개발지식 (20)
        • 스레드(Thread) (8)
        • WEB, DB, GIT (3)
        • 디자인패턴 (8)
      • JAVA (21)
      • Spring (88)
        • Spring 기초 지식 (35)
        • Spring 설정 (6)
        • JPA (7)
        • Spring Security (17)
        • Spring에서 Java 활용하기 (8)
        • 테스트 코드 (15)
      • 아키텍처 (5)
      • MSA (14)
      • DDD (7)
      • gRPC (9)
      • Apache Kafka (18)
      • DevOps (23)
        • nGrinder (4)
        • Docker (1)
        • k8s (1)
        • 테라폼(Terraform) (12)
      • AWS (32)
        • ECS, ECR (14)
        • EC2 (2)
        • CodePipeline, CICD (8)
        • SNS, SQS (5)
        • RDS (2)
      • notion&obsidian (3)
  • 링크

    • notion기록
    • 깃허브
    • 링크드인
  • hELLO· Designed By정상우.v4.10.0
Stark97
Spring Boot 3.1 & Spring Security 6: Security Config 최적화 리팩토링 (12편)
상단으로

티스토리툴바