Spring Security
초보자가 이해하는 Spring Security Mambo
그래들(Gradle)은 무엇인가?
확장된 형태에서의 .antMatchers().hasRole() 또는 .antMatchers().access() 는 해당 경로에 대해서 어떠한 권한을 가져야만 접근할 수 있는가를 표현하는 것
antMatchers() 다음으로 지정할 수 있는 항목들
- anonymous() 인증되지 않은 사용자가 접근할 수 있습니다.
- authenticated() 인증된 사용자만 접근할 수 있습니다.
- fullyAuthenticated() 완전히 인증된 사용자만 접근할 수 있습니다(?)
- hasRole() or hasAnyRole() 특정 권한을 가지는 사용자만 접근할 수 있습니다.
- hasAuthority() or hasAnyAuthority() 특정 권한을 가지는 사용자만 접근할 수 있습니다.
- hasIpAddress() 특정 아이피 주소를 가지는 사용자만 접근할 수 있습니다.
- access() SpEL 표현식에 의한 결과에 따라 접근할 수 있습니다.
- not() 접근 제한 기능을 해제합니다.
- permitAll() or denyAll() 접근을 전부 허용하거나 제한합니다.
- rememberMe() 리멤버 기능을 통해 로그인한 사용자만 접근할 수 있습니다.
Role은 역할이고 Authority는 권한이지만 사실은 표현의 차이입니다. Role은 “ADMIN”으로 표현하고 Authority는 “ROLEADMIN”으로 표기하는 것 뿐입니다. 실제로 hasRole()에 ROLEADMIN으로 표기하면 ROLE을 지우라는 에러를 볼수 있게 됩니다.