问题标签 [usernametoken]
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.
cxf - CXF 的 WS-security (usernametoken) - 可以加密密码吗?
我正在尝试与 CXF 的 WS-security implementation(usernametoken) 结合在一起。我已经完成了http://cxf.apache.org/docs/ws-security.html中所说的一切。我的 PasswordCallbackHandler 似乎正在工作,但困扰我的是一部分:
如前所述
请注意,对于 CXF 2.3.x 及之前的版本,纯文本密码(或任何其他未知密码类型)的特殊情况的密码验证委托给回调类,请参阅 org.apache.ws.security。 WSS4J 项目的processor.UsernameTokenProcessor#handleUsernameToken() 方法javadoc。在这种情况下,ServerPasswordCallback 应该类似于以下内容:
所以直到 cxf 2.3.x 都是这样完成的
我的问题是:我不想 pc.setPassword("plainTextPassword") 因为我想将它存储在任何资源中。这种高达 2.3.x 的设计允许我这样做,因为我可以手动加密它。有没有办法在回调中设置加密密码或对存储的加密密码进行 usernametoken 身份验证?
我正在使用 cxf 2.5.x
wcf - UserNamePasswordValidator 如何从 SOAP 标头中读取用户名密码?
我正在使用自定义 UserNamePasswordValidator 进行用户身份验证。以下是代码,它运行良好。
我想了解此方法如何从 SOAP 标头中的 UserNameToken 获取用户名和密码。
wcf - WCF 4 Web 服务中的 UsernameToken 和 SSL - 但使用 basicHttpBinding
几个月前,我询问了WCF 4 Web 服务中的 UsernameToken 和 SSL,并使用 wsHttpBinding 得到了一个很好的答案。
但是,由于与 Java 客户端不兼容,现在我们不得不恢复使用 basicHttpBinding。我尝试按如下方式切换配置....
然后在服务中使用这个配置......
但是,当我尝试调用此服务时,我收到了一个错误...
提供的 URI 方案“https”无效;预期的“http”。参数名称:via
我还需要配置什么其他东西才能使用 basicHttpBinding 吗?
(请注意:我原来的要求还是一样的——SSL、usernametoken)
java - 从 JibX WS 访问 SOAP 标头
我有一个接受 opentravel.org OTA XML 请求并做出相应响应的 tomcat Web 服务。它使用 JibX OTA 类。
到目前为止,该服务的用户已经使用了 POX,并且它工作得非常好,但是一个新用户想要使用 SOAP 并像这样向 SOAP Header 添加安全凭证(而不是把它们放在 POS xml 片段中)......
因此,为了验证请求,我认为我需要从服务实现类中访问标头。
我查看了 SOAP Headers 示例,我认为它告诉我可以通过包含 inContext 来访问标头,例如
所以在这个方法中我可以做到这一点......
所以我可以访问其中的用户名令牌,
...在服务中指定了这个...
我说对了吗?
所以我创建了 Security 类,但忽略了所有命名空间的东西,只是为了开始并证明我可以访问标题中的某些内容。基于有这样的片段......
所以我用bindgen创建了绑定,然后编译,然后用soapUI调用它
但是当我尝试从上下文中获取 Security 对象时,它为空。
我弄错了棍子的一端吗?
我是否应该使用更多 SOAPY 来创建另一个具有不同端点的服务?
我试图用 JibX WS 和 inHandler 做的事情是不可能的吗?
欢迎任何评论。
非常感谢您不厌其烦地回答我的问题。
我正在尝试查看您添加的内容。我使用您的自定义和 xsd 来创建 java 源代码和 binding.xml。
我已经编译了这些类,现在我正在尝试绑定它们,但是我收到了这个错误:
我将看一下 bindgen 定制,看看这是否能说明问题,因为这是针对这个问题给出的唯一线索。你能告诉我你是怎么解决这个问题的吗?
再次感谢。
android - 带有用户名令牌的 WCF wshttpbinding 的 Android 客户端
我正在尝试为 WCF WS-Security 部署 Android 3.0 客户端。WCF WS 将用户名令牌实现为安全访问。我使用 KSOAP2,访问 asmx 服务没有问题,但是当我尝试调用 WCF WS 时,应用程序会抛出此异常:
javax.net.ssl.SSLHandshakeException:java.security.cert.CertPathValidatorException:找不到证书路径的信任锚。
看起来这是一个证书凭据,但我已将服务器凭据添加到我的项目使用的密钥库中。
这是我客户的代码:
第二个问题。
我不知道如何将用户名令牌和密码发送到服务器。我必须为自己添加标题创建一个肥皂信封,还是存在像 .net 这样的方法,在其中我给出用户名的值并传递给特定对象?
java - 在 Java 中实现 ws-security UsernameToken 的密码摘要
我正在尝试从服务器调用 ws-security 安全 Web 服务,但不幸的是,该服务器本身不支持此功能。我采用的方法是实现一个 .jsp,它充当实际端点 URL 的反向代理,在此过程中添加带有 ws-security 元素的元素。
这似乎工作得很好,我相信我已经使用正确的名称空间等正确地构建了 XML。我通过将 XML 与 SOAP-UI 生成的 XML 进行比较来验证这一点。
问题在于实现密码摘要生成器。我没有得到与 SOAP-UI 使用相同的 NOnce、xsd:dateTime 和密码输入以及以下代码相同的结果。
我认为问题在于实现前两个元素的散列,如http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0.pdf所解释
请注意,nonce 使用其解码值的八位字节序列进行散列,而时间戳使用其在元素内容中指定的 UTF8 编码的八位字节序列进行散列。
如果有人能帮我解决这个问题,那就太好了,因为它开始让我发疯了!如果您可以提供源代码,那将是理想的。
php - WS02 / WSF PHP 2.1.0 用户名令牌问题
我尝试使用 usernameToken 呼叫合作伙伴 WS。我在 php5.2.x 下使用那个 ws02 wsf_2.0.0 并且它摇摆不定。现在我们要迁移到基于php5.3的不同解决方案上,好在ws02提供了一个2.1.0标签,兼容php5.3。我花时间阅读了这个新版本的新特性和文档,尤其是关于 usernameToken 的内容。我了解此版本通过证书和私钥使用有关 usernameToken 的签名。我猜是 AsymetricTransportBinding 政策的 b/c。就我而言,我不想通过证书或其他方式签署任何东西。我还读到 ws02 在单独的 xml 文件中提供了一种回退以避免任何签名。
在阅读了许多帖子后,论坛我需要社区 b/c 的一些帮助,我完全被困住了。
这是用于在 php5.3 - wsf 2.1.0 中请求 WS 的代码(使用 HTTP)
在这一步:
- 我激活了调试跟踪(日志级别 4)
我确认我的“to”正在使用根据 wsdl 定义的 http
wsdl:port name="CalculationServiceHttpPort" binding="tns:CalculationServiceHttpBinding" wsdlsoap:address location="http://www.xxxx.xx/comparatorservices/CalculationService" /wsdl:port
现在从调试日志中我发现了这个:
所以我的第一个想法是嗅探流量,尤其是工作(wsf_2.0.0 / php5.2.x)和损坏(wsf_2.1.0 / php5.3)之间的SOAP Header
这是 2.0.0(工作)
而 2.1.0(不工作/坏了)
如您所见,唯一的区别来自 wsse:Security 命名空间。(缺少 xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/ )
就这样 ...
根据调试日志检查第 91 行的rampart_in_handler.c 说:
意思是……soap_header 是假的……但是为什么呢?有没有聪明的人来解释什么是错的?
注意 1:我检查了从工作( 2.0.0 )发送给合作伙伴 WS 的策略,似乎使用了 AsymetricBinding ......只要在 2.0.0 中我们没有提供任何证书或密钥,这很奇怪。
注意 2:我还尝试将签名的用户名令牌与经典的 WSPolicy 对象数组参数一起使用 - 我创建了一个 x509 证书和私钥,然后使用这些函数加载这些文件并使用数组参数将其加载到 WSSecurity 构造函数中......但是我收到同样的错误/嗅探是一种痛苦 b/c 数据被加密或类似的东西(这似乎是正常的)
注意 3:目前在 Ubuntu10.04-3LTS 上使用来自 apt-get 的预编译 php 包进行测试
请帮助!
java - 在 ASP.Net 中使用具有 usernametoken 和客户端证书的 Java weblogic Web 服务
我需要使用使用 java web 逻辑服务器开发的 web 服务,用户名令牌和客户端证书用于调用服务。我得到了调用 Web 服务的 java 代码,如下所示
还有 .pfx 格式的客户端证书和 .key 文件。所以使用 WSE3.0 我尝试使用如下服务
但我有例外。
php - 生成这个的 PHP 代码
我正在尝试从 wsdl 文件中获取结果,但是它需要身份验证,并且用户名和密码的正常传递会给我一个错误:
标题应如下所示;
ruby-on-rails - 在 Rails 中为 Devise 添加用户名登录而不是电子邮件的 Javascript 问题
我按照说明为 Devise 添加了用户名登录而不是电子邮件(实际上除了电子邮件)。问题是当我实际登录时,当输入非电子邮件地址时,有一种 Javascript 机制可以使登录字段变为红色。然后,当您单击登录按钮时,会有 Javascript 阻止您登录并显示一个黑色气泡,说明“请输入电子邮件地址”。
我做错什么了吗?这些设计说明是否已过时?如何允许用户输入用户名而不是电子邮件地址来登录?我正在使用最新的设计和 Rails (v3.2.8)。