使用支持 Jython 和 Jacl 脚本编制语言的 wsadmin 工具来定义 Web Service 应用程序的策略集配置。
开始之前
在管理安全性处于启用状态的情况下,验证您是否使用了正确的管理角色,如下表所述:
表 1. 管理角色. 管理角色决定您能否可以创建策略集连接。管理角色 |
授权 |
管理员 |
管理员角色必须拥有单元范围访问权才能创建策略集连接。如果您仅可以访问特定资源,那么可以为您有访问权的资源创建策略集连接。 |
配置员 |
配置员角色必须拥有单元范围访问权才能创建策略集连接。如果您仅可以访问特定资源,那么可以为您有访问权的资源创建策略集连接。 |
部署者 |
拥有单元范围访问权或特定于资源的访问权的部署者角色只能为应用程序资源创建策略集连接。 |
操作员 |
操作员角色无法创建策略集连接。 |
监视员 |
监视员角色无法创建策略集连接。 |
在使用此主题中的命令之前,请验证是否在使用 wsadmin 工具的最新版本。将属性对象作为 attributes 或 bindingLocation 参数的值来接受的策略集管理命令不受
wsadmin 工具的先前版本支持。例如,这些命令不在 V6.1.0.x 节点上运行。
关于此任务
要使用新策略集来管理应用程序的策略,必须将此策略集连接至应用程序工件。应用程序重新启动时,将使用新连接的策略集中的策略。
混合版本环境: 在混合单元环境中,下列限制适用于以名称/值对格式指定的服务引用连接或资源连接:
- 对于部署在 WebSphere Application Server V8.0 以前的应用程序服务器上的应用程序,不能创建这些类型的连接。服务引用连接仅在 WebSphere Application Server V8.0 和更高版本上受支持。
- 包含这些连接类型的应用程序不能在 WebSphere Application Server V8.0 以前的应用程序服务器上部署。
- 如果在集群环境中部署的应用程序包含这些类型的连接,那么不能将 WebSphere Application Server V8.0 以前的成员应用程序服务器添加至集群。
mixv
过程
- 启动脚本编制命令。 要了解更多信息,请阅读关于“启动 wsadmin 脚本编制客户机”的信息。
- 选择包含要更新的 Web Service 的应用程序。 使用 listWebServices 命令来列示所有 Web Service 及关联的应用程序。输入以下命令以列示所有 Web Service 和属性:
AdminTask.listWebServices()
对于每个 Web Service,此命令返回关联的应用程序名、模块名、服务名称和服务类型。例如,将返回以下信息:'[ [service {http://www.ibm.com}service1] [client false] [application application1]
[module webapp1.war] [type JAX-WS] ]'
- 对应用程序创建策略集连接。
对于 PolicySetManagement 组中的命令,术语资源指的是 Web Service 工件。对于应用程序和服务客户机策略集,工件使用的是应用程序层次结构。应用程序层次结构包括 Web Service、模块名、端点或操作。输入 -resource 参数的字符串值,以反斜杠(/)字符作为定界符。
避免故障: 尝试从瘦客户机连接至 Web Service 时,在运行 updatePolicySetAttachment 命令之前,请验证您指定的资源是否有效。如果所请求的资源与应用程序的连接文件中的资源不匹配,那么不需要作出任何配置更改。
gotcha
-resource 字符串的格式对于服务引用连接有所不同。对服务引用连接使用以下格式:
- type=WebService:/
将应用程序中的所有工件都连接至此策略集。
- type=WebService:/,module=myModule.war,service={ http://www.mynamespace.com}myService
将 Web Service {http://www.mynamespace.com}myService 中的所有工件都连接至此策略集。必须为服务提供标准名称(QName)。
- type=WebService:/,module=myModule.war,service={ http://www.mynamespace.com
}myService,serviceRef=myServiceRef
将 Web Service 引用 myServiceRef 中的所有工件都连接至此策略集。
- type=WebService:/,module=myModule.war,service={namespace}myService,serviceRef=myServiceRef,endpoint=endpointA
将服务引用 myServiceRef 中服务引用 endpointA 端点的所有操作都连接至策略集。
- type=WebService:/,module=myModule.war,service={namespace}myService,serviceRef=myServiceRef,endpoint=endpointA
operation=operation1
仅将服务引用 myServiceRef 中的 operation1 操作连接至此策略集。
-resource 字符串的格式对于信任服务的系统策略集连接有所不同。对系统策略集连接使用以下格式:
- 输入此命令以将策略集连接至应用程序。此命令将 policyset1 应用程序策略集连接至 WebService 应用程序中的所有工件。
对于转换用户: 虽然您可为
-attachmentType 参数指定
application 值,但是请使用
provider 值代替
application 值,因为连接不仅仅用于应用程序,例如用于信任服务的系统连接。对于系统策略集连接,请为 attachmentType 参数指定
provider 值,并为 -attachmentProperties 参数指定
"[systemType trustService]" 值。对于 WSNClient 连接,请为 attachmentType 参数指定
client 值,并使用 -attachmentProperties 参数指定
bus 和
WSNService 属性。
trns
要将策略集连接至 Web Service 应用程序,请对 -attachmentType 参数指定
provider 值:
AdminTask.createPolicySetAttachment('[-policySet policyset1 -resources
"WebService:/" -applicationName WebService -attachmentType provider]')
要将策略集连接至服务客户机应用程序,请对 -attachmentType 参数指定
client 值,如下例所示:
AdminTask.createPolicySetAttachment('[-policySet policyset1 -resources
"WebService:/" -applicationName WebService -attachmentType client]')
要对系统策略集创建信任服务连接,请对 -attachmentType 参数指定
provider 值,并对 -attachmentProperties 参数指定
[systemType trustService] 值,如下例所示:
AdminTask.createPolicySetAttachment('[-policySet policyset1 -resources
"WebService:/" -attachmentType provider -attachmentProperties "[systemType trustService]"]')
要将策略集连接至服务引用,请输入以下命令:
AdminTask.createPolicySetAttachment('[-resources "type=WebService:/,module=webapp1.war,service=
{http://www.mynamespace.com}myService,serviceRef=myServiceRef" -applicationName application1
–attachmentType client -policySet PolicySet1 –inheritFromService false]')
此命令返回必须用于引用此连接的连接标识号。接下来,使用连接标识号来设置绑定配置。对于本示例,连接标识号是 124。
- 运行该命令来设置绑定。
要将策略集连接至 Web Service 应用程序,请对 -attachmentType 参数指定 provider 值:
下例说明如何在
WebService Web Service 应用程序上对
WSSecurity 策略的
SecureConversation123binding 绑定设置时间戳记到期属性。
AdminTask.setBinding('-policyType WSSecurity -bindingLocation "[[application WebService]
[attachmentId 124] ]" -attachmentType provider
-bindingName SecureConversation123binding -attributes
"[application.securityoutboundbindingconfig.timestampexpires.expires 5]"')
要将策略集连接至 Web Service 应用程序客户机或服务引用,请对 -attachmentType 参数指定 client 值:
- 保存配置更改。
输入以下命令以保存更改:
AdminConfig.save()
结果
您已将策略集连接至所指定的应用程序工件。重新启动应用程序以使用新连接的策略集中的策略。