오늘은 Part 2. 게시판 서비스 강의의 `로그인 페이지 만들기` 부분을 학습하였다.
로그인 페이지는 Spring Security에서 제공하는 로그인 페이지를 사용하기로 했기때문에 따로 만들지 않는다.
스프링부트 2.7 버전부터 Spring Security Config 변경사항이 발생하였다. 이 점을 참고하여 최신 버전에 맞게 프로젝트에 적용해주었다.
Spring Security
Spring 기반의 어플리케이션 보안(인증과 권한, 인가 등)을 담당하는 스프링 하위 프레임워크이다. Security는 인증과 권한에 대한 부분을 Filter의 흐름에 따라 처리하고 있다.
Spring Security의 Config 작성
기존 방식 - WebSecurityConfigurerAdapter를 class에 상속
@Configuration
public class SecurityConfiguration extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
http
.authorizeRequests()
.anyRequest().authenticated()
.formLogin();
return http.build();
}
바뀐 방식 - SecurityFilterChain bean을 등록
@Configuration
public class SecurityConfiguration extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
http
.authorizeRequests()
.anyRequest().authenticated()
.formLogin();
return http.build();
}
WebSecurityConfigurerAdapter가 Deprecated(더 이상 사용되지 않음)되었으니 SecurityFilterChain 을 빈으로 등록해서 사용하면 된다.
- authorizeRequest() (보안 절차를 거치고)
- anyRequest() (어떠한 request라도)
- authenticated() (인증을 받아야 함)
- formLogin() (그 방식은 폼 로그인)