错误描述而不是java错误| ShinyProxy -> SAML 与 Auth0.com

问题描述

我正在使用名为 ShinyProxy 的 Java Spring 应用程序使用 SAML (Auth0.com) 用户验证,但我在这里遇到了一个我不知道如何解决的问题。

SAML 验证工作正常,但我遇到了电子邮件验证错误的问题。

用户创建帐户时需要进行电子邮件验证,如果他在登录前进行验证,则可以正常工作。但是,如果他尝试在没有确认电子邮件的情况下立即登录,Shinyproxy 不会返回带有错误描述的页面 - 这就是我想要的 -(从 Auth0 规则返回)但显示带有 Java 错误页面:200 验证 SAML 消息时出错。

如何处理此错误并将用户重定向到其他页面,在那里我将向他提供有关如何操作的信息?

先谢谢你! 米罗斯拉夫

用于电子邮件验证的 Auth0 规则

    function (user,context,callback) {
    if (!!user.email_verified) {
    
      
    return callback(null,user,context);
    }
    const ManagementClient = require('[email protected]').ManagementClient;
    const management = new ManagementClient({
    token: auth0.accesstoken,domain: auth0.domain
    });
    
      const emailVerificationParams = {
        user_id: user.user_id,client_id: context.clientID,};
      
    
    
      management.sendEmailVerification(emailVerificationParams,function (err) {
        if (err) {
          return callback(err);
        }
      });

  

  return callback(new UnauthorizedError('Please verify your email before logging in. An email has been sent to you with instructions. After verifying please logout and login again.'));
}

application.yml

  authentication: saml
  saml:
    idp-Metadata-url: https://LINK.auth0.com/samlp/Metadata/KEY
    app-entity-id: urn:LINK.auth0.com
    app-base-url: http://localhost:8080
    name-attribute: http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress
    roles-attribute: http://schemas.auth0.com/rolez
    logout-url: https://LINK.auth0.com/v2/logout?client_id=KEY&returnTo=http://localhost:8080

Java 运行

Spring Boot (v2.3.4.RELEASE)

