Liberty:Datei "ibm-ws-bnd.xml"
Sie können Web-Service-Endpunkte anpassen und Sicherheitseinstellungen für Web-Service-Provider und Web-Service-Clients über die Datei ibm-ws-bnd.xml in Liberty konfigurieren. Sie müssen diese Datei im Verzeichnis /WEB-INF Ihrer Webanwendung oder im Verzeichnis /META-INF Ihres EJB-Moduls speichern.
Nachfolgend werden alle Elemente in der Datei ibm-ws-bnd.xml beschrieben.
<webservice-endpoint-properties>
Dieses Element wird verwendet, um die Standardeigenschaften für alle Web-Service-Endpunkte in demselben Modul zu definieren. Es kann nur ein webservice-endpoint-properties-Element für ein Modul angegeben werden. Sie können alle Name/Wert-Paare angeben, die als Attribute des Elements webservice-endpoint-properties für Web-Service-Endpoints gültig sind.
Wenn Sie die Eigenschaft <enableLoggingInOutInterceptor> hinzufügen, können Sie SOAP-Anforderungen und -Antworten für die Client- und für die Serverseite protokollieren:
<webservice-endpoint-properties enableLoggingInOutInterceptor="false">
<webservice-endpoint>
- port-component-name: Dieses Attribut ist erforderlich. Es wird verwendet, um den Namen einer Portkomponente anzugeben.
- address: Dieses Attribut ist optional. Es wird verwendet, um die überschriebene Adresse eines Serviceendpunkts anzugeben.
Wenn Sie die Eigenschaft <enableLoggingInOutInterceptor> hinzufügen, können Sie SOAP-Anforderungen und -Antworten für die Client- und für die Serverseite protokollieren:
<webservice-endpoint port-component-name="Hello">
<properties enableLoggingInOutInterceptor="true"/>
</webservice-endpoint>
<http-publishing>
- context-root: Dieses Attribut ist optional. Es wird verwendet, um den Stammkontext des EJB-Moduls in einer EJB-basierten JAX-WS-Anwendung anzugeben.
<webservice-security>
- security-constraint: Dieses Attribut ist optional. Es wird verwendet, um Sicherheitsvorgaben einer oder mehreren Webressourcensammlungen zuzuordnen, und dient nur als ergänzende Konfiguration der Implementierungsdeskriptoren bzw. Annotationen in Webanwendungen.
- security-role: Dieses Attribut ist optional. Es enthält die Definition einer Sicherheitsrolle und dient nur als ergänzende Konfiguration der Implementierungsdeskriptoren bzw. Annotationen in Webanwendungen.
- login-config: Dieses Attribut ist optional. Es wird verwendet, um die Authentifizierungsmethode und den Realmnamen zu konfigurieren, und wirkt sich nur auf die EJB-basierten Web-Services in einer JAR-Datei aus. Bei Angabe desselben Attributs in der Implementierungsdeskriptordatei wird der Wert des Implementierungsdeskriptors verwendet. Die gültigen Werte für dieses Attribut sind BASIC und CLIENT_CERT.
<service-ref>
- name: Dieses Attribut ist erforderlich. Es wird verwendet, um den Namen einer Web-Service-Referenz anzugeben.
- component-name: Dieses Attribut ist optional. Es wird verwendet, um den EJB-Beannamen anzugeben, wenn die Servicereferenz in einem EJB-Modul verwendet wird.
- port-address: Dieses Attribut ist optional. Es wird für die Angabe der Adresse des Web-Service-Ports verwendet, wenn die referenzierten Web-Services nur einen Port haben.
- wsdl-location: Dieses Attribut ist optional. Es wird verwendet, um den URL eines zu überschreibenden WSDL anzugeben.
<port>
- name: Dieses Attribut ist erforderlich. Es wird verwendet, um den Namen des Web-Service-Ports anzugeben.
- namespace: Dieses Attribut ist optional. Es wird verwendet, um den Namespace des Web-Service-Ports anzugeben. Ist das namespace-Attribut vorhanden, wird die Bindung auf den Port mit demselben Namen und Namespace angewendet. Andernfalls wird die Bindung auf den Port mit demselben Namen angewendet.
- address: Dieses Attribut ist optional. Es wird verwendet, um die Adresse des Web-Service-Ports anzugeben. Sofern vorhanden, überschreibt es den Wert des Attributs port-address, das im Element service-ref definiert ist.
- username: Dieses Attribut ist optional. Es wird für die Angabe des Benutzernamens für die Basisauthentifizierung verwendet.
- password: Dieses Attribut ist optional. Es wird für die Angabe des Kennworts für die Basisauthentifizierung verwendet. Das Kennwort kann codiert werden.
- ssl-ref: Dieses Attribut ist optional. Es bezieht sich auf das ssl-Element, das in der Datei server.xml über das Attribut id konfiguriert wird. Wenn das Attribut nicht angegeben wird, der Server jedoch die Sicherheit auf Transportebene über Aktivierung des Features ssl-1.0 unterstützt, verwendet der Service-Client die SSL-Standardkonfiguration von Liberty.
- key-alias: Dieses Attribut ist optional. Es wird für die Angabe des Aliasnamens für das Clientzertifikat verwendet. Wenn das Attribut nicht angegeben wird und der Web-Service-Provider das Clientzertifikat unterstützt, dann wird das erste Zertifikat im Keystore als Wert für dieses Attribut verwendet. Das Attribut kann auch das Attribut clientKeyAlias überschreiben, das über das ssl-Element in der Datei server.xml definiert ist.
<properties>
- Für Web-Service-Clients können Sie client.ConnectionTimeout, authorization.UserName, tlsClientParameters.disableCNcheck und weitere Attribute angeben.
- Für Web-Service-Endpunkte können Sie publishedEndpointUrl, org.apache.cxf.wsdl.create.imports und weitere Attribute angeben.
<?xml version="1.0" encoding="UTF-8"?>
<webservices-bnd xmlns="http://websphere.ibm.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://websphere.ibm.com/xml/ns/javaee http://websphere.ibm.com/xml/ns/javaee/ibm-ws-bnd_1_0.xsd"
version="1.0">
<!-- optionale Standardeigenschaften für Web-Service-Endpunkt -->
<webservice-endpoint-properties org.apache.cxf.wsdl.create.imports="true" ... />
<!-- Beliebig viele Endpunktbeschreibungen -->
<webservice-endpoint port-component-name="..." address="optional override address">
<!-- optionale Eigenschaften für Web-Service-Endpunkt -->
<properties publishedEndpointUrl="http://www.example.com/services/hello"
org.apache.cxf.wsdl.create.imports="false" />
</webservice-endpoint>
...
<!-- HTTP-Veröffentlichungsmodul überschreiben - optional -->
<http-publishing context-root="optional override of module's context root">
<!-- web.xml Fragment für Sicherheit - optional -->
<webservice-security>
<!-- SECURITY CONSTRAINTS -->
<security-constraint>
<web-resource-collection>
<web-resource-name>SayHelloServiceName</web-resource-name>
<url-pattern>/SayHelloService</url-pattern>
</web-resource-collection>
<auth-constraint>
<description>SayHelloServiceAuth</description>
<role-name>group123</role-name>
</auth-constraint>
<user-data-constraint>
<transport-guarantee>CONFIDENTIAL</transport-guarantee>
</user-data-constraint>
</security-constraint>
<!-- SECURITY CONSTRAINTS -->
<security-constraint>
<web-resource-collection>
<web-resource-name>SecuredSayHelloServiceName</web-resource-name>
<url-pattern>/Secured*</url-pattern>
</web-resource-collection>
<auth-constraint>
<description>SecuredSayHelloServiceAuth</description>
<role-name>group123</role-name>
</auth-constraint>
<user-data-constraint>
<transport-guarantee>CONFIDENTIAL</transport-guarantee>
</user-data-constraint>
</security-constraint>
<!-- SECURITY ROLES -->
<security-role id="group123_id">
<role-name>group123</role-name>
</security-role>
<!-- Authentifizierungsmethode: Clientzertifizkat oder Basisauthentifizierung -->
<login-config>
<auth-method>BASIC</auth-method>
</login-config>
</webservice-security>
</http-publishing>
<!-- Beliebig viel Clientreferenzen -->
<service-ref name="services/sayHelloService"
port-address="http://productServer:productPort/context-root/SayHelloService"/>
<service-ref name="services/securedSayHelloService"
port-address="http://productServer:productPort/context-root/SecuredSayHelloService"
wsdl-location="optional override of WSDL document" />
</webservices-bnd>