@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 로부터 요청이 왔다면 접근을 허용 |