我试图做一个WS-Security的安全Web服务调用从遗憾的是并不支持这样的服务器。 我所采取的方法是实现其充当反向代理的实际终点的URL,在此过程中添加具有WS-安全元件的元件的.jsp。
这似乎是合作得非常好,我相信我已经构建正确的XML具有正确的命名空间等我通过比较与SOAP-UI产生XML的XML验证了这一点。
问题是,在实现密码摘要发生器。 我没有得到相同的结果是什么SOAP-UI也使用相同的输入进行的随机数,XSD:datetime和密码,然后将下面的代码。
StringBuffer passwordDigestStr_ = new StringBuffer();
// First append the NOnce from the SOAP header
passwordDigestStr_.append(Base64.decode("PzlbwtWRpmFWjG0JRIRn7A=="));
// Then append the xsd:dateTime in UTC timezone
passwordDigestStr_.append("2012-06-09T18:41:03.640Z");
// Finally append the password/secret
passwordDigestStr_.append("password");
System.out.println("Generated password digest: " + new String(com.bea.xbean.util.Base64.encode(org.apache.commons.codec.digest.DigestUtils.sha(passwordDigestStr_.toString())), "UTF-8"));
我认为这个问题是由解释实施前两个元素的哈希http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0.pdf
请注意,该随机数是使用其解码值的八位位组序列散列而时间戳使用如元素的内容指定其UTF8编码的八位位组序列散列。
如果有人可以帮助,因为它开始让我疯狂我解决这个问题,这将是伟大的! 这将是理想的,如果你能提供源代码。