2021-02-11 23:37:50.146  INFO 12836 --- [           main] .s.d.r.c.RepositoryConfigurationDelegate : Multiple Spring Data modules found,entering strict repository configuration mode!
2021-02-11 23:37:50.151  INFO 12836 --- [           main] .s.d.r.c.RepositoryConfigurationDelegate : Bootstrapping Spring Data JPA repositories in DEFERRED mode.
2021-02-11 23:37:50.188  INFO 12836 --- [           main] .s.d.r.c.RepositoryConfigurationDelegate : Finished Spring Data repository scanning in 29ms. Found 0 JPA repository interfaces.
2021-02-11 23:37:50.200  INFO 12836 --- [           main] .s.d.r.c.RepositoryConfigurationDelegate : Multiple Spring Data modules found,entering strict repository configuration mode!
2021-02-11 23:37:50.201  INFO 12836 --- [           main] .s.d.r.c.RepositoryConfigurationDelegate : Bootstrapping Spring Data Redis repositories in DEFAULT mode.
2021-02-11 23:37:50.222  INFO 12836 --- [           main] .s.d.r.c.RepositoryConfigurationDelegate : Finished Spring Data repository scanning in 13ms. Found 0 Redis repository interfaces.
2021-02-11 23:37:51.900  WARN 12836 --- [           main] io.undertow.websockets.jsr               : UT026010: Buffer pool was not set on WebSocketDeploymentInfo,the default pool will be used
2021-02-11 23:37:51.920  INFO 12836 --- [           main] io.undertow.servlet                      : Initializing Spring embedded WebApplicationContext
2021-02-11 23:37:51.920  INFO 12836 --- [           main] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 2698 ms
2021-02-11 23:37:52.618  INFO 12836 --- [           main] .s.m.p.AbstractReloadingMetadataProvider : New Metadata succesfully loaded for 'https://LINK.auth0.com/samlp/Metadata/KEY'
2021-02-11 23:37:52.620  INFO 12836 --- [           main] .s.m.p.AbstractReloadingMetadataProvider : Next refresh cycle for Metadata provider 'https://LINK.auth0.com/samlp/Metadata/KEY' will occur on '2021-02-12T01:37:52.271Z' ('2021-02-12T02:37:52.271+01:00' local time)
2021-02-11 23:37:52.714  INFO 12836 --- [           main] o.s.s.web.DefaultSecurityFilterChain     : Creating filter chain: Ant [pattern='/saml/login/**'],[org.springframework.security.saml.SAMLEntryPoint@35f760a4]
2021-02-11 23:37:52.714  INFO 12836 --- [           main] o.s.s.web.DefaultSecurityFilterChain     : Creating filter chain: Ant [pattern='/saml/SSO/**'],[org.springframework.security.saml.SAMLProcessingFilter@8d29719]
2021-02-11 23:37:52.723  INFO 12836 --- [           main] o.s.boot.web.servlet.RegistrationBean    : Filter orderedFormContentFilter was not registered (disabled)
2021-02-11 23:37:52.824  INFO 12836 --- [           main] o.s.s.concurrent.ThreadPoolTaskExecutor  : Initializing ExecutorService 'applicationTaskExecutor'
2021-02-11 23:37:52.867  INFO 12836 --- [         task-1] o.hibernate.jpa.internal.util.LogHelper  : HHH000204: Processing PersistenceUnitInfo [name: default]
2021-02-11 23:37:52.908  WARN 12836 --- [           main] JpaBaseConfiguration$JpaWebConfiguration : spring.jpa.open-in-view is enabled by default. Therefore,database queries may be performed during view rendering. Explicitly configure spring.jpa.open-in-view to disable this warning
2021-02-11 23:37:52.947  INFO 12836 --- [         task-1] org.hibernate.Version                    : HHH000412: Hibernate ORM core version 5.4.21.Final
2021-02-11 23:37:53.142  INFO 12836 --- [         task-1] o.hibernate.annotations.common.Version   : HCANN000001: Hibernate Commons Annotations {5.1.0.Final}
2021-02-11 23:37:53.343  INFO 12836 --- [         task-1] com.zaxxer.hikari.HikariDataSource       : HikariPool-1 - Starting...
2021-02-11 23:37:53.407  WARN 12836 --- [           main] o.a.h.c.protocol.ResponseProcessCookies  : Invalid cookie header: "Set-Cookie: did=s%3Av0%3Ac75973d0-6cb9-11eb-9ff6-f93b72bfbcf3.ahRt9UKZ6HpnTWQ4D6Hc9UmaQcvqLN8HT9lFZScY3UE; Max-Age=31557600; Path=/; Expires=Sat,12 Feb 2022 04:37:53 GMT; HttpOnly; Secure; SameSite=None". Invalid 'expires' attribute: Sat,12 Feb 2022 04:37:53 GMT
2021-02-11 23:37:53.407  WARN 12836 --- [           main] o.a.h.c.protocol.ResponseProcessCookies  : Invalid cookie header: "Set-Cookie: did_compat=s%3Av0%3Ac75973d0-6cb9-11eb-9ff6-f93b72bfbcf3.ahRt9UKZ6HpnTWQ4D6Hc9UmaQcvqLN8HT9lFZScY3UE; Max-Age=31557600; Path=/; Expires=Sat,12 Feb 2022 04:37:53 GMT; HttpOnly; Secure". Invalid 'expires' attribute: Sat,12 Feb 2022 04:37:53 GMT
2021-02-11 23:37:53.449  INFO 12836 --- [           main] e.o.c.stat.StatCollectorRegistry         : disabled. Usage statistics will not be processed.
logoutURL: https://LINK.auth0.com/v2/logout?client_id=KEY&returnTo=http://localhost:8080
2021-02-11 23:37:53.542  INFO 12836 --- [           main] o.s.s.web.DefaultSecurityFilterChain     : Creating filter chain: any request,[org.springframework.security.saml.Metadata.MetadataGeneratorFilter@141b011a,org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter@43cbafa6,org.springframework.security.web.context.SecurityContextPersistenceFilter@2d705998,org.springframework.security.web.header.HeaderWriterFilter@4d770bcd,org.springframework.security.web.csrf.CsrfFilter@1e9d721,org.springframework.security.web.authentication.logout.logoutFilter@1cfa7ee0,org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter@5c60f096,org.springframework.security.web.authentication.www.BasicAuthenticationFilter@538f45f1,FilterChainProxy[Filter Chains: [[ Ant [pattern='/saml/login/**'],[org.springframework.security.saml.SAMLEntryPoint@35f760a4]],[ Ant [pattern='/saml/SSO/**'],[org.springframework.security.saml.SAMLProcessingFilter@8d29719]]]],org.springframework.security.web.savedrequest.RequestCacheAwareFilter@7582a16b,org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter@5d94ac8a,org.springframework.security.web.authentication.AnonymousAuthenticationFilter@64fc6470,org.springframework.security.web.session.SessionManagementFilter@79b4cff,org.springframework.security.web.access.ExceptionTranslationFilter@5cba890e,org.springframework.security.web.access.intercept.FilterSecurityInterceptor@5f35370b]
2021-02-11 23:37:53.552  WARN 12836 --- [           main] org.thymeleaf.templatemode.TemplateMode  : [THYMELEAF][main] Template Mode 'HTML5' is deprecated. Using Template Mode 'HTML' instead.
2021-02-11 23:37:53.742  INFO 12836 --- [           main] o.s.b.a.w.s.WelcomePageHandlerMapping    : Adding welcome page template: index
2021-02-11 23:37:53.777  INFO 12836 --- [         task-1] com.zaxxer.hikari.HikariDataSource       : HikariPool-1 - Start completed.
2021-02-11 23:37:53.822  INFO 12836 --- [         task-1] org.hibernate.dialect.Dialect            : HHH000400: Using dialect: org.hibernate.dialect.MysqL8Dialect
2021-02-11 23:37:54.094  INFO 12836 --- [         task-1] o.h.e.t.j.p.i.JtaPlatformInitiator       : HHH000490: Using JtaPlatform implementation: [org.hibernate.engine.transaction.jta.platform.internal.NoJtaPlatform]
2021-02-11 23:37:54.105  INFO 12836 --- [         task-1] j.LocalContainerEntityManagerfactorybean : Initialized JPA EntityManagerFactory for persistence unit 'default'
2021-02-11 23:37:54.192  INFO 12836 --- [           main] o.s.l.c.support.AbstractContextSource    : Property 'userDn' not set - anonymous context will be used for read-write operations
2021-02-11 23:37:54.426  INFO 12836 --- [           main] o.s.b.a.e.web.EndpointLinksResolver      : Exposing 2 endpoint(s) beneath base path '/actuator'
2021-02-11 23:37:54.457  INFO 12836 --- [           main] io.undertow                              : starting server: Undertow - 2.1.4.Final
2021-02-11 23:37:54.465  INFO 12836 --- [           main] org.xnio                                 : XNIO version 3.8.0.Final
2021-02-11 23:37:54.473  INFO 12836 --- [           main] org.xnio.nio                             : XNIO NIO Implementation Version 3.8.0.Final
2021-02-11 23:37:54.531  INFO 12836 --- [           main] org.jboss.threads                        : JBoss Threads version 3.1.0.Final
2021-02-11 23:37:54.584  INFO 12836 --- [           main] o.s.b.w.e.undertow.UndertowWebServer     : Undertow started on port(s) 8080 (http)
2021-02-11 23:37:54.585  INFO 12836 --- [           main] DeferredRepositoryInitializationListener : Triggering deferred initialization of Spring Data repositories…
2021-02-11 23:37:54.586  INFO 12836 --- [           main] DeferredRepositoryInitializationListener : Spring Data repositories initialized!
2021-02-11 23:37:54.600  INFO 12836 --- [           main] e.o.c.util.StartupEventListener          : Started ShinyProxy 2.4.1 (ContainerProxy 0.8.5)
2021-02-11 23:38:12.574  INFO 12836 --- [  XNIO-1 task-1] io.undertow.servlet                      : Initializing Spring dispatcherServlet 'dispatcherServlet'
2021-02-11 23:38:12.574  INFO 12836 --- [  XNIO-1 task-1] o.s.web.servlet.dispatcherServlet        : Initializing Servlet 'dispatcherServlet'
2021-02-11 23:38:12.579  INFO 12836 --- [  XNIO-1 task-1] o.s.web.servlet.dispatcherServlet        : Completed initialization in 5 ms
2021-02-11 23:38:12.586  INFO 12836 --- [  XNIO-1 task-1] o.s.s.s.m.MetadataGeneratorFilter        : No default Metadata configured,generating with default values,please pre-configure Metadata for production use
2021-02-11 23:38:12.590  INFO 12836 --- [  XNIO-1 task-1] o.s.s.saml.Metadata.MetadataGenerator    : Generating Metadata without signing key,KeyStore doesn't contain any default private key,or the signingKey specified in ExtendedMetadata cannot be found
2021-02-11 23:38:12.590  INFO 12836 --- [  XNIO-1 task-1] o.s.s.saml.Metadata.MetadataGenerator    : Generating Metadata without encryption key,or the encryptionKey specified in ExtendedMetadata cannot be found
2021-02-11 23:38:12.590  INFO 12836 --- [  XNIO-1 task-1] o.s.s.s.m.MetadataGeneratorFilter        : Created default Metadata for system with entityID: urn:LINK.auth0.com
2021-02-11 23:38:12.635  INFO 12836 --- [  XNIO-1 task-1] o.s.security.saml.log.SAMLDefaultLogger  : AuthNRequest;SUCCESS;0:0:0:0:0:0:0:1;urn:LINK.auth0.com;urn:LINK.auth0.com;;;
2021-02-11 23:38:22.976  INFO 12836 --- [  XNIO-1 task-1] colMessageXMLSignatureSecurityPolicyRule : SAML protocol message was not signed,skipping XML signature processing
2021-02-11 23:38:22.978  INFO 12836 --- [  XNIO-1 task-1] o.s.security.saml.log.SAMLDefaultLogger  : AuthNResponse;FAILURE;0:0:0:0:0:0:0:1;urn:LINK.auth0.com;urn:LINK.auth0.com;;;org.springframework.security.saml.SAMLStatusException: Response has invalid status code urn:oasis:names:tc:SAML:2.0:status:Responder,status message is null
    at org.springframework.security.saml.websso.WebSSOProfileConsumerImpl.processAuthenticationResponse(WebSSOProfileConsumerImpl.java:146)
    at org.springframework.security.saml.SAMLAuthenticationProvider.authenticate(SAMLAuthenticationProvider.java:88)
    at org.springframework.security.authentication.ProviderManager.authenticate(ProviderManager.java:199)
    at org.springframework.security.authentication.ProviderManager.authenticate(ProviderManager.java:219)
    at org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter$AuthenticationManagerDelegator.authenticate(WebSecurityConfigurerAdapter.java:534)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:344)
    at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:205)
    at com.sun.proxy.$Proxy89.authenticate(UnkNown Source)
    at org.springframework.security.saml.SAMLProcessingFilter.attemptAuthentication(SAMLProcessingFilter.java:92)
    at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:212)
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)
    at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:215)
    at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)
    at org.springframework.security.web.authentication.www.BasicAuthenticationFilter.doFilterInternal(BasicAuthenticationFilter.java:155)
    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)
    at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:200)
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)
    at org.springframework.security.web.authentication.logout.logoutFilter.doFilter(logoutFilter.java:116)
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)
    at org.springframework.security.web.csrf.CsrfFilter.doFilterInternal(CsrfFilter.java:117)
    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)
    at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:92)
    at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:77)
    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)
    at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:105)
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)
    at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:56)
    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)
    at org.springframework.security.saml.Metadata.MetadataGeneratorFilter.doFilter(MetadataGeneratorFilter.java:87)
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)
    at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:215)
    at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:178)
    at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:358)
    at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:271)
    at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:61)
    at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
    at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)
    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)
    at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:61)
    at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
    at org.springframework.boot.actuate.metrics.web.servlet.WebMvcmetricsFilter.doFilterInternal(WebMvcmetricsFilter.java:93)
    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)
    at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:61)
    at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
    at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)
    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)
    at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:61)
    at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
    at io.undertow.servlet.handlers.FilterHandler.handleRequest(FilterHandler.java:84)
    at io.undertow.servlet.handlers.security.ServletSecurityRoleHandler.handleRequest(ServletSecurityRoleHandler.java:62)
    at io.undertow.servlet.handlers.ServletChain$1.handleRequest(ServletChain.java:68)
    at io.undertow.servlet.handlers.ServletdispatchingHandler.handleRequest(ServletdispatchingHandler.java:36)
    at io.undertow.server.handlers.PathHandler.handleRequest(PathHandler.java:91)
    at eu.openanalytics.containerproxy.util.ProxyMappingManager$ProxyPathHandler.handleRequest(ProxyMappingManager.java:160)
    at io.undertow.servlet.handlers.RedirectDirHandler.handleRequest(RedirectDirHandler.java:68)
    at io.undertow.servlet.handlers.security.SSL@R_821_404[email protected](SSL@R_821_404[email protected]:132)
    at io.undertow.servlet.handlers.security.ServletAuthenticationCallHandler.handleRequest(ServletAuthenticationCallHandler.java:57)
    at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
    at io.undertow.security.handlers.AbstractConfidentialityHandler.handleRequest(AbstractConfidentialityHandler.java:46)
    at io.undertow.servlet.handlers.security.ServletConfidentialityConstraintHandler.handleRequest(ServletConfidentialityConstraintHandler.java:64)
    at io.undertow.security.handlers.AuthenticationMechanismsHandler.handleRequest(AuthenticationMechanismsHandler.java:60)
    at io.undertow.servlet.handlers.security.CachedAuthenticatedSessionHandler.handleRequest(CachedAuthenticatedSessionHandler.java:77)
    at io.undertow.security.handlers.AbstractSecurityContextAssociationHandler.handleRequest(AbstractSecurityContextAssociationHandler.java:43)
    at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
    at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
    at io.undertow.servlet.handlers.ServletinitialHandler.handleFirstRequest(ServletinitialHandler.java:269)
    at io.undertow.servlet.handlers.ServletinitialHandler.access$100(ServletinitialHandler.java:78)
    at io.undertow.servlet.handlers.ServletinitialHandler$2.call(ServletinitialHandler.java:133)
    at io.undertow.servlet.handlers.ServletinitialHandler$2.call(ServletinitialHandler.java:130)
    at io.undertow.servlet.core.ServletRequestContextThreadSetupAction$1.call(ServletRequestContextThreadSetupAction.java:48)
    at io.undertow.servlet.core.ContextClassLoaderSetupAction$1.call(ContextClassLoaderSetupAction.java:43)
    at io.undertow.servlet.handlers.ServletinitialHandler.dispatchRequest(ServletinitialHandler.java:249)
    at io.undertow.servlet.handlers.ServletinitialHandler.access$000(ServletinitialHandler.java:78)
    at io.undertow.servlet.handlers.ServletinitialHandler$1.handleRequest(ServletinitialHandler.java:99)
    at io.undertow.server.Connectors.executeRootHandler(Connectors.java:370)
    at io.undertow.server.HttpServerExchange$1.run(HttpServerExchange.java:836)
    at org.jboss.threads.ContextClassLoaderSavingRunnable.run(ContextClassLoaderSavingRunnable.java:35)
    at org.jboss.threads.EnhancedQueueExecutor.safeRun(EnhancedQueueExecutor.java:2019)
    at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.doRunTask(EnhancedQueueExecutor.java:1558)
    at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1449)
    at java.lang.Thread.run(Thread.java:748)

