SecurityConfig 파일에 폼 로그인 방식을 커스텀 할 수 있다.
@EnableWebSecurity
@Configuration
public class SecurityConfig {
@Bean
public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception {
http
.authorizeHttpRequests(auth -> auth.anyRequest().authenticated())
.formLogin(form -> form
.loginPage("/loginPage")
.loginProcessingUrl("/loginProc")
.defaultSuccessUrl("/", false)
.failureUrl("/failed")
.usernameParameter("userId")
.passwordParameter("passwd")
.successHandler((request, response, authentication) -> {
System.out.println("authentication : " + authentication);
response.sendRedirect("/home");
})
.failureHandler((request, response, exception) -> {
System.out.println("exception : " + exception.getMessage());
response.sendRedirect("/login");
})
.permitAll()
);
return http.build();
}
@Bean
public UserDetailsService userDetailsService() {
UserDetails user = User.withUsername("user")
.password("{noop}asdf")
.roles("USER").build();
return new InMemoryUserDetailsManager(user);
}
}