问题标签 [wss4j]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
.net - WCF client exception -"Message security verification failed, The signature verification failed" - how can I debug further?
Getting the following exception when my WCF client gets a response calls a Java based Spring Web Services server -
The Inner Exception - The signature verification failed.
The Java based server web-service seems to process my request fine but I'm having the above trouble with the response. Note: I have no access to the server side of things - I can request changes and query actions but that's all
The set-up
- WCF .NET 3.5 client web-service
- Java Spring Web Services 2.1.0 (SOAP protocol implementation) + Apache WSS4J 1.6.7 (WS-Security 1.1 implementation) server
- The following security binding in config:
Binding has been modified in code like so
What I can't seem to do is:
Figure out which signature has failed? The stack trace for the inner exception mentions
System.ServiceModel.Security.ReceiveSecurityHeader.ProcessPrimarySignature
so I presumed the Primary Signature was the main envelope body signature? Contradictory to this, however, is the line in the StackTraceSystem.ServiceModel.Security.MessageSecurityProtocol.ProcessSecurityHeader
which would lead me to think that it's a header element - but which one?Check the signatures in a Console application or something similar using
System.Security.Cryptography.Xml.SignedXml
classes to verify in a separate, isolated environment which of the signatures are returning false forCheckSignature()
- I have tried this and cant seem to get it to return true for elements in my request from WCF (I've pulled the request from fiddler)
Any and all help appreciated
java - WSS4J 和 Apache Axis 不起作用
我尝试将 WSS4J 与 Axis Web 服务一起使用,但没有任何反应。似乎根本没有使用 WSS4J。所有必要的库都在 WEB-INF/lib 目录中。该服务正在使用 org.apache.axis.client.AdminClient 实用程序进行部署。
这是我的 deploy.wsdd:
尽管我什至没有haha
类,但没有发生错误(请参阅passwordCallbackClass
deploy.wsdd 中的参数)。我可以自由地将没有 WSS 标头的 SOAP 请求发送到我的服务。
更新
我已经解决了一些类路径问题。当我尝试打开http://localhost:8080/axis/servlet/AxisServlet
页面时,我看到一个错误:org.apache.axis.ConfigurationException: java.lang.ClassNotFoundException: org.apache.ws.axis.security.WSDoAllSender
. WSS4J jar 位于 {tomcat}\webapps\axis\WEB-INF\lib 目录中。我做错了什么?
更新#2
似乎wsdl4j
jar 既不包含org.apache.ws.axis.security.WSDoAllSender
类也不包含wss4j
jar。但是,对于 1.5.x 版本,此类在wss4j
jar 中。现在它不见了。WSS4J 的文档已过时。
java - 两次调用 Web 服务时出现 Wss4j 和 soaphandler 错误
当我使用 wss4j 验证服务器上 SOAP 请求的安全性时遇到问题,这是我用来验证肥皂请求的安全标头的代码部分(我在 SOAPHandler 的 handleMessage 方法中执行) :
在请求上有一个签名和一个时间戳,当我第一次调用 Web 服务时,一切正常,请求被处理,我使用一个小型 Java 项目来调用我的 Web 服务,程序检索答案并正确完成。但后来我再次启动程序,但这一次在服务器端检查不起作用。我一直在查看 wss4j 代码以查看问题出在哪里,我已经在 DOMReference.validate 方法中到达这里:
这次 calcDigestValue 不同了,我找不到原因……有人知道吗?
谢谢。
编辑:我的研究一直在取得进展,问题在于请求信封的主体在客户端和服务器之间的某处发生了变化......我已经检查了客户端,我几乎可以确定主体那里没有改变。这些变化只出现在第二次调用,仍然不知道为什么?
cxf - CXF WSS4J 拦截器与 WS-SecurityPolicy
我对 WS-Security 政策有疑问。我们可以使用 CXF WSS4J 拦截器或 WS-Security Policy 来实现 WS-Security。这两种方法有什么区别?我发现将 WS-Security 策略嵌入到 wsdl 比在 cxf 中添加拦截器更困难。请让我了解这两者之间有什么不同?提前致谢
spring - wsse:security 的命名空间
我的问题是我正在尝试调用具有 Wss4jSecurityInterceptor 的 Web 服务来进行用户名密码身份验证。
生成的请求是这样的:
这不起作用但是当我更改命名空间即xmlns:wsse
它工作正常。
我想知道如何更改使用<wsse:Security>
代码中的标记生成的命名空间
java - 如何让 WSS4J 从回调中加载密钥库密码?
我正在使用 Apache CXF 构建 Web 服务。它使用 Apache WSS4J 来提供 WS-Security 功能。我需要发出一个 SOAP 请求并且它必须被签名。
这是我传递给 WSS4J 的属性文件的内容:
我想用我的密码写成纯文本来摆脱那一行。我删除了该行并向我的 WSS4JOutInterceptor 提供了一个密码回调处理程序,就像上面的代码一样:
但这没有用。它在属性文件中找不到密码并使用默认密码“security”。
如何让它使用回调来获取密码?
spring - Wss4jSecurityInterceptor 不解密回复
我有一个在 Spring-ws 中实现的 Web 服务客户端,使用 Wss4jSecurityInterceptor 进行 ws-security。
调用端点有效,数据被加密、签名和发送,但是当收到回复时,它没有被解密。而是调用 JAXB 的解组器,导致如下错误:
然后,预期元素继续列出 xdd 中的每种数据类型。
这是我的 Wss4jSecurityIntercepter 配置的:
知道出了什么问题吗?
谢谢。
编辑:这是由在 handleResponse 上返回 false 的 ClientInterceptor 引起的,并且位于 wss4j 拦截器之前,导致所有拦截器处理停止。
java - UsernameToken WS-Security with Apache CXF Annotations (WSS4J)
我正在尝试创建一个“java first”的 web 服务,它将使用简单的 UsernameToken WS-Security。我试图遵循 CXF 中的示例。当我查询我的 wsdl 时,我没有看到任何与 ws-security 相关的内容。我正在使用 CXF 2.7.5,我正在尝试使用注释来做所有事情。
以下是我失败的尝试:
示例服务.java:
SampleServiceImpl.java:
密码处理程序.java:
SampleServicePublisher.java:
mvn 依赖:
wss4j - WSS4J 是否支持 XKMS?
是否可以将 WSS4J 配置为使用XKMS而不是密钥库来检索私钥和公钥?
这是一个示例密钥库配置:
是否有使用 XKMS 的类似设置,或者我需要创建自定义实现以org.apache.ws.security.components.crypto.Crypto
使用 XKMS 检索密钥?
wss4j - wss4j-1.6.10 中的 WSDoAllSender 类替换?
我有一个适用于 wssj4-1.5.12 的 WSDD。它看起来像这样:
但是,在切换到 wss4j-1.6.10 后,我得到了一个 ClassNotFoundException:
WSDoAllSender 似乎不再在 wss4j-1.6.4 API 中。但是,我似乎找不到它的替代品。wss4j 是否仍然支持用于 SOAP 连接的 UsernameToken?WSDoAllSender 的替换类是什么?
谢谢你。