본문 바로가기
Framework/Spring Framework

[Spring Boot] Spring Security 사용자 정의 보안 기능 구현

by 원동호 2021. 5. 2.
반응형

사용자 정의를 위한 구조

SpringSecurity의 설정을 직접 구현하면 보안관련 설정을 사용자화 할 수 있다. SecurityConfig 객체를 생성하여 WebSecurityConfigurerAdapter 을 상속 받아 configure 메서드를 override 한다.

 

WebSecurityConfigurerAdapter

스프링 시큐리티의 웹 보안 기능을 초기화하고 설정을 담당하는 클래스이다. 기본적인 보안 기능을 활성화 하고 시스템에 보안 기능이 작동하게 하기 위한 모든 설정을 처리 한다.

HttpSecurity

세부적인 보안 기능을 설정할 수 있는 API를 제공한다.

 

SecurityConfig

사용자 정의 보안 설정 클래스이다.(정해져있는 클래스명은 아님)

아래의 EnableWebSecurity 어노테이션을 명시하면 기본적인 웹 시큐리티를 활성화 하겠다는 의미이다.

@Configuration 
@EnableWebSecurity 
public class SecurityConfig extends WebSecurityConfigurerAdapter { }

Override configure(HttpSecurity http)

WebSecurityConfigurerAdapter Class를 상속 받고 아래 method를 override하여 구현하면 인가와 인증 처리에 대해 사용자가 정의할 수 있다.

@Override 
protected void configure(HttpSecurity http) throws Exception { }

 

아래 configure method는 WebSecurityConfigurerAdapter Class에 기본적으로 설정되어있는것들이다. SecurityConfig Class에 따로 설정해주지 않아도 아래의 설정이 기본적으로 설정된다.

/* spring-security 의존성을 추가하고 root 페이지 요청 시 로그인 폼 페이지가 뜨는 이유 
 * WebSecurityConfigurerAdapter Class의 configure 함수 때문 
 * 아래의 설정으로 초기화 되기때문이다. 
 */ 
 	protected void configure(HttpSecurity http) throws Exception {
		this.logger.debug("Using default configure(HttpSecurity). "
				+ "If subclassed this will potentially override subclass configure(HttpSecurity).");
		http.authorizeRequests((requests) -> requests.anyRequest().authenticated());
		http.formLogin();
		http.httpBasic();
	}
반응형

댓글