Spring Security 로그 인 성공 후 처리
사용자 정의 로그 인 성공 처리 가 필요 합 니 다.Spring 제공 하 다 Authentication SuccessHandler 인터페이스,이 인 터 페 이 스 를 완성 하면 됩 니 다.그러나 여기까지 수정 한 후에 원래 시스템 의 자동 전향 처리 가 없어 졌 습 니 다.인터페이스 에 어떻게 써 야 원래 의 기능 을 유지 할 수 있 습 니까?
코드 는 다음 과 같 습 니 다:
public void onAuthenticationSuccess(HttpServletRequest request,
HttpServletResponse response, Authentication arg2) throws IOException,
ServletException {
logger.info("Success hanlder"); //
String redirectUrl = "index"; //
SavedRequest savedRequest = (SavedRequest) request.getSession().getAttribute("SPRING_SECURITY_SAVED_REQUEST");
if(savedRequest != null) {
redirectUrl = savedRequest.getRedirectUrl();
request.getSession().removeAttribute("SPRING_SECURITY_SAVED_REQUEST");
}
response.sendRedirect(redirectUrl);
}
주로 세 션 읽 기 중 SPRING_SECURITY_SAVED_REQUEST 의 값 으로 원래 의 점프 페이지 를 가 져 옵 니 다.
당연 하 다 Security Config 에 이렇게 설정 되 어 있 습 니 다.
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {
// @formatter:off
@Override
protected void configure(HttpSecurity http) throws Exception {
http.authorizeRequests()
// .antMatchers("/css/**", "/index","/plug-in/**").permitAll()
.antMatchers("/user/**","/blank","/ui_colors").hasRole("ADMIN").and().formLogin()
.loginPage("/login").failureUrl("/login-error").successHandler(new SimpleLoginSuccessHandler()).and().rememberMe();
}
// @formatter:on
// @formatter:off
@Autowired
public void configureGlobal(AuthenticationManagerBuilder auth)
throws Exception {
auth.inMemoryAuthentication().withUser("admin").password("123456")
.roles("ADMIN");
}
// @formatter:on
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
JAVA 객체 작성 및 제거 방법정적 공장 방법 정적 공장 방법의 장점 를 반환할 수 있습니다. 정적 공장 방법의 단점 류 공유되거나 보호된 구조기를 포함하지 않으면 이불류화할 수 없음 여러 개의 구조기 파라미터를 만났을 때 구축기를 고려해야 한다...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.