-
[Tnote] security 버전 변경에 따른 설정 변경T-note 2023. 12. 28. 15:28728x90
기존 spring security 3.0.2 일때 코드 [ 기존 코드 ]
private final JwtTokenProvider jwtTokenProvider; private final JwtAuthenticationEntryPoint jwtAuthenticationEntryPoint; private final JwtAccessDeniedHandler jwtAccessDeniedHandler; private final JwtExceptionFilter jwtExceptionFilter; @Bean public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception { http .csrf().disable() .exceptionHandling() .authenticationEntryPoint(jwtAuthenticationEntryPoint) .accessDeniedHandler(jwtAccessDeniedHandler) .and() .headers().frameOptions().disable() .and() .cors() .and() .sessionManagement() .sessionCreationPolicy(SessionCreationPolicy.STATELESS) .and() .authorizeHttpRequests() .requestMatchers("/**").permitAll() .anyRequest().authenticated() .and() .oauth2Login() .redirectionEndpoint() .baseUri("/oauth2/code/*") ; http .addFilterBefore(new JwtAuthenticationFilter(jwtTokenProvider), UsernamePasswordAuthenticationFilter.class) .addFilterBefore(jwtExceptionFilter, JwtAuthenticationFilter.class); return http.build(); }
현재 spring security 3.1.0 인 코드
@Bean public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception { http .csrf( AbstractHttpConfigurer::disable ) .headers(headerConfig -> headerConfig.frameOptions( HeadersConfigurer.FrameOptionsConfig::disable ) ) .exceptionHandling(exceptionConfig -> exceptionConfig .authenticationEntryPoint(jwtAuthenticationEntryPoint) .accessDeniedHandler(jwtAccessDeniedHandler) ) .authorizeHttpRequests(authorizeRequests -> authorizeRequests .requestMatchers("/**").permitAll() .anyRequest().authenticated() ) .cors( Customizer.withDefaults() ) //세션 정책 설정 .sessionManagement(configurer -> configurer.sessionCreationPolicy( SessionCreationPolicy.STATELESS ) ) .addFilterBefore( new JwtAuthenticationFilter(jwtTokenProvider) , UsernamePasswordAuthenticationFilter.class ) .addFilterBefore( jwtExceptionFilter, JwtAuthenticationFilter.class ) .logout(logout -> logout.logoutSuccessUrl("/") ) .oauth2Login(oauth2 -> oauth2.redirectionEndpoint( info -> info.baseUri("/oauth2/code/*") ) ) ; return http.build(); } }
버전이 변경이 되면서 조금 변경이 되었다.
메서드 체이닝으로 해결X -> 앞으로는 람다식을 사용하여서 해결O
기존 설정은 () 안에 Customizer.withDefaults() 를 사용하면 된다 ( cors() 부분 참고 )
버전 변경에 따른 문법 변화는 docs를 잘 참고해보자!
'T-note' 카테고리의 다른 글
[code deploy] code deploy중 access denied (2) 2024.02.16 [Tnote] error: variable userRepository not initialized in the default constructor (0) 2024.02.15 [error] build 오류 (0) 2024.02.10 [error] Name for argument of type [java.lang.Long] not specified (0) 2024.01.09 [Tnote] 스프링 시큐리티 - @AuthenticationPrincipal 로그인 정보 받기 (0) 2023.12.30