使用 WSSDecryptPart API 添加解密部件

可通过使用 Web Service 安全性 API (WSS API) 保护 SOAP 消息,而不必对配置使用策略集。要配置响应使用者(客户端)绑定的解密部件,请使用 WSSDecryptPart API 对解密部件中的元素列表执行定义和添加操作。WSSDecryptPart 是一个接口,属于 com.ibm.websphere.wssecurity.wssapi.decryption 包的一部分。

开始之前

可以使用 WSS API,或者通过管理控制台配置策略集来配置和添加新的加密部件。要使用 WSSDecryptPart API 保护 SOAP 消息,必须对响应使用者绑定配置解密部件。

关于此任务

机密性设置要求将机密性约束应用于生成的消息。这些约束包括指定生成的消息中必须进行加密和解密的消息部件,以及加密元素要连接至的消息部件。

WSSDecryptPart API 指定与解密相关的信息并设置进行消息机密性保护而添加的解密部件。使用 WSSDecryptPart 设置变换方法并指定要应用变换方法的部件。只有在使用具有附件的 SOAP 时,才设置变换方法。通常,仅在执行设置变换方法等任务时才需要 WSSDecryptPart。

下表中显示的解密部件用于保护消息的机密性。

表 1. 解密部件. 使用解密部件来保护消息。
解密部件 描述
keyword

使用关键字设置解密部件。可使用关键字来添加的缺省解密部件是 BODY_CONTENT 和 SIGNATURE。WebSphere® Application Server 支持以下关键字:

  • BODY_CONTENT
  • SIGNATURE
  • USERNAME_TOKEN
xpath 使用 XPath 表达式设置解密部件。
verification 将 WSSVerification 组件设置为解密部件。

只有在 SOAP 消息包含签名元素时,WSSVerification 部件才适用。

header 将由 QName 指定的头设置为解密部件。

为了获取解密部件信息,将执行特定的缺省行为。使用 WSSDecryptPart API 的最简单方法是使用缺省行为(请参阅示例代码)。

WSSDecryptPart 提供缺省值,用于设置变换算法、添加变换方法、将对象设置为目标、指定元素以及指定加密部件,例如,SOAP 主体内容和签名。

表 2. 解密部件决定. 缺省情况下,已配置解密部分的若干特征。
解密决定 缺省行为
要使用关键字进行解密的 SOAP 消息部件

指定要用于解密部件的关键字。WebSphere Application Server 缺省情况下设置以下 SOAP 消息部件以进行解密:

  • WSSDecryption.BODY_CONTENT
  • WSSDecryption.SIGNATURE
要使用的变换算法(算法)

WebSphere Application Server 缺省情况下不指定任何变换算法。只有在使用具有附件的 SOAP 时,才指定变换方法。

过程

  1. 要使用 WSSDecryptPart API 解密 SOAP 消息部件,请首先确保安装了应用程序服务器。
  2. 使用 WSSDecryptPart 的 WSS API 过程遵循以下步骤:
    1. 使用 WSSFactory.getInstance() 获取 WSS API 实现实例。
    2. 根据 WSSFactory 实例创建 WSSConsumingContext 实例。 注意,必须始终在 JAX-WS 客户机应用程序中调用 WSSConsumingContext。
    3. 根据 WSSFactory 创建 SecurityToken 以配置解密。
    4. 根据 WSSFactory 实例使用 SecurityToken 创建 WSSDecryption。
    5. 根据 WSSFactory 实例创建 WSSDecryptPart。 WSSDecryptPart 的缺省行为是假定主体内容和签名已进行加密。
    6. 添加要进行解密及要使用 WSSDecryptPart 中的变换进行应用的部件。 WebSphere Application Server 缺省情况下为 WSSDecryptPart 设置以下加密部件:BODY_CONTENT 和 SIGNATURE。添加其他解密部件后,缺省值不再有效。例如,如果调用 addDecryptPart(securityToken, false),那么仅对安全性令牌进行加密,而不对签名和主体内容进行加密。因此,如果要对安全性令牌、签名和主体内容进行解密,那么必须调用 addDecryptPart(securityToken, false)、addDecryptPart(WSSDecryption.SIGNATURE) 和 addDecryptPart(WSSDecryption.BODY_CONTENT)。
    7. 设置变换方法。
    8. 将 WSSDecryptPart 添加至 WSSDecryption。
    9. 将 WSSDecryption 添加至 WSSConsumingContext。
    10. 使用 SOAPMessageContext 调用 WSSConsumingContext.process()。

结果

如果对消息进行解密时存在错误情况,那么将提供 WSSException。如果成功,此 API 将调用 WSSConsumingContext.process(),生成 WS-Security 头,然后使用 Web Service 安全性来保护 SOAP 消息。

下一步做什么

对响应使用者(客户端)绑定启用解密部件后,如果尚未指定安全性令牌,那么指定生成器和使用者令牌。


指示主题类型的图标 任务主题



时间戳记图标 最近一次更新时间: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=twbs_confwssdecryptsecretkey
文件名:twbs_confwssdecryptsecretkey.html