パラメータ付きSpringセキュリティ認証失敗ハンドラのリダイレクトに問題があります。セキュリティの設定でSpring Securityのカスタム認証失敗ハンドラがパラメータ付きのリダイレクト
私は
failureUrl("/login.html?error=true")
その[OK]を使用する場合、それは動作します。私は、カスタム認証失敗ハンドラを使用すると、私が試した:
getRedirectStrategy().sendRedirect(request, response, "/login.html?error=true");
または
response.sendRedirect(request.getContextPath() + "/login.html?error=true");
彼らは常に返す:url/login.html
を私がなぜパラメータ(?error=true
)を間違って表示されませんいただきました!知りませんか?
情報:私は春+ JSF +休止+春のセキュリティ
@Override
protected void configure(HttpSecurity http) throws Exception {
http
.authorizeRequests()
.anyRequest().authenticated()
.and()
.formLogin()
.loginPage("/login.html")
.usernameParameter("j_username")
.passwordParameter("j_password")
.loginProcessingUrl("/j_spring_security_check")
.failureHandler(customAuthenticationFailureHandler)// .failureUrl("/login.html?error=true")//.successHandler(authSuccsessHandler)
.defaultSuccessUrl("/dashboard.html")
.permitAll()
.and()
.logout()
.invalidateHttpSession(true)
.logoutSuccessUrl("/")
.permitAll()
.and()
.exceptionHandling()
.accessDeniedPage("/access.html")
.and()
.headers()
.defaultsDisabled()
.frameOptions()
.sameOrigin()
.cacheControl();
http
.csrf().disable();
}
これでcstom認証失敗ハンドラを使用するには:
@Component
public class CustomAuthFailureHandler extends SimpleUrlAuthenticationFailureHandler {
@Override
public void onAuthenticationFailure(HttpServletRequest request, HttpServletResponse response,
AuthenticationException exception) throws IOException, ServletException {
getRedirectStrategy().sendRedirect(request, response, "/login.html?error=true");
}
}
私はいくつかのケースのためのパラメータを変更します。
この答えは役に立つかもしれませんhttp://stackoverflow.com/questions/17199423/spring-security-3-1-custom-authentication-failure-url-with -url-parameters – hrdkisback