通过策略附件定义 Web Service 策略

在 Liberty 中,可以在 Web Service 应用程序的策略附件或 Web 服务描述语言 (WSDL) 文件中定义 Web Service 策略 (WS-Policy)。

关于此任务

WSDL 文件未打包在应用程序中时,可使用策略附件,为 Web Service 应用程序配置 WS-Policy。通常,在启用 Java API for XML Web Services (JAX-WS) 2.2 功能部件时,会在 Web Service 应用程序软件包中自动启用策略附件功能部件。仅需要配置 Web Service 客户机和提供者端以定义应用程序的 WS-Policy 附件文件。

WS-Policy 支持是下列规范在应用程序服务器中的实现。
  • WS-Policy 是一种规范,在此规范中,Web Service 可使用 XML 声明其有关安全性和服务质量的策略,以及声明供 Web Service 使用者指定其策略需求的策略。 有关更多信息,请参阅 Web Services Policy 1.5- 框架
  • WS-Policy 附件使用 Web Services Policy 框架中定义的策略适用于的主体集,定义用于关联这些策略的两种通用机制。有关更多信息,请参阅 Web Services Policy 1.2 - 附件

过程

  1. 创建 policy-attachments-client.xml 文件或 policy-attachments-server.xml 文件。

    以下示例向您说明如何在 policy-attachments-client.xml 文件或 policy-attachments-server.xml 文件中定义属性:

    <attachments
    	xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"
    xmlns:wsp="http://www.w3.org/ns/ws-policy"
    xmlns:wsa="http://www.w3.org/2005/08/addressing"
    xmlns:sp13="http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200802"
    xmlns:sp="http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702">
    <wsp:PolicyAttachment wsdlNamespace="http://tempuri.org/AreaService/">
    	<wsp:AppliesTo>
    	   <wsp:URI>http://tempuri.org/AreaService/#wsdl11.service(AreaService)</wsp:URI>
    	</wsp:AppliesTo>
    	<wsp:Policy wsu:Id="UsernameTokenwithPasswordHashoverSSL">
    	   <wsp:ExactlyOne>
    	       <wsp:All>
    		   <sp:SupportingTokens>
    			<wsp:Policy>
    		          <sp:UsernameToken sp:IncludeToken="http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702/IncludeToken/AlwaysToRecipient">
    			      <wsp:Policy>
    				  <sp:WssUsernameToken10 />
    				  <sp:HashPassword />
    			      </wsp:Policy>
    			   </sp:UsernameToken>
    			</wsp:Policy>
    		   </sp:SupportingTokens>
    		</wsp:All>
    	   </wsp:ExactlyOne>
    	</wsp:Policy>
    </wsp:PolicyAttachment>
    </attachments>
    可通过两种方式来绑定策略:
    • 按如下所示通过使用端点 DomainExpression <wsa:EndpointReference> 直接定义 Web Service URL。
      <wsp:AppliesTo>
         <wsa:EndpointReference>
             <wsa:Address>http://localhost:8091/wsatApp/HelloImplService</wsa:Address>
         </wsa:EndpointReference>
      </wsp:AppliesTo>
    • 按如下所示通过使用 URI DomainExpression <wsp:URI> 绑定策略。
      <wsp:AppliesTo>
          <wsp:URI>http://server.test.ws.ibm.com/#wsdl11.service(HelloImplService)</wsp:URI>
      </wsp:AppliesTo>
        

      下表显示策略附件文件中 WSDL 元素及其标识表达式:

      表 1. <wsp:URI> 表达式列表
      WSDL 元素 标识表达式(忽略 targetNamespace)
      Definitions wsdl11.definitions()
      Message wsdl11.message(message)
      Message/part wsdl11.messagePart(message / part)
      portType wsdl11.portType(portType)
      portType/operation wsdl11.portTypeOperation(portType/operation)
      portType/operation/input wsdl11.portTypeOperation.input(portType/operation)
      portType/operation/output wsdl11.portTypeOperation.output(portType/operation)
      portType/operation/fault wsdl11.portTypeOperation.fault(portType/operation/fault)
      Binding wsdl11.binding(binding)
      Binding/operation wsdl11.bindingOperation(binding/operation)
      Binding/operation/input wsdl11.bindingOperation.input(binding/operation)
      Binding/operation/output wsdl11.bindingOperation.output(binding/operation)
      Binding/operation/fault wsdl11.bindingOperation.fault(binding/operation/fault)
      Service wsdl11.service(service)
      port wsdl11.port(service/port)
  2. policy-attachments-client.xml 文件或 policy-attachments-server.xml 文件放入应用程序的 WEB-INFMETA-INF 文件夹。
    • policy-attachments-client.xml 放入应用程序的 WEB-INFMETA-INF 文件夹(对于 Web Service 客户机的 WS-Policy)。
    • policy-attachments-server.xml 放入应用程序的 WEB-INFMETA-INF 文件夹(对于 Web Service 提供程序的 WS-Policy)。

结果

您已完成通过策略附件定义 WS-Policy,且未在应用程序中打包 WSDL。

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



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