CXF 的 WS-security(用户名令牌)- 可以加密密码吗?

2023-12-20

我正在尝试与 CXF 的 WS 安全实现(usernametoken)合作。我已经按照上面所说的做了一切http://cxf.apache.org/docs/ws-security.html http://cxf.apache.org/docs/ws-security.html。我的密码回调处理程序似乎工作正常,但困扰我的是一部分:

    if (pc.getIdentifier().equals("joe")) {
        // set the password on the callback. This will be compared to the
        // password which was sent from the client.
        pc.setPassword("password");
    }

as said

请注意,对于 CXF 2.3.x 及之前版本,纯文本密码(或任何其他未知密码类型)特殊情况的密码验证将委托给回调类,请参阅 org.apache.ws.security。 WSS4J 项目的processor.UsernameTokenProcessor#handleUsernameToken() 方法javadoc。在这种情况下,ServerPasswordCallback 应类似于以下内容:

所以直到 cxf 2.3.x 都是这样完成的

   if (pc.getIdentifer().equals("joe") {
       if (!pc.getPassword().equals("password")) {
            throw new IOException("wrong password");
       }
    }

我的问题是:我不想 pc.setPassword("plainTextPassword") 因为我想将其存储在任何资源中。这种高达 2.3.x 的设计允许我这样做,因为我可以手动加密它。是否有任何方法可以在回调中设置加密密码或对存储的加密密码进行 usernametoken 身份验证?

我正在使用 CXF 2.5.x


答案(我已经尝试过)可以在此博客页面中找到:

http://coheigea.blogspot.com/2011/06/custom-token-validation-in-apache-cxf.html http://coheigea.blogspot.com/2011/06/custom-token-validation-in-apache-cxf.html

本质是创建org.apache.ws.security.validate.UsernameTokenValidator的子类,并重写verifyPlaintextPassword方法。在该方法中,传递 UsernameToken(提供 getName 和 getPassword)。如果它们无效,则抛出异常。

要在 spring 配置中安装自定义验证器,请添加例如

  <jaxws:properties>
    <entry key="ws-security.ut.validator">
        <bean class="com.example.webservice.MyCustomUsernameTokenValidator" />
    </entry>
  </jaxws:properties>

进入

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

CXF 的 WS-security(用户名令牌)- 可以加密密码吗? 的相关文章

随机推荐

  • IE8:选项标签默认获得“selected”属性(而cloneNode把它搞得一团糟)

    IE 似乎会自动在选项标签上添加 选定 属性 但如果你克隆Node它 事情就会变得奇怪 如果你在IE8中打开一个页面 代码如下
  • Cordova 忽略屏幕方向锁定[重复]

    这个问题在这里已经有答案了 我正在使用 Cordova 3 3 0 和我的 Galaxy S3 运行最新的 Cyanogenmod 来测试我正在开发的应用程序 我需要应用程序屏幕保持在 纵向 模式并被锁定 即使用户旋转设备也是如此 无论我尝
  • 为什么我会收到模板函数指针的链接器错误?

    我有一个 EventMgr 类 它有一个模板函数来注册侦听器 但是 当我注册监听器时 链接器给了我一个 错误 LNK2019 无法解析的外部符号 开胃菜代码 class EventMgr template lt class T class
  • 如何导入 .R 文件并为其指定别名?就像 import myfile.R as mf

    R 初学者 真的很想念 Python import pandas as pd import my file which is just a file not a package as mf out mf my cool function 我
  • indexedDB openCursor 事务成功返回空数组

    req db openCursor req customerData new Array a 1 req onsuccess function e var cursor e currentTarget result if cursor co
  • 如何撤消供应商/宝石捆绑安装

    I ran bundle install vendor gems所有宝石都按预期保存到宝石目录中 但是当我像这样删除它们时 rm rf vendor gems rails s Could not find rake 0 9 2 2 in a
  • C 库的 Qt 包装器

    我正在开发一个主要基于 C 库的 QT 项目 我喜欢 QT 的工作方式 并且想为我正在使用的每个 C 库制作一个 C 包装器 具有类似的 QT 风格 您有什么建议和建议 我应该做什么 不应该做什么 我想听到基于现实生活经验的答案 Thank
  • 使用 awk 将单个空格作为字段分隔符

    我正在处理一个文件 其中字段由单个空格分隔 awk 解释 FS 作为 一个或多个空格 当其中一个字段为空时 它会误读我的文件 我尝试使用 后面没有空格的空格 作为 FS 但 awk 不支持负向前瞻 简单的谷歌查询 如 单空格字段分隔符 aw
  • 使用 JavaScript 在 div 标签上添加点击事件

    我有一个div在我的表单中标记没有id财产 我需要设置一个on click对此事件div tag 我的 HTML 代码 div class drill cursor div 我不想添加id财产归我div tag 我怎样才能添加一个on cl
  • 从 Java 文本文件中删除特定行?

    我想从文本文件中删除特定行 我找到了那条线 但下一步该怎么办 任何想法 从流中读取文件并将其写入另一个流并跳过要删除的行
  • DIV 背景图像溢出

    我有一个带有背景图像的 DIV 元素 我希望它溢出到 DIV 的尺寸之外 它现在会切断图像 因为图像比 DIV 大 这可能吗 overflow visible不起作用 您可以通过替代方式完成此操作 box margin 50px 0 0 p
  • ASP.NET Web 应用程序/网站中的 IP 地址阻止列表

    我有一组IP地址 部署应用程序后 我希望只能从特定 IP 地址访问我的应用程序 如何使用 Global asax 而不是通过 IIS 实现此目的 This http www hanselman com blog AnIPAddressBlo
  • PyScripter 是否有 Mercurial 或 Git 版本控制插件? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我使用 Python 3 x 和 PyScripter 来编写脚本 我真的很怀念 PyScripter
  • JSON、REST、SOAP、WSDL 和 SOA:它们如何链接在一起

    目前正在做一些考试 我正在努力解决一些概念 这些确实在我的笔记中 提到 过 但我并不真正理解它们是如何联系在一起的 据我的理解是 SOA 一种使服务消费者 提供者进行通信的解决方案 据我所知 这是其他一切的总称 WSDL 一种描述提供者服务
  • 如何使用 Swift 在 OS X 上读取 Finder 图标(左侧源列表)

    我尝试阅读有关左侧源列表中的查找器中显示的图标的信息 我已经尝试过了NSFileManager有以下选项 NSURLEffectiveIconKey读取的图标与 Finder 中的图标不同 NSURLCustomIconKey 返回零 NS
  • 实体管理器的正确使用方法是什么

    我在 Jersey JAX RS 中有一个 REST 客户端 它接受请求 然后使用 Hibernate 的 JPA 实现从数据库检索数据并返回 JSON 使用共享实体管理器 性能相当不错 但如果有多个请求 我会从 Hibernate 收到异
  • 将 byte[] 转换为 byte[]

    有谁知道一种有效的方法来将 C 中的 2d 数组 非锯齿状 展平为 1d 并再次返回 我知道在后端 C 必须将其作为一维数组保存 如果可能的话 我只想获得后端一维数组的句柄 我想这样做的原因是因为我希望能够在托管代码中将其作为 2d 有时我
  • 是否可以将 docker 端口暴露给特定接口

    我的服务器有两个网络接口 eth0 和 wlan0 一个连接到互联网 另一个连接到内部网络 目前使用 docker compose 将 Docker 容器端口暴露到特定接口的解决方案是使用 version 2 services mosqui
  • 将字符串转换为 SHA1 和 Base64

    我在转换字符串时遇到问题 假设 TestPassword 转换为 SHA1 和 base64 一般来说 根据该网站 http www online convert com result 1f76972748a7d186198171e9a11
  • CXF 的 WS-security(用户名令牌)- 可以加密密码吗?

    我正在尝试与 CXF 的 WS 安全实现 usernametoken 合作 我已经按照上面所说的做了一切http cxf apache org docs ws security html http cxf apache org docs w