layout: post
title: Security 페이지 접근 오류
subtitle: 회원가입 기능 개발 중 발생한 오류 정리
categories: spring
tags: [flavor-spot-finder, security, spring, study]


issue

📌 Security 주의사항

이전에 자주 사용되던 'WebSecurityConfigurerAdapter'는 Spring Security 5.7.0-M2부터 더이상 사용되지 않습니다.

대신 Spring Security는 'SecurityFilterChain'을 사용하기를 권장하고 있습니다.

SecurityFilterChain

WebSecurityConfigurerAdapter의 'webSecurityCustomizer()'와의 차이점

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

1. 문제 발생 원인

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

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

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

권한 거부 메시지

2. 문제 해결 방법

    public class SecurityConfig {
      @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();
      }
  }

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

Spring Boot 기초 오류  (0) 2023.03.06
UnsupportedClassVersionError  (0) 2022.07.05

+ Recent posts