목차
- Spring Security 권한 계층 사용하기 - @RoleHierarcy
- Spring Security - DelegateFilterProxy
- Spring Security - Remember Me와 관련된 인증 API - RememberMeConfigurer
- Spring Security - RembmerMeAuthenticationFilter
- Spring Security - SessionManagementFilter & ConcurrentSessionFilter
- Spring Security - 인가 API ExpressionUrlAuthorizationConfigurer
- Spring Security - Security 설정을 위한 WebSecurityConfigurerAdatper
- Spring Security - AuthenticationProvider
- Spring Security - AuthenticationManager
- Spring Security - UsernamePasswordAuthenticationFilter & AbstractAuthenticationProcessingFilter
- Spring Security - SecurityContextHolder 와 SecurityContext
- Spring Security - Authentication 객체
인가 API
ExpressionUrlAuthorizationConfigurer 를 통해 자원에 접근하기 위한 다양한 인가 방식을 지원한다.
역할(ROLE) 기반 인가 방식, 권한(Authority) 기반 인가 방식, IP 를 통한 인가 방식등 다양한 API를 제공한다.
- hasRole
- 명시된 권한에 접미사 ROLE_ 을 붙이고 해당 권한을 가진 사용자만 자원에 접근을 허용한다.
- hasAuthority 와 비슷한 개념이지만 hasRole 은 USER, MANAGER, ADMIN과 같은 역할 에 따라 자원에 대한 접근을 허용한다.
- hasAnyRole
- 명시된 권한들에 접미사 ROLE_ 을 붙이고 사용자가 하나라도 권한을 갖고 있으면 해당 자원에 대한 접근을 허용한다.
- hasAuthority
- 해당 권한을 가진 사용자만 자원에 접근을 허용한다.
- hasRole 와 비슷한 개념이지만 hasAuthority는 CREATE, READ, WRITE, DELETE 와 같이 권한 에 따라 자원에 대한 접근을 허용한다.
- hasAnyAuthority
- 명시된 권한들 중 하나라도 권한이 있는 사용자만 자원에 접근을 허용한다.
- hasIpAddress
- 특정 IP 에 대해 자원에 대한 접근을 허용할 때 사용한다.
- permitAll
- 권한에 대한 검증 없이 자원에 대한 접근을 허용한다.
- anonymous
- 익명 사용자의 접근을 허용
- 익명 사용자는 기본적으로 ROLE_ANONYMOUS 권한이 부여돼 있다.
- rememberMe
- Remember-Me 를 통해 인증된 사용자가 자원에 대한 접근을 허용한다.
- denyAll
- 모든 접근을 허용하지 않는다.
- authenticated
- 인증된 사용자만 자원에 대한 접근을 허용한다.
- fullyAuthenticated
- Remember-Me 를 통해 인증된 사용자를 제외하고 인증된 사용자에 대한 접근을 허용한다.
ExpressionUrlAuthorizationConfigurer
public ExpressionInterceptUrlRegistry hasRole(String role) { |