Spring Saml 身份验证失败重定向到角度路由不起作用

问题描述

我有角度错误路由(/#/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 (将#修改为@)