Liberty : Fichier ibm-ws-bnd.xml

Vous pouvez personnaliser des noeuds finaux de services Web et configurer des paramètres de sécurité pour les fournisseurs de services Web et les clients de service Web à l'aide du fichier ibm-ws-bnd.xml dans Liberty. Vous devez stocker ce fichier dans le répertoire /WEB-INF de votre application Web ou dans le répertoire /META-INF de votre module EJB.

Chaque élément du fichier ibm-ws-bnd.xml est décrit ci-après.

<webservice-endpoint-properties>

Cet élément permet de définir les propriétés par défaut de tous les noeuds finaux de services Web d'un même module. Un élément webservice-endpoint-properties seulement peut être spécifié pour un module. Vous pouvez spécifier les paires nom-valeur de votre choix applicables au noeud final de service Web sous forme d'attributs de l'élément webservice-endpoint-properties.

Si vous ajoutez la propriété <enableLoggingInOutInterceptor>, vous pouvez consigner au journal des demandes et réponses SOAP tant côté client que côté serveur :

<webservice-endpoint-properties enableLoggingInOutInterceptor="false">  
Remarque : If you set the enable LoggingInOutInterceptor="true", your credentials will be displayed in the message.log.

<webservice-endpoint>

This element is used to specify the binding for a specified service instance. It has the following attributes:
  • port-component-name: This attribute is required. It is used to specify the name of a port component.
  • address: This attribute is optional. It is used to specify the overridden address of a service endpoint.

If you add the <enableLoggingInOutInterceptor> property, you can log SOAP requests and responses for both client- and server-side:

	<webservice-endpoint port-component-name="Hello">         
		<properties enableLoggingInOutInterceptor="true"/>    
	</webservice-endpoint>
Remarque : Si vous spécifiez LoggingInOutInterceptor="true", vos données d'identification seront affichées dans le journal message.log.

<http-publishing>

Cet élément permet de spécifier les configurations de publication lors de l'utilisation du protocole HTTP pour tous les noeuds finaux de services Web. Un seul élément <http-publishing> peut être spécifié dans chaque module. Il possède l'attribut suivant :
  • context-root : cet attribut est facultatif. Il permet de spécifier la racine de contexte du module EJB dans une application JAX-WS reposant sur un EJB.

<webservice-security>

Cet élément permet de configurer l'autorisation par rôle pour les services Web POJO et les services Web reposant sur des EJB. Il possède les attributs suivants :
  • security-constraint : cet attribut est facultatif. Il permet d'associer des contraintes de sécurité à une ou plusieurs collections de ressources Web et ne constitue qu'une configuration complémentaire pour les descripteurs de déploiement ou les annotations dans les applications Web.
  • security-role : cet attribut est facultatif. Il contient la définition d'un rôle de sécurité et ne constitue qu'une configuration complémentaire pour les descripteurs de déploiement ou les annotations dans les applications Web.
  • login-config : cet attribut est facultatif. Il permet de configurer la méthode d'authentification et le nom de domaine et n'est valable que pour les services Web reposant sur un EJB dans un fichier JAR. Si le même attribut est spécifié dans le fichier de descripteur de déploiement, la valeur du descripteur de déploiement est utilisée. La valeur de cet attribut doit être BASIC ou CLIENT_CERT.

<service-ref>

Cet élément permet de définir les configurations des références de services Web pour un client de services Web. Il possède les attributs suivants :
  • name : cet attribut est requis. Il permet de spécifier le nom d'une référence de services Web.
  • component-name : cet attribut est facultatif. Il permet de spécifier le nom du bean EJB si la référence de service est utilisée dans un module EJB.
  • port-address : cet attribut est facultatif. Il permet de spécifier l'adresse des services Web si les services Web référencés ne possèdent qu'un seul port.
  • wsdl-location : cet attribut est facultatif. Il permet de spécifier l'adresse URL d'un fichier WSDL à remplacer.

<port>

Cet élément permet de définir des configurations de port qui sont associées à la référence de services Web. Plusieurs éléments port peuvent être définis dans un élément service-ref. Il possède les attributs suivants :
  • name : cet attribut est requis. Il permet de spécifier le nom du port de services Web.
  • namespace : cet attribut est facultatif. Il permet de spécifier l'espace de nom du port de services Web. Si l'attribut namespace est présent, la liaison est appliquée au port associé au même nom et au même espace de nom. Sinon, elle est appliquée au port qui porte le même nom.
  • address : cet attribut est facultatif. Il permet de spécifier l'adresse pour le port de services Web. S'il est présent, il remplace la valeur de l'attribut port-address définie dans l'élément service-ref.
  • username : cet attribut est facultatif. Il permet de spécifier le nom d'utilisateur pour l'authentification de base.
  • password : cet attribut est facultatif. Il permet de spécifier le mot de passe pour l'authentification de base. Le mot de passe peut être codé.
  • ssl-ref : cet attribut est facultatif. Il référence l'élément ssl qui est configuré dans le fichier server.xml avec l'attribut id. Si l'attribut n'est pas spécifié mais que le serveur prend en charge la sécurité au niveau du transport via la fonction ssl-1.0, le client de service utilise la configuration SSL par défaut de Liberty.
  • key-alias : cet attribut est facultatif. Il permet de spécifier l'alias du certificat client. Si l'attribut n'est pas spécifié et que le fournisseur de services Web prend en charge le certificat client, le premier certificat du fichier de clés est utilisé comme valeur pour cet attribut. L'attribut peut aussi remplacer l'attribut clientKeyAlias défini dans l'élément ssl du fichier server.xml.

<properties>

Cet élément permet de définir les propriétés pour un client ou un noeud final de service Web. Les attributs peuvent correspondre à un nom ou à une valeur.
  • Pour les clients de service Web, vous pouvez spécifier client.ConnectionTimeout, authorization.UserName, tlsClientParameters.disableCNcheck, et d'autres attributs.
  • Pour un noeud final de service Web, vous pouvez spécifier publishedEndpointUrl, org.apache.cxf.wsdl.create.imports et d'autres attributs.
Voici un exemple de configuration classique pour un fichier ibm-ws-bnd.xml :
<?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">
    
    <!-- optional Web service endpoint default properties -->
    <webservice-endpoint-properties org.apache.cxf.wsdl.create.imports="true" ... />

    <!-- 0 to many endpoint descriptions -->
    <webservice-endpoint port-component-name="..." address="optional override address">
        <!-- optional Web service endpoint properties -->
        <properties publishedEndpointUrl="http://www.example.com/services/hello" 
					org.apache.cxf.wsdl.create.imports="false" />
    </webservice-endpoint>
    ...

    <!-- optional http publishing module overrides -->
    <http-publishing context-root="optional override of module's context root">
        <!-- optional web.xml fragment for security -->
        <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>     
            <!-- AUTHENTICATION METHOD: Client certificate or basic authentication -->
            <login-config>
                <auth-method>BASIC</auth-method>
            </login-config>                                      
        </webservice-security>
    </http-publishing>
       
    <!-- 0 to many client refs -->
    <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>

Icône indiquant le type de rubrique Rubrique de référence

Nom du fichier : rwlp_jaxws_bnd.html