实现定制传播令牌以进行安全性属性传播
本主题说明如何创建自己的传播令牌实现,它是在正在运行的线程中设置的,并且在下游传播。
关于此任务
- 将属性隔离在您自己的实现内。
- 使用定制序列化对信息进行序列化。您必须反序列化目标中的字节,并通过将定制登录模块插入入站系统登录配置,将信息添加回线程。本任务还可能包含加密和解密。
要实现定制传播令牌,必须完成以下步骤:
过程
- 编写 PropagationToken 接口的定制实现。 有许多不同的方法可用于实现 PropagationToken 接口。但是,应确保完全实现
PropagationToken 接口和令牌接口所需的方法。
在实现此接口后,可以将它放入 app_server_root/classes 目录中。或者,可将类放入任何专用目录。但是,要确保 WebSphere Application Server 类装入器可找到此类,并且该类被授予了相应的许可权。可以将 Java™ 归档 (JAR) 文件或包含此类的目录添加到 server.policy 文件,以便它具有服务器代码所需的许可权。
在实现此接口后,可以将它放入 profile_root/classes 目录中。有关类的更多信息,请参阅在概要文件中为定制类创建 classes 子目录。
提示: 传播框架定义的所有令牌类型都具有类似的接口。令牌类型是实现 com.ibm.wsspi.security.token.Token 接口的标记接口。此接口定义大多数方法。如果您计划实现多个令牌类型,请考虑创建实现 com.ibm.wsspi.security.token.Token 接口的抽象类。所有令牌实现(包括传播令牌 )都可能扩展抽象类,并且会完成大部分工作。要查看传播令牌的实现,请参阅示例:com.ibm.wsspi.security.token.PropagationToken 实现。
- 在 WebSphere Application Server 登录期间添加和接收定制传播令牌。 本任务的实现通常是通过将定制登录模块添加到各种应用程序和系统登录配置。您还可从应用程序添加实现。但是,为了反序列化信息,您必须插入定制登录模块,这在传播定制 Java 可序列化对象以进行安全性属性传播中有所讨论。WSSecurityPropagationHelper
类具有用于在线程上设置传播令牌并从线程检索它以进行更新的 API。
示例:定制传播令牌登录模块中的代码样本说明如何确定登录是初始登录还是传播登录。这些登录类型之间的不同之处在于 WSTokenHolderCallback 回调是否包含传播数据。如果回调不包含传播数据,那么初始化新的定制传播令牌实现并在线程上对其进行设置。如果回调包含传播数据,那么查找特定的定制传播令牌 TokenHolder 实例、将字节数组转换回定制 PropagationToken 对象,并在线程上对其进行设置。代码样本显示两个实例。
可在将定制传播令牌添加到线程期间随时添加属性。如果您在请求和 getUniqueId 方法更改之间添加属性,那么使公共安全互操作性 V2 (CSIv2) 客户机会话无效,以便它向下游发送新的信息。在请求之间添加属性会影响性能。在许多情况下,您想要向下游发送请求以接收新的传播令牌信息。
要将定制传播令牌添加到线程,请调用 WSSecurityPropagationHelper.addPropagationToken 方法。此调用要求 WebSphereRuntimePerMission“setPropagationToken”Java 2 安全许可权。
- 将定制登录模块添加到已包含 com.ibm.ws.security.server.lm.wsMapDefaultInboundLoginModule
登录模块的 WebSphere Application Server 系统登录配置,用于接收定制传播令牌的序列化版本。 还可将此登录模块添加到您可能想要在登录期间在线程上生成定制传播令牌的任何应用程序登录。或者,可从应用程序内生成定制 PropagationToken 实现。但是,要对其进行反序列化,您必须将此实现添加到系统登录模块中。
有关如何将定制登录模块添加到现有登录配置的信息,请参阅针对 JAAS 开发用于系统登录配置的定制登录模块。
结果
子主题
示例:com.ibm.wsspi.security.token.PropagationToken 实现
使用此文件查看传播令牌实现的示例。以下样本代码不会扩展抽象类,而宁可直接实现 com.ibm.wsspi.security.token.PropagationToken 接口。您可以直接实现接口,但它可能会导致写入重复的代码。然而,如果在各种令牌实现的处理方式之间存在着相当大的差别,那么可以选择直接实现接口。示例:定制传播令牌登录模块
此示例显示如何确定登录是初始登录还是传播登录。


http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=tsec_custpropimpl
文件名:tsec_custpropimpl.html