问题标签 [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.
java - WSS4J - 未找到用于签名的用户证书
我正在尝试使用 CXF 签署肥皂消息,在使用我在互联网上找到的知识配置我的客户端后,我遇到以下错误消息:
org.apache.ws.security.WSSecurityException:一般安全错误(未找到用于签名的用户 user1 的证书)
我以这种方式配置了客户端:
crypto.properties 文件是这样的:
我相信问题出在回调处理程序中,但它似乎没有任何错误:
最后一个嫌疑人是证书文件:
但我在这里也看不到任何问题。我做错了什么?
wso2 - WSS4J 使用 Axis2 Rampart 抱怨“没有定义主题 DN 证书约束。这可能是一个安全问题”
我们使用 Rampart-1.6.2 和 wss4j-1.6.14 看到以下警告消息。我们想知道是否有人可以建议如何在 Rampart 中设置证书主题 DN 约束。不过,我们为 Apache CXF 找到了一种方法:http: //cxf.apache.org/docs/ws-securitypolicy.html
谢谢。
java - WS-Secured 标头验证 (WSS4j) 中的错误,带有不同时区的 UsernameToken TimeStamp
我在 Apache CXF (2.7.11) 中使用带有 UsernameToken Timestamp 功能的 WSS4J 构建了一个 Web 服务(基于自上而下)。当我使用 SOAP UI 进行相同测试时,服务器和客户端代码似乎工作正常。
但是有一个客户端代码在 WS 安全标头中以 IST(印度标准时间)时区发送数据;为此,客户端收到The message has expired (WSSecurityEngine: Invalid timestamp The security semantics of the message have expired)
正在抛出的错误。调查我发现 WSS4J 使用的时区是 UTC。在 WSS4JInterceptor 中将 timestampStrict 设为 false 也不起作用。任何帮助,将不胜感激。
web-services - 使用个人签名应用程序对 SOAP 消息进行签名
我正在使用 WSS4J 拦截器来签署我的 SOAP 请求。我想知道是否可以配置 outInterceptor 以使用我自己的 java 签名程序对请求进行签名。
java - org.apache.ws.security.WSSecurityException:一般安全错误(未找到用于解密的证书(KeyId))
我继承了一些 WSS4J 安全 Web 服务的代码。它基于这个流行的教程:http ://distributedsenses.blogspot.com/2008/09/configuring-cxf-for-web-service.html
现在服务器端正在与其他客户端一起工作,但我的不是。:(
我为 tomcat 生成了一个密钥库,导出了公钥,并将其安装在服务器上。但是当我尝试调用时,服务器回复错误没有找到用于解密的证书(KeyId)
现在我没有对代码进行一些更改,但我确实更改了包名称(我认为这对 SOAP 调用并不重要)——我没有更改名称空间。
我什至在服务器上导出了证书以确保我正确导入它,并且它与客户端上的公钥完全匹配。所以我知道服务器有我的证书。
这是我的 OutInterceptor
还有我的 clientSign.properties
我收到此错误的任何原因。我知道我的公钥在服务器的信任库中。这适用于其他客户。知道我做错了什么吗?
java - 将 SOAP 请求/响应写入日志文件
我有一个 Web 服务客户端类,它使用 wsdl url 与目标服务器建立连接。此类使用 JaxWsProxyFactoryBean 和 WSS4JOutInterceptor 建立安全连接。我想查看我的代码生成的 SOAP 请求和服务器生成的响应。
当我从命令行运行我的 jar 时,我尝试包含以下选项
我正在使用 log4j 进行日志记录,所有消息都写入自定义文件。如何使用命令行选项将 SOAP 请求/响应转储到同一文件?
我是否必须对 Client 类进行任何代码更改才能实现这一点?
谢谢您的帮助。
java - Java WSS4J 证书在签名请求后从密钥库中消失
我正在使用WSS4J使用来自密钥库的证书创建一个肥皂请求签名者。我的密钥库格式是 .pkcs 并且在第一次签名时一切正常,但是如果我尝试运行程序来签署多个文档并且它在密钥库中找不到证书。在我看来,证书可能在签名期间被消耗,这意味着它不再存在于当前环境中。如果程序停止并重新启动,它将签署第一个请求,但第二个请求失败。我经历了多次,无法弄清楚原因是什么。此代码是证书从密钥库中消失之前调用的最后一件事,this.certUri = getWsConfig().getIdAllocator().createSecureId("X509-", certs[0]);
可在第 556 行找到WSSecSignature.class
。这是我的代码。
另外,我想在中打开 doDebug 模式,WSSecBase.class
但它不会显示在变量查看器中来切换值。我在构造函数中创建了一个断点并将其设置为被监视,但它从未显示为切换。
java - 如何为 SOAP 请求生成 UsernameToken?
我想在 Java 中生成“UsernameToken-28FE7B32CCC1AB2B22141113557641136”,以便向 SOAP Web 服务发送请求。使用 SoapUI 并且请求很容易,因为它会自动生成,但是我如何在 java 中做到这一点?我目前正在从外部文件发送请求,如何从 Java 执行此操作并自动生成 UsernameToken?
这是我的代码:
和 invokeWS 代码:
这是 XML 请求(针对安全问题进行了修改):
java - Coldfusion WSS4J java soap签名者证书在第一次签名后消失了
几个月来,我一直在尝试解决此问题。我通过升级到最新版本的 WSS4J 解决了我的 java 对象的一些问题,并且我的所有测试用例都使用 Coldfusion JRE 在 Eclipse 内部进行测试。当我导出 jar 并将其添加到 Coldfusion 中的类路径并重置 Coldfusion 时,该对象将第一次签署 SOAP 请求,然后开始抛出错误。它总是会签署第一个请求。我也尝试过 JavaLoader,每次都尝试从 jar 中加载它,但这也不起作用。
这是Coldfusion代码:
这是使用的Java代码WSS4J 2.0.1
我在第二个循环中遇到的错误:
根据我加载罐子的方式,我也会收到此错误:
更改org.apache.xml.security.Init
后,这些是第一个循环后的错误:
web-services - 在 CXF 拦截器和 webservice 之间共享数据
我正在使用带有 Apache CXF 的安全拦截器WSS4JInInterceptor
。
有没有办法将数据从拦截器传递到 web 服务?
我一直在寻找它,WebServiceContext
但我找不到它。