-
카테고리
-
세부 분야
백엔드
-
해결 여부
해결됨
경로설정
23.08.08 23:34 작성 23.08.08 23:35 수정 조회수 265
0
protected AjaxLoginProcessingFilter(String defaultFilterProcessesUrl) {
super(new AntPathRequestMatcher("/xxx"));
}
이렇게 설정하는건 자바에서 직접 설정하는거고
이전에 설정파일에서
http
.authorizeRequests().antMatchers("/xxx") 경로 설정한거랑
두개다 같다고 생각하면 되는거죠 ?
답변을 작성해보세요.
0
정수원
지식공유자2023.08.09
관련성은 있으나 같은 개념은 아닙니다
protected AjaxLoginProcessingFilter(String defaultFilterProcessesUrl) {
super(new AntPathRequestMatcher("/xxx"));
}
위의 구문은 사용자가 서버로 요청을 하게 될 경우 만약 /xxx 로 하게 된다면 AjaxLoginProcessingFilter 가 그 요청을 가로채어 동작한다는 의미입니다. 즉 AjaxLoginProcessingFilter 가 /xxx 요청에 대한 작동여부를 결정하기 위해 설정하는 정보입니다.
http
.authorizeRequests().antMatchers("/xxx")
은 초기화 시 /xxx 정보를 시큐리티 내부적으로 미리 저장하게 되고 사용자가 만약 /xxx 로 요청을 하게 되면 시큐리티에서 저장해 놓은 /xxx 정보와 매칭해서 정보가 서로 일치하는지 검증해서 일치하면 접근을 거부하겠다 혹은 통과시키겠다 라는 결정을 하기 위함입니다.
그리고 보통
http
.authorizeRequests().antMatchers("/xxx")
은
protected AjaxLoginProcessingFilter(String defaultFilterProcessesUrl) {
super(new AntPathRequestMatcher("/xxx"));
}
보다 뒤쪽에서 처리되기 때문에 AjaxLoginProcessingFilter 가 영향을 받지 않을 수도 있습니다.
H K
질문자2023.08.09
아.. ajax필터는 별도로 처리해야 하므로 상속받아서 처리했고 이를위해
super(new AntPathRequestMatcher("/api/login"));
--> 필터 가로채기를 이용한거네요 ?
정수원
지식공유자2023.08.09
네 맞습니다.
AjaxLoginProcessingFilter 는 인증 처리를 위한 필터이기 때문에 /xxx 로 오는 요청을 받아 처리하기 위해서는 중간에 다른 필터에 의해 차단되지 않아야 합니다.
그래서
http
.authorizeRequests().antMatchers("/xxx")
와는 별개로 처리가 되어져야 합니다.
답변 1