Security 사용하는 페이지 접근 오류

HyeonJeong·2023년 1월 15일
0

오류를 해결하자

목록 보기
1/2
post-thumbnail

회원가입 기능을 개발하면서 만난 오류를 정리해보았다.


⭐ 주의 ⭐

이전부터 Security 처리를 위해서 자주 사용되었던 "WebSecurityConfigurerAdapter"는 Spring Security 5.7.0-M2부터 더이상 사용되지 않는다!

그래서 Spring Security는 대신에 "SecurityFilterChain"을 사용하기를 권장되고 있다.


📌 SecurityFilterChain

WebSecurityConfigurerAdapter의 webSecurityCustomizer()와 차이점

  • SecurityFilterChain을 반환하고 빈으로 등록함으로써 컴포넌트 기반의 보안 설정이 가능

아래는 Security와 관련된 내용을 담은 SecurityConfig Class에서 발생한 문제이다.


1. 원인

  • build.gradle에서 dependencies로 "org.springframework.boot:spring-boot-starter-security"를 사용

  • security에 의해 자동으로 localhost:8080/login으로 페이지가 넘어가서 먼저 username과 password를 통해 권한 확인을 받아야하는 경우

    👉 위 구조에서 id = user & passowrd = (서버에 출력되는 password 값)을 사용해도 "권한이 거부되었다"는 메시지가 뜨게 되는 경우


2. 발생한 이유

3. 해결

// 추가

    @Bean
    public SecurityFilterChain securityFilterChain(HttpSecurity httpSecurity) throws Exception {
        return httpSecurity
                .httpBasic().disable()
                .csrf().disable()
                .cors().and()
                .authorizeRequests()
                .antMatchers("/api/**").permitAll()
                .antMatchers("/api/users/new-user", "/api/users").permitAll()
                .and()
                .sessionManagement()
                .sessionCreationPolicy(SessionCreationPolicy.STATELESS)
                .and()
                .build();
    

0개의 댓글