异常堆栈跟踪:
Jun 17, 2015 10:33:31 AM org.apache.catalina.core.StandardWrapperValve invoke
SEVERE: Servlet.service() for servlet [default] in context with path [] threw exception [org.opensaml.ws.message.encoder.MessageEncodingException: Unable to builder artifact for message to relying party] with root cause
org.opensaml.ws.message.encoder.MessageEncodingException: Unable to builder artifact for message to relying party
at org.opensaml.saml2.binding.encoding.HTTPArtifactEncoder.buildArtifact(HTTPArtifactEncoder.java:232)
at org.opensaml.saml2.binding.encoding.HTTPArtifactEncoder.getEncode(HTTPArtifactEncoder.java:195)
at org.opensaml.saml2.binding.encoding.HTTPArtifactEncoder.doEncode(HTTPArtifactEncoder.java:137)
at org.opensaml.ws.message.encoder.BaseMessageEncoder.encode(BaseMessageEncoder.java:52)
at org.springframework.security.saml.processor.SAMLProcessorImpl.sendMessage(SAMLProcessorImpl.java:227)
at org.springframework.security.saml.processor.SAMLProcessorImpl.sendMessage(SAMLProcessorImpl.java:195)
at org.springframework.security.saml.websso.AbstractProfileBase.sendMessage(AbstractProfileBase.java:144)
at org.springframework.security.saml.websso.WebSSOProfileImpl.sendAuthenticationRequest(WebSSOProfileImpl.java:105)
at org.springframework.security.saml.SAMLEntryPoint.initializeSSO(SAMLEntryPoint.java:226)
at org.springframework.security.saml.SAMLEntryPoint.commence(SAMLEntryPoint.java:153)
at org.springframework.security.saml.SAMLEntryPoint.doFilter(SAMLEntryPoint.java:107)
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.saml.metadata.MetadataGeneratorFilter.doFilter(MetadataGeneratorFilter.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:241)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:504)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:170)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:950)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:421)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1074)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:611)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:316)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:745)
在日志中还有另一条消息:
没有为实体null
定义的工件解析服务端点
我尝试使示例应用程序针对Weblogic IDP和Shibboleth IDP进行身份验证,但我没有设法使其正常工作。配置不完整或我遗漏了一些基本的东西。
答案 0 :(得分:1)
<强> 1。添加凭据映射
要启用SAML功能,我们首先需要添加凭据映射。 打开Weblogic管理控制台
http://server:port/console
e.g.
http://127.0.0.1:7101/console
<强> 1.1。添加映射条目
<强> 1.1.1。导航到“凭据映射”页面:
Security Realms > myrealm > Providers > Credential Mapping
<强> 1.1.2。点击新按钮
<强> 1.1.3。单击新映射
输入颁发者URI :
保存映射
<强> 2。配置SAML属性
<强> 2.1。导航到“服务器”页面
<强> 2.2。导航到联合身份验证服务&gt; SAML 2.0一般
输入已发布网站网址的值(主机和端口应与您在上一步中记下的值相同):
输入实体ID (请注意,此ID必须与您之前输入的颁发者URI相同)
必须与凭据映射中的颁发者URI相同。
<强> 2.3。切换到SAML 2.0标识提供程序选项卡
第3。交换元数据信息
<强> 3.1。导出IDP元数据
服务提供商(SSO客户端)应用程序使用身份提供程序元数据文件来确定登录URL和其他有用信息。
<强> 3.1.1。导航到联合身份验证服务&gt; SAML 2.0一般
<强> 3.2。使用服务提供商应用程序中的元数据文件
服务提供商应用程序需要知道在哪里可以找到IDP。此信息包含在IDP元数据文件中。
<强> 3.3。获取服务提供商元数据文件
IDP也需要了解服务提供商(SSO客户端)。 您需要获取SP元数据文件。
<强> 3.4。配置服务提供商合作伙伴
<强>链接强>
答案 1 :(得分:0)
您使用的是哪个Weblogic版本?至少在旧版本中,Oracle顾问告诉我,Weblogic的SAML IDP支持不是&#34;生产质量&#34;并且实现确实存在问题(例如使用旧库,不支持SAML加密,处理错误),但它可能已经发生了变化。
错误&#34;没有工件解析服务端点&#34;表明您的IDP元数据在其元数据中没有ArtifactResolutionEndpoint。在你的位置我尝试使用HTTP-POST绑定而不是Artifact。