@Override
protected void configure(HttpSecurity http) throws Exception {
http.antMatcher("/shop/**") // "/shop/**" 로 먼저 한번 구분지어 주어야 한다. 그렇지 않으면 모든 경로에 대해 인가를 받아야 함.. 불편하겠지...
.authorizeRequests()
.antMatchers("/shop/login", "/shop/users/**").permitAll()
.antMathcers("/shop/mypage").hasRole("USER")
.antMathcers("/shop/admin/pay").access("hasRole('ADMIN')");
.anyRequest().authenticated()
}```
| 메소드 | 동작 |
|---|---|
| authenticated() | 인증된 사용자의 접근을 허용 |
| fulluAuthenticated() | 인증된 사용자의 접근을 허용. rememberMe 인증 제외. ID/PW 인증만 허용 |
| permitAll() | 무조건 접근을 허용 |
| denyAll() | 무조건 접근을 허용하지 않음 |
| anonymous() | 익명 사용자의 접근을 허용 |
| rememberMe() | 기억하기를 통해 인증된 사용자의 접근을 허용 |
| access(String) | 주어진 SpEL 표현식의 평가 결과가 true 이면 접근을 허용 |
| hasRole(String) | 사용자가 주어진 역할이 있다면 접근을 허용 |
| hasAuthority(String) | 사용자가 주어진 권한이 있다면 접근을 허용 |
| hasIpAddress | 주어진 IP 로부터 요청이 왔다면 접근을 허용 |