Web-Service-Richtlinie über eine Richtlinienzuordnung definieren

In Liberty können Sie Ihre Web-Service-Richtlinie (WS-Policy) in der Richtlinienzuordnungsdatei oder der WSDL-Datei (Web Services Description Language) einer Web-Service-Anwendung definieren.

Informationen zu diesem Vorgang

Wenn die WSDL-Datei nicht in Ihrem Anwendungspaket enthalten ist, können Sie die Richtlinienzuordnung verwenden, um WS-Policy für Ihre Web-Service-Anwendung zu konfigurieren. Das Richtlinienzuordnungsfeature (Policy Attachment) wird häufig automatisch für Ihr Web-Service-Anwendungspaket aktiviert, wenn Sie das Feature Java API for XML Web Services (JAX-WS) 2.2 aktivieren. Sie müssen nur den Web-Service-Client und -Provider konfigurieren, um die WS-Policy Attachment-Datei der Anwendung zu definieren.

Die WS-Policy-Unterstützung ist eine Implementierung der folgenden Spezifikationen im Anwendungsserver.
  • WS-Policy ist eine Spezifikation, die Web-Services in XML verwenden können, um ihre Richtlinien bezüglich Sicherheit und Servicequalität zugänglich zu machen. Web-Service-Konsumenten können die Spezifikation verwenden, um Ihre Richtlinienvoraussetzungen anzugeben. Weitere Informationen finden Sie unter Web Services Policy 1.5 - Framework.
  • WS-Policy Attachment definiert zwei vielseitig einsetzbare Mechanismen für die Zuordnung von Richtlinien, die in Web Services Policy Framework definiert sind, zu den Subjekten, für die sie gelten. Weitere Informationen finden Sie unter Web Services Policy 1.2 - Attachment.

Vorgehensweise

  1. Erstellen Sie die Datei policy-attachments-client.xml oder die Datei policy-attachments-server.xml.

    Das folgende Beispiel veranschaulicht die Definition der Attribute in der Datei policy-attachments-client.xml oder der Datei 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>
    Es gibt zwei Methoden, eine Richtlinie zu binden:
    • Web-Service-URL direkt folgendermaßen mit dem Endpunktdomänenausdruck <wsa:EndpointReference> definieren:
      <wsp:AppliesTo>
         <wsa:EndpointReference>
             <wsa:Address>http://localhost:8091/wsatApp/HelloImplService</wsa:Address>
         </wsa:EndpointReference>
      </wsp:AppliesTo>
    • Richtlinie folgendermaßen mit dem URI-Domänenausdruck <wsp:URI> binden:
      <wsp:AppliesTo>
          <wsp:URI>http://server.test.ws.ibm.com/#wsdl11.service(HelloImplService)</wsp:URI>
      </wsp:AppliesTo>
        

      Die folgende Tabelle enthält die WSDL-Elemente und die zugehörigen ID-Ausdrücke in der Richtlinienzuordnungsdatei:

      Tabelle 1. Ausdrucksliste für <wsp:URI>
      WSDL-Element ID-Ausdruck (ohne 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. Legen Sie die Datei policy-attachments-client.xml oder die Datei policy-attachments-server.xml im Ordner WEB-INF bzw. META-INF Ihrer Anwendung ab.
    • Legen Sie die Datei policy-attachments-client.xml im Ordner WEB-INF bzw. META-INF Ihrer Anwendung für die WS-Policy-Definition des Web-Service-Clients ab.
    • Legen Sie die Datei policy-attachments-server.xml im Ordner WEB-INF bzw. META-INF Ihrer Anwendung für die WS-Policy-Definition des Web-Service-Providers ab.

Ergebnisse

Sie schließen die WS-Policy-Definition über die Richtlinienzuordnung ab, ohne dass eine WSDL-Datei im Anwendungspaket enthalten ist.

Symbol das den Typ des Artikels anzeigt. Taskartikel

Dateiname: twlp_dep_policyattach.html