问题标签 [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: - 找不到别名的键:monit
当我在 client-config.wsdd 中为 WSDoAllSender 和 WSDoAllReceiver 定义(使用轴 1.4 和 wss4j)不同的 signaturePropFiles 时,我使用不同的证书定义了不同的密钥存储,我可以使用不同的证书来发送和接收。但是当我使用相同的 signaturePropFiles' 和相同的密钥库时。当我尝试发送消息时收到此消息:
如何在同一个密钥库中有两个 wss4j 证书?为什么当我在一个密钥库中有两个证书时它找不到我的证书。
我对关于 PWCallback (CallbackHandler) 的两个证书的密码相同
我的属性文件:
我的客户端-config.wsdd:
从 keytool 列出:keytool -keystore monit-key.jks -v -list
spring - Spring + SOAPExceptionImpl:保存多部分消息时出错
我有一个带有jsp页面的spring web应用程序,它调用不同的web服务并在jsp页面中显示结果。spring web 应用程序附加了用户名/登录 spring 安全性。
我正在添加对处理安全性的 Web 服务的调用。对于 WebServiceGateway,我添加了一个安全拦截器。(见下文)
当我将 wss4j 添加到我的 pom 文件中时,我现在在 Web 服务端收到以下错误:
java - 在已生成的 SOAP 信封的安全标头中插入用户名令牌会给我两个标头!
我正在使用 WSS4J 在已形成的 SOAP 请求信封的标头中添加用户名令牌。
下面是 SOAP 请求的样子:
这是我的代码(字符串,请求,是上面的请求):
这是我的结果(注意插入的标头命名空间不正确,并且有两个标头):
我究竟做错了什么?
java - 使用 WSS4J 签署 SOAP 消息
我们需要在 Websphere 7 中使用证书对 SOAP 消息进行签名。目前我们正在研究使用来自 Apache 的 WSS4J,并在 java 代码本身中处理这个问题。
有没有人有在 Websphere 或其他方式中签署 SOAP 消息的经验?
xml - 如何将 SAML 断言插入到 SOAPHeader
NB-6.8 jdk-1.6.14 WSS4j-1.5.8 ,OpenSAML-2.3.0 我尝试修改 WSS4J-1.5.8 来操作 SAML 2.0,我无法将生成的断言插入到现有的 SOAP Header,代码如下:
错误:WRONG_DOCUMENT_ERR:节点在与创建它的文档不同的文档中使用。
但是在 wss4j 中,像 insertSecurityHeader 之类的一些函数也是这样做的(appendChild 或 inserBefore)。他们确实有效,为什么我的代码有问题?我想念什么。
c# - Convert XML namespace prefixes with C#?
I have run into an exasperating problem getting a Java service client to communicate successfully with a WCF service. I have overcome many hurdles, and I believe that this is my last one. The problem boils down to how Java Axis + WSS4J seem to handle xml namespaces. The Java platform seem to be very rigid in what they expect for xml namespace prefixes, and as such, do not understand the WCF reply messages.
My problem in a nutshell is as follows. I have an xml response similar to the following from my WCF service:
This response uses simple one-character namespace prefixes for most things, such as 's' for SOAP Envelope, 'a' for WS-Addressing, 'o' for 'WS-Security', etc. The Java client, namely WSS4J, seems to expect the following:
Upon receipt of my response message, the Java client and WSS4J seem to want to look up elements by their own internal xml aliases, such as 'wsa' for WS-Addressing, and 'wsse' for WS-Security Extensions. Since neither of those namespaces are present in the actual response xml, exceptions are thrown.
I am wondering if there is any simple way to transform an xml document from one set of namespaces to another set using C#, .NET, and the System.Xml namespace. I've poked around with XmlNamespaceManager a bit, but it does not seem to fully support what I need...or at least, I have been unable to find any really useful examples, and am not fully sure how it works. I am trying to avoid having to write some heavy-duty process to handle this manually myself, as I do not want to drastically impact the performance of our services when called by a Java Axis/WSS4J client.
security - 当明文密码未存储在 Web 服务生产者上时,PasswordDigest 的替代方法是什么?
设想:
Web 服务生产者只有密码的 SHA-1 哈希值存储在数据库中。我们需要使用用户名/密码组合来验证 Web 服务用户。
Web 服务安全用户名令牌配置文件允许我们为此添加soap 标头:
WSS: SOAP Message Security 文档中引入了该元素,作为提供用户名的一种方式。
在元素内,可以指定一个元素。PasswordText 和 PasswordDigest 类型的密码不限于实际密码,尽管这是一种常见情况。 (146-151)
PasswordText 密码类型意味着密码以纯文本形式通过网络发送,如果我们不使用传输级安全机制,这是一个安全问题。PasswordDigest 避免发送纯文本密码并发送哈希。但是为了避免重放攻击(即攻击者使用窃听来捕获散列密码并通过另一个请求重新发送),PasswordDigest 在计算散列之前为密码添加时间戳和随机数。此添加导致以下限制:
请注意,只有在请求者和接收者都可以使用纯文本密码(或等效密码)时,才能使用 PasswordDigest。(196-197)
但在我们的例子中,我们没有纯文本密码。我的问题是:我们还有什么替代方法可以在服务器上提供纯文本密码?
java - 无法从“SignatureConfirmation”元素中读取令牌..(Java-WCF)
我有一个 WCF(3.5) 客户端与 Java Web 服务(Spring-WS,WSS4J)交谈,客户端在接收来自服务器的响应时失败,给出以下异常消息
无法从 BinarySecretSecurityToken 的“ http://docs.oasis-open.org/wss/oasis-wss-wssecurity-secext-1.1.xsd ”命名空间的“SignatureConfirmation”元素中读取令牌,并带有“”ValueType。如果预期此元素有效,请确保将安全性配置为使用具有指定名称、命名空间和值类型的令牌。
这是我的客户端配置
有人知道这个错误吗?
谢谢,
耻辱
java - Web 服务安全和 Windows 证书
我想使用 Apache CXF 和 WSS4J 签署 web 服务请求。据我所知,我需要一个包含要用于签名的证书的 JKS 存储。需要能够使用来自 Windows 证书存储的 X.509 证书。证书应在签署 Web 服务请求时从存储中读取。我知道如何访问商店并获得证书。但是我怎样才能用它来签名而不是我自己的 JKS 商店的证书呢?
java - Apache CXF 在应该使用 HTTPS 时恢复为 HTTP
我正在尝试编写一个 SOAP 客户端来连接到期望带有 WS 安全性的 HTTPS 的 PeopleSoft Web 服务。我正在为客户端使用 Apache CXF。这是我所做的:
1) 使用此处找到的 Java 实用程序将服务器证书添加到信任库:“jssecacerts”:http: //blogs.sun.com/andreas/entry/no_more_unable_to_find。[编者注:原始页面已从网络上掉下来。但是,我确实找到了这个页面,我认为该页面重复了该帖子的内容。]
2) 在编辑脚本以设置系统属性以使用我创建的信任库之后,使用 CXF 2.3.1 的 WSDL2JAVA 实用程序从 WSDL 创建 Java 客户端类。
3)创建这样的客户端代码:
因此,客户端类是从 HTTPS WSDL URL 创建的,并且不包含 HTTP 引用。我编写的客户端代码不包含 HTTP 引用。当我运行代码时,它似乎正确地执行了 SSL 握手,然后抛出了一个异常:
我查过了,JuiCE 是一个休眠的 Apache 孵化器项目。我的类路径中也有完整的 CXF 库,所以我不确定它为什么要加载这个类。我怀疑但不知道这是导致它恢复为 HTTP 的原因(顺便说一下,192.168.1.91 是 HR91DMO 解析到的 IP 地址)。
我现在想为此使用 Java 配置而不是 Spring 配置,部分原因是我想了解发生了什么并简化示例,部分原因是某些配置可能在运行时,我不想重新编译每次发生变化时,一个带有新 Spring 配置文件的 WAR。
谁能阐明我做错了什么?