본문 바로가기
❤️‍🔥TIL (Today I Learned)

[TIL] 2023-01-02(46day)

by elicho91 2023. 1. 2.

3차 프로젝트 Spring Security config


👉 WebSecurityConfig

@Configuration
@RequiredArgsConstructor
@EnableWebSecurity // 스프링 Security 지원을 가능하게 함
@EnableMethodSecurity(securedEnabled = true, prePostEnabled = true) // @Secured 어노테이션 활성화
public class WebSecurityConfig {

    private final JwtUtil jwtUtil;


    @Bean
    public PasswordEncoder passwordEncoder() {
        return new BCryptPasswordEncoder();
    }


    @Bean
    public WebSecurityCustomizer webSecurityCustomizer() {
        // h2-console 사용 및 resources 접근 허용 설정
        return (web) -> web.ignoring()
                .requestMatchers(PathRequest.toH2Console())
                .requestMatchers(PathRequest.toStaticResources().atCommonLocations());
    }

    @Bean
    public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception {
        http.csrf().disable();

        // 기본 설정인 Session 방식은 사용하지 않고 JWT 방식을 사용하기 위한 설정
        http.sessionManagement().sessionCreationPolicy(SessionCreationPolicy.STATELESS);

        http.authorizeHttpRequests()
                .requestMatchers("/api/users/**").permitAll()
                .requestMatchers("/api/posts/**").permitAll()
                .anyRequest().authenticated()
                // JWT 인증/인가를 사용하기 위한 설정
                .and().addFilterBefore(new JwtAuthFilter(jwtUtil), UsernamePasswordAuthenticationFilter.class);


        http.formLogin();
        return http.build();
    }

🙋‍♂️ 소감 : 

스프링부트 2.7.6 버전에서 사용하던 몇몇 설정들이 작동이 안되었다.ㅠㅠ

검색해보니 프로젝트는 3.0.0 버전으로 하는데 해당 버전에서는 config의 몇몇 설정들이 변경되었다고 해서

변경하였더니 정상적으로 작동이 된다 :)

😈 아는 내용이라고 그냥 넘어가지 않기! 😈

'❤️‍🔥TIL (Today I Learned)' 카테고리의 다른 글

[TIL] 2023-01-04(48day)  (0) 2023.01.04
[TIL] 2023-01-03(47day)  (0) 2023.01.03
[TIL] 2022-12-30(45day)  (0) 2023.01.01
[TIL] 2022-12-29(44day)  (0) 2022.12.29
[TIL] 2022-12-28(43day)  (0) 2022.12.28

댓글