[SPRING] Spring 보안 이동 Java Config에는 authentication-success-handler-ref는 어디로 이동합니까?
SPRINGSpring 보안 이동 Java Config에는 authentication-success-handler-ref는 어디로 이동합니까?
우리의 응용 프로그램은 성공적인 로그인을위한 사용자 정의 성공 처리기가 있습니다. 기본적으로 세션이 만료되었을 때 페이지에 리디렉션됩니다.
우리는 spring xml 설정 대신 Java 설정으로 이동 중입니다. 나머지 설정은 매우 원활하게 진행되었지만 security : form-login 태그의 authentication-success-handler-ref 속성을 어디에 둘 수 있는지 찾을 수 없습니다.
<security:http auto-config='true'>
...
<security:intercept-url pattern="/**" access="IS_AUTHENTICATED_FULLY"/>
<security:form-login login-page="/login" default-target-url="/sites"
authentication-failure-url="/login"
authentication-success-handler-ref="authenticationSuccessHandler"/>
...
지금까지 우리의 설정이 있습니다.
@Override
protected void configure(HttpSecurity http) throws Exception {
http
.authorizeRequests()
.anyRequest().authenticated()
.and()
.formLogin()
.loginPage("/login")
.failureUrl("/login")
.and()
.logout()
.permitAll()
.and()
}
또한 default-target-url을 어디에 넣을 지 찾을 수 없지만 그다지 중요하지 않습니다.
주의 할 점은 실제로 Groovy를 사용하고 있지만 코드는 기본적으로 Java 구성과 동일합니다.
해결법
-
==============================
1.모든 설정은 전역 configure 메소드 내에서 수행 할 수 있습니다. 다음을 추가하십시오.
모든 설정은 전역 configure 메소드 내에서 수행 할 수 있습니다. 다음을 추가하십시오.
@Override protected void configure(HttpSecurity http) throws Exception { http .authorizeRequests() .anyRequest().authenticated() .and() .formLogin() .loginPage("/login") .defaultSuccessUrl("/sites") .failureUrl("/login") .successHandler(yourSuccessHandlerBean) // autowired or defined below .and() .logout() .permitAll() .and() }
-
==============================
2.SimpleUrlAuthenticationSuccessHandler 또는 SavedRequestAwareAuthenticationSuccessHandler를 확장하는 bean을 만들어야합니다. 예 :
SimpleUrlAuthenticationSuccessHandler 또는 SavedRequestAwareAuthenticationSuccessHandler를 확장하는 bean을 만들어야합니다. 예 :
@Bean public SavedRequestAwareAuthenticationSuccessHandler successHandler() { SavedRequestAwareAuthenticationSuccessHandler successHandler = new SavedRequestAwareAuthenticationSuccessHandler(); successHandler.setTargetUrlParameter("/secure/"); return successHandler; }
그런 다음 AbstractAuthenticationProcessingFilter를 확장하는 Bean에 설정해야합니다.
UsernamePasswordAuthenticationFilter authenticationFilter = new UsernamePasswordAuthenticationFilter(); authenticationFilter.setAuthenticationSuccessHandler(successHandler());
from https://stackoverflow.com/questions/21097528/moving-spring-security-to-java-config-where-does-authentication-success-handler by cc-by-sa and MIT license
'SPRING' 카테고리의 다른 글
[SPRING] jackson2 봄 3.2RC1에서 JodaTime의 JSON ISO 8601 날짜 (0) | 2019.01.13 |
---|---|
[SPRING] spring mvc에는 브라우저에 직접 출력 할 response.write가 있습니까? (0) | 2019.01.13 |
[SPRING] Spring 데이터 Rest : RepositoryEventHandler 메소드가 호출되지 않았습니다. (0) | 2019.01.13 |
[SPRING] Ldap 인증 및 데이터베이스 권한에 대한 스프링 보안 스위치 (0) | 2019.01.12 |
[SPRING] Spring MVC : 컨트롤러에서 보낸 json 응답을 수정하는 방법 (0) | 2019.01.12 |