2021-02-11 23:38:22.979  INFO 12836 --- [  XNIO-1 task-1] e.o.containerproxy.service.UserService   : Authentication failure [user: ] [error: Error validating SAML message]

网页错误返回

    Error
    Status code: 200
    
    Message: Error validating SAML message
    
    Stack Trace: 
    org.springframework.security.authentication.AuthenticationServiceException: Error validating SAML message
    at org.springframework.security.saml.SAMLAuthenticationProvider.authenticate(SAMLAuthenticationProvider.java:101)
    at org.springframework.security.authentication.ProviderManager.authenticate(ProviderManager.java:199)
    at org.springframework.security.authentication.ProviderManager.authenticate(ProviderManager.java:219)
    at org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter$AuthenticationManagerDelegator.authenticate(WebSecurityConfigurerAdapter.java:534)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:344)
    at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:205)
    at com.sun.proxy.$Proxy89.authenticate(UnkNown Source)
    at org.springframework.security.saml.SAMLProcessingFilter.attemptAuthentication(SAMLProcessingFilter.java:92)
    at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:212)
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)
    at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:215)
    at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)
    at org.springframework.security.web.authentication.www.BasicAuthenticationFilter.doFilterInternal(BasicAuthenticationFilter.java:155)
    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)
    at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:200)
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)
    at org.springframework.security.web.authentication.logout.logoutFilter.doFilter(logoutFilter.java:116)
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)
    at org.springframework.security.web.csrf.CsrfFilter.doFilterInternal(CsrfFilter.java:117)
    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)
    at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:92)
    at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:77)
    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)
    at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:105)
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)
    at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:56)
    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)
    at org.springframework.security.saml.Metadata.MetadataGeneratorFilter.doFilter(MetadataGeneratorFilter.java:87)
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)
    at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:215)
    at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:178)
    at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:358)
    at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:271)
    at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:61)
    at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
    at 
    .
    .
    .
 io.undertow.servlet.handlers.ServletinitialHandler.access$000(ServletinitialHandler.java:78)
    at io.undertow.servlet.handlers.ServletinitialHandler$1.handleRequest(ServletinitialHandler.java:99)
    at io.undertow.server.Connectors.executeRootHandler(Connectors.java:370)
    at io.undertow.server.HttpServerExchange$1.run(HttpServerExchange.java:836)
    at org.jboss.threads.ContextClassLoaderSavingRunnable.run(ContextClassLoaderSavingRunnable.java:35)
    at org.jboss.threads.EnhancedQueueExecutor.safeRun(EnhancedQueueExecutor.java:2019)
    at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.doRunTask(EnhancedQueueExecutor.java:1558)
    at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1449)
    at java.lang.Thread.run(Thread.java:748)
    Caused by: org.springframework.security.saml.SAMLStatusException: Response has invalid status code urn:oasis:names:tc:SAML:2.0:status:Responder,status message is null
    at org.springframework.security.saml.websso.WebSSOProfileConsumerImpl.processAuthenticationResponse(WebSSOProfileConsumerImpl.java:146)
    at org.springframework.security.saml.SAMLAuthenticationProvider.authenticate(SAMLAuthenticationProvider.java:88)
    ... 88 more

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)