[Spring Security] Form Login 인증방식
- 📚 Spring/Spring-Security
- 2022. 3. 2. 13:01
WebSecurityConfigurerAdapter
- WebSecurityConfigurerAdapter 을 상속받고 configure를 오버라이드하여 사용한다.
WebSecurityConfigurerAdapter - configure
protected void configure(HttpSecurity http) throws Exception {
this.logger.debug("Using default configure(HttpSecurity). If subclassed this will potentially override subclass configure(HttpSecurity).");
http.authorizeRequests((requests) -> {
((AuthorizedUrl)requests.anyRequest()).authenticated();
});
http.formLogin();
http.httpBasic();
}
Form Login에 사용되는 옵션
http.formLogin() : Form 로그인 인증 기능이 작동함
protected void configure(HttpSecurity http) throws Exception {
http.formLogin()
.loginPage(“/login.html") // 사용자 정의 로그인 페이지
.defaultSuccessUrl("/home) // 로그인 성공 후 이동 페이지
.failureUrl("/login.html?error=true“) // 로그인 실패 후 이동 페이지
.usernameParameter("username") // 아이디 파라미터명 설정
.passwordParameter(“password”) // 패스워드 파라미터명 설정
.loginProcessingUrl(“/login") // 로그인 Form Action Url
.successHandler(loginSuccessHandler()) // 로그인 성공 후 핸들러
.failureHandler(loginFailureHandler()) // 로그인 실패 후 핸들러
}
예제코드
@Configuration
@EnableWebSecurity
@RequiredArgsConstructor
public class SecurityConfig extends WebSecurityConfigurerAdapter {
private final UserDetailsService userDetailsService;
@Override
protected void configure(HttpSecurity http) throws Exception {
//인가 정책
http
.authorizeRequests()
.anyRequest().authenticated();
//인증 정책
http
.formLogin()
;
http
.sessionManagement()
.maximumSessions(1)
.maxSessionsPreventsLogin(false)
;
}
}
'📚 Spring > Spring-Security' 카테고리의 다른 글
3. Logout 처리 > LogoutFilter (0) | 2022.03.03 |
---|---|
[Spring Security] 2. Form Login 필터 : UsernamePasswordAuthenticationFilter (0) | 2022.03.03 |
[Spring Security] Security Filter 의 종류 (0) | 2022.02.13 |
[Spring Security] ThreadLocal (0) | 2022.02.09 |
[Spring Security] 내부구조 (0) | 2022.02.09 |