<Spring Security> 1. 기본 설정
by BFine반응형
출처 : https://inf.run/4Vam
가. 설정 클래스
a. Config 설정
- starter-security dependency를 추가하면 자동으로 security 설정이 이루어진다.
=> 원하는 보안기능을 사용하기 위해서는 설정 클래스 추가해서 사용해야한다.
- 이때 WebSecurityConfigurerAdapter 를 상속받아서 구현한다.
=> 해당 클래스는 웹 보안기능 초기화 및 설정을 담당한다.
import org.springframework.context.annotation.Configuration;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
super.configure(http);
}
}
- 세부적인 보안기능은 HttpSecurity 를 사용하여 처리한다.
b. WebSecurityConfigurerAdapter
- Spring Boot가 로딩 되면서 초기화 과정을 거친다.
- http의 API를 이용해서 웹 보안기능을 configuer 형태로 설정하고 있는 것을 알수있다(default 설정)
c. HttpSecurity
- HttpSecurity의 API를 이용하여 다양한 보안 정책을 설정할 수 있다.
import org.springframework.context.annotation.Configuration;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
http.csrf(); // CSRF 설정
http.addFilter(); // Servlet 필터 추가
http.formLogin(); // fromLogin 방식 사용
http.authorizeRequests()
.antMatchers("/main").permitAll(); //API 접근권한 부여
http.exceptionHandling(); // Exception 핸들링 적용
http.authenticationProvider(); // authenticationProvider 설정
http.oauth2Login(); // oauth2 로그인 설정
http.rememberMe(); // rememberMe 설정
// 등등 다양한 API들이 존재함
}
}
반응형
'공부 > Spring Security' 카테고리의 다른 글
<Spring Security> 5. FilterChainProxy에 들어가는 Filter들 분석하기 (0) | 2021.10.21 |
---|---|
<Spring Security> 4. Custom 필터 추가해보기 (0) | 2021.10.11 |
<Spring Security> 3. 인증&인가 처리 과정 (0) | 2021.09.05 |
<Spring Security> 2. 아키텍쳐 (0) | 2021.09.04 |
<Spring Security> 0. 스프링 시큐리티란 (0) | 2021.07.14 |
블로그의 정보
57개월 BackEnd
BFine