Definición de una política de servicios web mediante un archivo adjunto de políticas

En Liberty, puede definir su política de servicio web (WS-Policy) en un archivo adjunto de política o un archivo WSDL (Web Services Description Language) de una aplicación de servicio web.

Acerca de esta tarea

El archivo WSDL no está empaquetado con la aplicación, puede utilizar el archivo adjunto de políticas para configurar WS-Policy para la aplicación de servicio web. La característica de archivo adjunto de políticas se suele habilitar automáticamente para el paquete de aplicaciones de servicio web cuando habilita la característica de API de Java para servicios web XML (JAX-WS) 2.2. Solo tiene que configurar el cliente de servicios web y el proveedor para definir el archivo adjunto de WS-Policy de la aplicación.

El soporte WS-Policy es una implementación de las especificaciones siguientes en el servidor de aplicaciones.
  • WS-Policy es una especificación que indica que los servicios web pueden utilizar XML para anunciar sus políticas en seguridad, calidad de servicio y, para los consumidores de servicio web, para especificar sus requisitos de política. Para obtener más información consulte Web Services Policy 1.5 - Framework.
  • WS-Policy Attachment define dos mecanismos de propósito general para asociar las políticas, como se define en infraestructura de política de servicios web, con los sujetos a los que se aplican. Para obtener más información, consulte Web Services Policy 1.2 - Attachment.

Procedimiento

  1. Cree el archivo policy-attachments-client.xml o el archivo policy-attachments-server.xml .

    En el ejemplo siguiente se muestra cómo definir los atributos en el archivo policy-attachments-client.xml o el archivo 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>
    Hay dos maneras de enlazar la política:
    • Defina un URL de servicio web directamente utilizando Endpoint DomainExpression <wsa:EndpointReference> como se indica a continuación.
      <wsp:AppliesTo>
         <wsa:EndpointReference>
             <wsa:Address>http://localhost:8091/wsatApp/HelloImplService</wsa:Address>
         </wsa:EndpointReference>
      </wsp:AppliesTo>
    • Enlace la política utilizando el URI DomainExpression <wsp:URI> como se indica a continuación.
      <wsp:AppliesTo>
          <wsp:URI>http://server.test.ws.ibm.com/#wsdl11.service(HelloImplService)</wsp:URI>
      </wsp:AppliesTo>
        

      En la tabla siguiente se muestran los elementos WSDL y sus expresiones de identificador en el archivo adjunto de políticas:

      Tabla 1. <wsp:URI> Lista de expresiones
      Elemento WSDL Expresión de identificador (omitir espacio de nombres de destino)
      Definiciones wsdl11.definitions()
      Mensaje wsdl11.message(mensaje)
      Mensaje/parte wsdl11.messagePart(mensaje / parte)
      Tipo de puerto wsdl11.portType(tipo de puerto)
      Tipo de puerto/operación wsdl11.portTypeOperation(tipo de puerto/operación)
      Tipo de puerto/operación/entrada wsdl11.portTypeOperation.input(tipo de puerto/operación)
      Tipo de puerto/operación/salida wsdl11.portTypeOperation.output(tipo de puerto/operación)
      Tipo de puerto/operación/error wsdl11.portTypeOperation.fault(tipo de puerto/operación/error)
      Enlace wsdl11.binding(enlace)
      Enlace/operación wsdl11.bindingOperation(enlace/operación)
      Enlace/operación/entrada wsdl11.bindingOperation.input(enlace/operación)
      Enlace/operación/salida wsdl11.bindingOperation.output(enlace/operación)
      Enlace/operación/error wsdl11.bindingOperation.fault(enlace/operación/error)
      Servicio wsdl11.service(servicio)
      port wsdl11.port(servicio/puerto)
  2. Ponga el archivo policy-attachments-client.xml o el archivo policy-attachments-server.xml en la carpeta WEB-INF o META-INF de la aplicación.
    • Ponga policy-attachments-client.xml en la carpeta WEB-INF o META-INF de la aplicación para la WS-Policy del cliente de servicio web.
    • Ponga policy-attachments-server.xml en la carpeta WEB-INF o META-INF de la aplicación para la WS-Policy del proveedor de servicios web.

Resultados

Puede terminar para definir la WS-Policy a través del archivo adjunto de políticas sin el archivo WSDL empaquetado en la aplicación.

Icono que indica el tipo de tema Tema de tarea

Nombre de archivo: twlp_dep_policyattach.html