스프링 시큐리티를 학습하기에 앞서 인터셉터를 알고있다면 스프링 시큐리티도 접하기 쉬울겁니다.
스프링 시큐리티의 가장 핵심 개념은 인증(Authenication), 인가(Authorization)입니다.
- 고객은 은행에서 신분증을 제출하여 본인임을 증명합니다.
- 은행원은 고객의 신분을 확인합니다.
- 은행에서 고객의 계좌를 이용할 수 있는 사람인지 판단합니다.
- 적잘한 권리, 권한이 있는 고객의 경우 계좌 이용을 가능하게 합니다.
'증명' 을 하여 인증을 받고 '인가' 를 하여 허가를 해줍니다.
시큐리티 관련 기능을 쉽게 설정하기 위하여 WebSecurityConfigurerAdapter 클래스를 상속 받습니다.
아래 코드는 임의로 작성한 코드입니다.
@Configuration
public class Main extends WebSecurityConfigurerAdapter{
// 설정하고 싶은 기능을 여기에 override 하면 됨.
@Override
protect void configure(HttpSecurity http) throws Exception{
//요구하는 url 권한 설정. 어노테이션으로 하는 방법도 있음.
http.authrizeRequests().antMatchers("/").permitAll();
http.authrizeRequests().antMatchers("/board").hasRole("USER");
http.formLogin(); // 만든 로그인 페이지가 있다면 loginPage() 사용
http.logout(); // 만든 로그아웃 페이지가 있다면 logoutUrl() 사용
}
}
이처럼 원하는 기능을 상속받아 작성합니다.