목차
- 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 객체
Spring Security 설정하기 - WebSecurityConfigurerAdatper
스프링 Scurity에 대한 설정은 WebSecurityConfigurer 인터페이스 구현하거나 WebSecurityConfigurerAdapter 클래스를 상속해 설정을 할 수 있다.
인증 방식 설정
configure(AuthenticationManagerBuilder auth)
- 인증 방식과 관련된 설정을 하기 위한 메소드
- AuthenticationManagerBuilder는 인증객체(AuthenticationManager)를 생성하기 위한 클래스이다.
- In Memory authentication나 UserDetailsService를 사용하는 다양한 인증 방식을 손 쉽게 구축할 수 있도록 지원한다.
configure(AuthenticationManagerBuilder auth)
private final CustomUserDetailsService customUserDetailsService; |
전역적인 Security 설정
configure(WebSecurity web)
- 전역적인 Security 설정을 하기 위해 사용하는 메소드
- 정적 파일에 대한 보안 예외처리와 같이 Security Filter Chain에 대한 예외처리를 할 때 사용한다.
- WebSecurity 클래스는 Spring Security에서 FilterChainProxy를 생성한다.
configure(WebSecurity web)
|
Resource별로 Security를 설정
configure(HttpSecurity http)
- Resource별로 Security를 설정하기 위한 메소드이다.
- HttpSecurity 클래스를 통해 인증, 인가와 관련된 Web 기반의 보안 설정을 할 수 있다.
- 인증 : Form Login, Http Basic, OAuth2 Login 등
- 인가 : Matchers, Role, Authenticate, permit 등
configure(HttpSecurity http)
|
패스워드 암호화
Spring Boot에서는 사용자의 Password는 암호화된 상태로 저장이 돼야 한다. 암호화가 안된 상태로 저장하게 되면 사용자 인증시에 오류가 발생하게 된다. 그래서 Password를 암호화된 상태로 저장할 수 있도록 PasswordEncoder 인터페이스를 제공한다.
PasswordEncoder
- PasswordEncoder 인터페이스는 보통 패스워드를 단방향으로 변환한다. 즉 다시 원래대로 되돌릴 수 없다는 의미이다.
- 그래서 Hash 알고리즘을 사용한다.
- BcryptPasswordEncoder
- Argon2PasswordEncoder
- Pbkdf2PasswordEncoder
- SCryptPasswordEncoder
|