有人知道为什么Rampart找不到它自己的STS服务生成的SAML令牌吗?
我在Tomcat7.0.28和Rampart 1.6.2中部署了一个Axis2 1.6.2。我使用Rampart服务来获得他们的默认SAML令牌。客户端获得的令牌是有效的。(我已经使用OpenSAML验证了签名、SAML和XML。)
但是,当我将此令牌包含在运行在生成令牌的Axis2 2/ Rampart部署中的web服务请求中时,Rampart会给出“请求中缺少的SAML令牌”(由RampartEngine.process()发出)。在NetKernel和OpenSAML中使用单独的实现,在同一个请求中访问和验证SAML令牌没有问题。自从Axis2 2/Rampart 1.5.1第一次尝试执行此任务以来,这个问题就一直存在。
有人知道为什么Rampart拒绝自己的SAML令牌吗?您找到了让Rampart接受自己的SAML令牌的方法吗?
(我已经花了一年多的时间来解决这个问题;我可能会放弃使用Net内核和OpenSaml,自己做所有的事情;我失去了很多SOAP帮助,但至少我可以处理SAML令牌.在OpenSAML的帮助下。我更喜欢Axis2 2/Rampart而不是工作!)
我可能对这个问题有一个部分的答复。遵循源代码,我能够将"SAML令牌丢失“跟踪到验证器中的一行,它只检查未签名的SAML令牌。必须对SAML令牌进行签名。我相信这是错误的原因,但我不能构建堡垒模块来测试它!
答案i最终能够构建项目并测试上述假设,这确实解决了问题。我更改了代码以同时处理已签名和未签名的令牌。向Rampart提交了JIRA问题和解决方案,并希望他们能够解决这一问题。同时,我制作了一个本地版本的核心-*..jar来解决我的服务。
发布于 2013-08-14 17:14:32
我上面提出的答案是正确的,并且已经被Rampart采纳了。应该在下一个版本(1.6.3我相信)。
发布于 2014-01-19 12:01:01
我无法想象Rampart有这么多的bug,特别是关于SAML的。并不是所有他们出版的样本都能工作。对于sample5,我不仅必须更改您指定的代码,而且还必须更改有关拇指打印的命名空间中的错误的代理信任模块(SAMLUtils.class)。但现在终于起作用了。非常感谢你的职位。:)
https://stackoverflow.com/questions/12334655
复制相似问题