当前位置: 首页 > 知识库问答 >
问题:

无法正确部署Spring Security SAML示例应用程序

柳翼
2023-03-14
org.springframework.security.authentication.AuthenticationServiceException: Error validating SAML message
at org.springframework.security.saml.SAMLAuthenticationProvider.authenticate(SAMLAuthenticationProvider.java:95)
at org.springframework.security.authentication.ProviderManager.authenticate(ProviderManager.java:156)
at org.springframework.security.saml.SAMLProcessingFilter.attemptAuthentication(SAMLProcessingFilter.java:84)
at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:195)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:192)
at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:166)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:87)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:192)
at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:160)
at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:346)
at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:259)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:953)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1023)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589)
at org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.run(AprEndpoint.java:1852)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:722)
Caused by: org.opensaml.common.SAMLException: InResponseToField of the Response doesn't correspond to sent message a2ei6e3068d8fi72g4a0fcc1j41142
at org.springframework.security.saml.websso.WebSSOProfileConsumerImpl.processAuthenticationResponse(WebSSOProfileConsumerImpl.java:139)
at org.springframework.security.saml.SAMLAuthenticationProvider.authenticate(SAMLAuthenticationProvider.java:82)
... 29 more

共有1个答案

景昊焜
2023-03-14

你正在使用的样品,我也用过同样的,它工作正常。唯一的问题是您必须了解Spring SAML是如何工作的。

很简单。1.将示例应用程序作为一个新项目部署到Tomcat中(不要做任何更改)。

2.运行应用程序,使用路径(/saml/metadata)下载默认元数据。例如,如果您的服务器是localhost:8080/samlApplication,那么完整路径将是localhost:8080/samlApplication/saml/metadata注意:samlApplication将是您的应用程序名称。

现在运行应用程序并登录,您将被正确地重定向到带有用户详细信息的主页面。

您的问题出在元数据上。IDP使用SP元数据信息将用户重定向回SP,因此如果在重定向中有问题,那么SP元数据中肯定有问题。

您是否可以发布您生成的元数据,以便于检查。

 类似资料:
  • 我的android应用程序没有正确构建和部署。当启动一个新实例时,它会将我的应用程序启动到我的物理移动设备上,并且我能够在Visual Studio中进行调试。但现在它不会将应用程序启动到移动设备,而且当我手动运行应用程序时,它也不会在Visual Studio中调试。这个项目有可移植的类,并且正在使用Xamarin.Forms。 我确实更改了对AndroidManifest.xml的构建操作。

  • 我有一个Java的Web应用程序,当通过eclipse或通过将. war文件复制/粘贴到本地tomcat部署时,它将正确部署,我可以使用Web应用程序。我试图在安装了tomcat的GCE实例上部署此应用程序。远程tomcat停止后,我将. war文件复制到webapps文件夹中,就像我对本地tomcat所做的那样,并启动tomcat。我可以在catalina.out看到一条消息,它正在部署Web应

  • 这里有一个原始的、不太详细的问题:不知道为什么我不能将GWT应用程序部署到Apache Tomcat7上。在我写这篇文章的时候,我决定再试一次,这一次成功了。但是,示例应用程序中的servlet似乎不能工作。点击按钮时显示“远程过程调用失败”。下面是我采取的步骤列表。 下面是为了将示例应用程序部署到Apache Tomcat7而尝试执行的操作列表。 在虚拟机上安装Ubuntu 12.04 更新的系

  • 我刚刚遇到了一个奇怪的问题,这是我第一次在服务器上部署spring boot应用程序 像往常一样,我使用java命令java-jar myApp运行应用程序。罐子 过了一会儿,我看到应用程序停止了,没有留下任何错误消息。 所以我不知道问题出在哪里, 可能的原因是java内存不够,所以我将其增加到7GB,因为它有套接字 但问题依然存在 请注意,我没有docker,服务器是Amazon light s

  • 我试图通过更新apache-tomcat-8.0.39\conf\catalina.properties在带有选项strict_servlet_compliance=true的Tomcat 8.0.39上部署一个应用程序,但一旦我这样做,我的应用程序部署就失败了。也就是说,我开始出现错误:SEVERE[localhost-startStop-1]org.apache.tomcat.util.dig

  • 我最近试图在cloud foundry上部署一个Grails项目,但在执行“Grails cf-push”时出现了以下错误 对于“grails cf-push--stacktrace”: 就在几个月前,一切都很顺利,但我不得不在一段时间内停止这个项目的工作。当我回到it领域时,我意识到再也不可能像以前那样部署它了。 我假设我需要升级我的云铸造插件,所以在一天的工作中,我升级了整个Groovy/Gr