问题描述
我有角度错误路由(/#/error)需要在服务提供商的 saml 身份验证失败后重定向。但是在重定向到错误路由后,它立即再次重定向到 IDP 进行身份验证。
下面是配置
@Override
public void configure(WebSecurity web) throws Exception {
web.ignoring().antMatchers("/#/error");
}
@Override
protected void configure(HttpSecurity http) throws Exception {
final CookieCsrftokenRepository cookieCsrftokenRepository = new CookieCsrftokenRepository();
cookieCsrftokenRepository.setCookieHttpOnly(false);
http.authorizeRequests().antMatchers("/saml/**","/error").permitAll().antMatchers("/**").fullyAuthenticated()
.anyRequest().authenticated();
http.exceptionHandling().defaultAuthenticationEntryPointFor(samlEntryPoint,new AntPathRequestMatcher("/"));
http.csrf().disable();
http.addFilterBefore(MetadataGeneratorFilter(),ChannelProcessingFilter.class)
.addFilterBefore(new CustomCsrfFilter(cookieCsrftokenRepository),MetadataGeneratorFilter.class)
.addFilterBefore(new SecurityFilter(),CustomCsrfFilter.class);
http.addFilterafter(samlFilter(samllogoutFilter,samlEntryPoint,samlAuthSuccessHandler,samlAuthFailureHandler,samllogoutProcessingFilter),BasicAuthenticationFilter.class);
}
@Bean
@Qualifier("saml")
public SimpleUrlAuthenticationFailureHandler authenticationFailureHandler() {
SimpleUrlAuthenticationFailureHandler failureHandler = new SimpleUrlAuthenticationFailureHandler();
failureHandler.setUseForward(true);
failureHandler.setDefaultFailureUrl("/authentication-failure");
return failureHandler;
}
A controller class for above authentication failure url.
@PostMapping(value = { "/authentication-failure" })
public String errorHandler(final HttpServletRequest request) {
return "redirect:/#/error";
}
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)