我在尝试使用IBM的JRE 6.0签署SAML2断言时遇到了一个有趣的问题。如果我在Sun JDK下运行代码,它会正确签署断言并签名验证。如果我在IBM JRE下运行完全相同的代码,则会正确创建断言,但签名将无法验证。同样,这是相同的代码,实际上,因为它是从Jetty运行的,它也是完全相同的Jetty配置和WAR文件。我有两个Jetty实例在不同的端口上运行,它们具有不同的JRE但指向同一个Jetty主页。在Sun JRE下生成的签名验证,但在IBM JRE下生成的签名不会。我坦率地说,我很难过,所以任何建议都会有所帮助。
答案 0 :(得分:1)
迟了几年,但我自己会回答这个问题。问题是DOM1(非名称空间感知)和DOM2 +(名称空间感知)调用的混合。通过将所有内容转移到名称空间感知的DOM2 +调用,问题就消失了。