Rampart SAML令牌在请求中丢失

时间:2012-09-08 21:31:00

标签: axis2 saml rampart

有谁知道为什么Rampart找不到自己的STS服务生成的SAML令牌?

我在Tomcat 7.0.28中使用Rampart 1.6.2进行了Axis2 1.6.2部署。我使用Rampart STS服务获取其默认的SAML令牌。令牌由客户端获得有效。 (我已经使用OpenSAML验证了签名,SAML配置文件和XML。)

但是,当我在生成令牌的同一Axis2 / Rampart部署中运行的Web服务请求中包含此令牌时,Rampart会在请求中提供“SAML令牌”(由RampartEngine.process()发出)。在NetKernel和OpenSAML中使用单独的实现我在同一请求中访问和验证SAML令牌没有问题。自从我第一次尝试执行此任务时,Axis2 / Rampart 1.5.1就出现了这个问题。

有谁知道为什么Rampart拒绝自己的SAML令牌?您是否找到了让Rampart接受自己的SAML令牌的方法?

(我一直在研究这个问题超过一年;我可能只是放弃并使用Netkernel和OpenSaml并自己完成所有事情;我失去了很多SOAP帮助,但至少我可以处理SAML令牌......得到了OpenSAML的大量帮助。我更喜欢Axis2 / Rampart工作!)

我可能会对这个问题有部分答案。根据源代码,我能够将“SAML Token Missing”跟踪到验证器中的一行,该行仅检查未签名的SAML令牌。必须签署SAML令牌。我相信这是错误的原因,但我无法构建用于测试它的垒模块!

ANSWER 我能够最终构建项目并测试上述假设,这确实解决了问题。我更改了代码以解决有符号和无符号令牌。向Rampart提交了JIRA问题和解决方案,并希望他们能够解决这个问题。与此同时,我制作了一个本地版本的rampart-core - * .jar来解决我的服务问题。

2 个答案:

答案 0 :(得分:0)

我在上面提出的答案是正确的,并已由Rampart合并。应该在下一个版本中(1.6.3我相信)。

答案 1 :(得分:0)

我无法想象兰帕特有太多的错误,特别是关于SAML。并非他们发布的所有样本都有效。对于sample5,我不仅需要更改您指定的代码,还需要更改关于指纹的命名空间中的错误的rampart-trust模块(SAMLUtils.class)。但现在终于有效了。谢谢你的帖子。 :)