Spring Security
는 인증
에 대한 포괄적인 지원을 제공한다.
OAuth 2.0 OpenID Connect
및 비표준 OAuth 2.0
로그인 (ex: 네이버 로그인, 카카오 로그인, 깃허브 로그인 ..)JAAS
로 인증OpenID
인증(OpenID Connect
와 혼동 X)SiteMinder
또는 Java EE 보안과 같은 외부 매커니즘으로 인증을 하지만 일반적인 악용에 대한 권한 부여 및 보호를 위해 여전히 Spring Security
를 사용간단하게 스프링 시큐리티 내에서 폼 기반 로그인이 어떻게 작동하는지 살펴보자.
Spring Security는 html 형식을 통해 제공되는 사용자 이름과 비밀번호에 대한 지원을 제공한다.
/private
에 대해 인증되지 않은 요청을 한다.Spring Security
는 인증 FilterSecurityinterceptor
되지 않은 요청이 AccessDeninedException
에 의해서 ExceptionTranslationFilter
로 반환된다.리디렉션
한다.리디렉션
된 로그인 페이지를 요청한다.렌더링
한다.로그인 페이지가 렌더링 되고 사용자가 사용자 이름
과 암호
를 제출하면 UsernamePasswordAuthenticationFilter
로 인증한다.
사용자 이름
과 암호
를 추출하여 UsernamePasswordAuthenticationFilter
를 거친다.UsernamePasswordAuthenticationToken
으로 전달된다.Failure
SecurityContextHolder
가 지워진다.RememberMeServices.loginFail
이 호출된다.AuthenticationFailureHandler
가 호출된다.Success
SessionAuthenticationStrategy
에서 새로운 로그인 알림을 받음RememberMeServices.loginSuccess
호출ApplicationEventPulbisher
발행AuthenticationSuccessHandler
호출 일반적으로 이것은 로그인 페이지로 리디렉션할 때 SimpleUrlAuthenticationSuccessHandler
저장된 요청으로 리디렉션