WebSecurityConfigurerAdapter
는 Filter chian을 구성하는 Configuration클래스로 해당 클래스의 상속을 통해 Filter Chain을 구성할 수 있다.configure(HttpSecurity http)
를 override하며 filter들을 세팅한다.@EnableWebSecurity(debug = true) // request가 올 떄마다 어떤 filter를 사용하고 있는지 출력을 해준다.
@EnableGlobalMethodSecurity(prePostEnabled = true) // 사전에 prePost로 권한체크를 하겠다는 설정!!
public class SecurityConfig extends WebSecurityConfigurerAdapter {
// WebSecurityConfigurerAdapter`는 Filter chian을 구성하는 Configuration클래스
@Override
protected void configure(HttpSecurity http) throws Exception {
// HttpSecurity를 설정하는 것이 Filter들을 Setting하는 것이다.
http.authorizeRequests((requests) ->
requests.antMatchers("/").permitAll()
.anyRequest().authenticated()
);
http.formLogin(login->
login.defaultSuccessUrl("/", false));
http.httpBasic();
}
}
WebSecurityConfigurerAdapter
을 상속받아 Filter Chain을 만드는 Class위에 @EnableWebSecurity(debug = true)
어노테이션을 붙여주면 현재 실행되는 Security Fiter들을 확인할 수 있다.
http.antMatcher
를 통해 설정해야한다.http.antMatcher("/**")
로 하며 /api~~에 대해서 적용을 하고 싶다면 http.antMatcher("/api/**")
와 같이 해줘야한다.@Order
annotation을 붙여줘야한다.@Order(1) // order가 낮은 것부터 먼저 설정을 한다.
@EnableWebSecurity(debug = true)
@EnableGlobalMethodSecurity(prePostEnabled = true)
public class SecurityConfig extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
http.antMatcher("/**"); // 해당 filter가 동작할킬 URL을 설정하려면 antMatcher를 통해 설정해야한다.
http.authorizeRequests((requests) ->
requests.antMatchers("/").permitAll()
.anyRequest().authenticated()
);
http.formLogin(login->
login.defaultSuccessUrl("/", false));
http.httpBasic();
}
}