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
- 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) |
- 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.