Spring-security 를 이용해 로그인을 구현할 때

UsernamePasswordAuthenticationFilter를 상속한다음 커스터마이징해서 사용해야하는 경우가 있다.

프로세스 실행시 내가 만든 클래스로 가려면 config 파일에 filter설정이 필요하다.

내가 만든 클래스를 CustomAuthFilter라고 하면

config 파일에

@Bean

public CustomAuthFilter customAuthFilter(){

 CustomAuthFilter customFilter = new CustomAuthFilter()

 customFilter.setRequiresAuthenticationRequestMatcher(new AntPathRequestMatcher("/login","POST")) 

 customFilter.set~~~~~ 

 customFilter.set~~~~~ 

return customFilter

}

이런식으로 빈 하나를 만들어서 설정들을 셋팅한 다음 filter 관련 설정하는 부분에 (webConfig 등등)

http.addFilterBefore(customAuthFilter(), UsernamePasswordAuthenticationFilter.class) 

를 입력해주면 된다.

만약 따로 filter를 정의한 곳이 없으면 config 클래스의 configure 메소드 안에 넣어주면 된다.

로그인 프로세스 디폴트 URL이 /j_spring_security_check 인걸로 알고 있었는데 spring-security 3.2.7 부터는 /login으로 바뀌었다고 한다.