WebSphere® Application Server 在集群环境中提供消息级别的保护。可使用 Web Service 安全对话 (WS-SecureConversation) 为集群环境中 Java™ API for XML Web Service 2.0 (JAX-WS) Web Service 提供消息级别的保护。
开始之前
使用安全上下文令牌 (SCT) 保护的 Web Service 请求将路由至集群中的某个服务器,但集群中的其他服务器可能已发出或更新该 SCT。如果 WebSphere Application Server 分布式高速缓存未配置为执行复制操作,或者执行复制操作的速度不够快,那么对请求进行处理的服务器可能无法访问该 SCT。仅当集群成员的复制设置被设置为针对 Web Service 安全性分布式高速缓存执行异步更新,才需要执行本主题中描述的任务步骤。
有关高速缓存更新设置的更多信息,请阅读主题“使用同步更新和令牌恢复启用分布式高速缓存”。
您还可以启用具有缺省设置的 Web Service 安全性分布式高速缓存,它将启用集群成员的同步更新。
关于此任务
在集群环境中将安全对话用于消息级别的保护时,请执行以下高级别步骤以启用分布式高速缓存和会话亲缘关系。
过程
- 为安全上下文令牌启用分布式高速缓存。
- 在 WebSphere Application Server 的管理控制台中,单击。
- 选中启用分布式高速缓存复选框。
- 单击单选按钮以选择集群成员的异步更新。
- 单击应用,然后单击保存以保存配置。
- 创建复制域。请执行以下步骤:
- 在管理控制台中,单击。
- 输入名称。例如,ABCDomain。
- 在“副本数”下,选择整个域选项。
- 单击确定,然后单击保存保存配置。
- 启用动态高速缓存。对集群中的每个服务器执行以下步骤:
- 在管理控制台中,单击。
- 选择启用高速缓存复制选项。
- 选择您创建的复制域名。例如,ABCDomain。
- 选择同时推拉作为复制类型。
- 单击确定,然后单击保存保存配置。
- 可选: 更改分布式高速缓存批次更新时间间隔。 缺省情况下,分布式高速缓存批次更新时间间隔为 1,000 毫秒。但是,您可以将该时间间隔值设置为小于 1,000 毫秒的值。要更改该值,请对集群中的每一个服务器完成下列步骤:
- 在管理控制台中,单击。
- 输入 com.ibm.ws.cache.CacheConfig.batchUpdateInterval 属性名。
- 输入属性值。
- 单击确定,然后单击保存保存配置。
- 安装并配置某一支持会话亲缘关系的 Web 服务器或代理服务器。IBM® HTTP
Server 和 WebSphere Application Server 代理服务器支持会话亲缘关系。在 WebSphere Application
Server 信息中心内,请阅读“与 Web 服务器通信” 主题。
以获取有关安装和配置 IBM HTTP
Server 的信息。
- 配置客户机系统以将 Web Service 请求发送至正在运行 Web 服务器或代理服务器的主机和端口。Web 服务器或代理服务器随后会将这些请求路由至正确的集群成员。
- 在要接收 Web Service 请求的服务(已使用 Web Service 安全对话来保护)上,选择“启用 HTTP 传输会话的策略”选项。通过执行以下步骤来完成策略集配置:
- 将 HTTP 传输策略添加至正被服务使用的策略集。
- 在 HTTP 传输策略的配置面板中,选择启用会话。
- 单击确定,然后单击保存保存配置。
- 在要发送 Web Service 请求且受安全对话保护的客户机系统上,启用“HTTP 传输维持会话”属性。完成策略集配置或以编程方式设置该属性。 如果在您的配置中使用策略集,请执行以下步骤:
- 将 HTTP 传输策略添加至正被客户机使用的策略集。
- 在“HTTP 传输策略”配置面板上,选择支持会话选项。
- 单击确定,然后单击保存保存配置。
结果
完成这些配置后,您在集群环境中使用安全对话时,就启用了分布式高速缓存和会话亲缘关系。如果对请求进行处理的服务器无法访问 SCT,那么它将使请求失败并返回错误 SCT 为 null 或无效。
示例
在以下示例代码段中,演示了如何以编程方式设置正确的 JAX-WS 对象上的“维持会话”属性:
Map<String> rc = ((BindingProvider) port).getRequestContext();
...
rc.put(BindingProvider.SESSION_MAINTAIN_PROPERTY, Boolean.TRUE);
... </String>