El archivo ibm-ws-bnd.xml
Puede personalizar los puntos finales de servicios web y configurar los valores de seguridad para los proveedores y clientes de servicios web mediante el archivo ibm-ws-bnd.xml en Liberty. Debe almacenar este archivo en el directorio /WEB-INF de la aplicación web o en el directorio /META-INF del módulo EJB.
A continuación se detalla la descripción de cada elemento del archivo ibm-ws-bnd.xml:
<webservice-endpoint-properties>
Este elemento se utiliza para definir las propiedades predeterminadas para todos los puntos finales de servicios web del mismo módulo. Solo se puede especificar un elemento webservice-endpoint-properties para cada módulo. Puede especificar cualquier par de nombre y valor aplicable al punto final de servicios web como atributos del elemento webservice-endpoint-properties.
Si añade la propiedad <enableLoggingInOutInterceptor>, puede registrar solicitudes y respuestas SOAP para ambos lados, cliente y servidor:
<webservice-endpoint-properties enableLoggingInOutInterceptor="false">
<webservice-endpoint>
- port-component-name: este atributo es necesario. Se utiliza para especificar el nombre de un componente de puerto.
- address: este atributo es opcional. Se utiliza para especificar la dirección alterada temporalmente de un punto final de servicio.
Si añade la propiedad <enableLoggingInOutInterceptor>, puede registrar solicitudes y respuestas SOAP para ambos lados, cliente y servidor:
<webservice-endpoint port-component-name="Hello">
<properties enableLoggingInOutInterceptor="true"/>
</webservice-endpoint>
<http-publishing>
- context-root: este atributo es opcional. Se utiliza para especificar el raíz de contexto del módulo EJB en una aplicación JAX-WS basada en EJB.
<webservice-security>
- security-constraint: este atributo es opcional. Se utiliza para asociar las restricciones de seguridad a una o varias recopilaciones de recursos web y solo funciona como configuración complementaria de los descriptores de despliegue o las anotaciones en las aplicaciones web.
- security-role: este atributo es opcional. Contiene la definición de un rol de seguridad y solo funciona como configuración complementaria de los descriptores de despliegue o las anotaciones en las aplicaciones web.
- login-config: este atributo es opcional. Se utiliza para configurar el método de autenticación y el nombre de reino, y surte efecto solo para los servicios web basados en EJB de un archivo JAR. Si se especifica el mismo atributo en el archivo de descriptor de despliegue, se utiliza el valor del descriptor de despliegue. El valor de este atributo debe ser BASIC o CLIENT_CERT.
<service-ref>
- name: este atributo es necesario. Se utiliza para especificar el nombre de una referencia de servicios web.
- component-name: este atributo es opcional. Se utiliza para especificar el nombre de bean EJB si se utiliza la referencia de servicio utilizada en un módulo EJB.
- port-address: este atributo es opcional. Se utiliza para especificar la dirección del puerto de servicio web si los servicios web referenciados tienen solo un puerto.
- wsdl-location: este atributo es opcional. Se utiliza para especificar el URL de un WSDL que se va a alterar temporalmente.
<port>
- name: este atributo es necesario. Se utiliza para especificar el nombre del puerto de servicios web.
- namespace: este atributo es opcional. Se utiliza para especificar el espacio de nombres del puerto de servicios web. Si está presente el atributo namespace, se aplica el enlace al puerto que tiene el mismo nombre y espacio de nombres. De lo contrario, el enlace se aplica al puerto que tiene el mismo nombre.
- address: este atributo es opcional. Se utiliza para especificar la dirección del puerto de servicios web. Si está presente, altera temporalmente el valor del atributo port-address definido en el elemento service-ref.
- username: este atributo es opcional. Se utiliza para especificar el nombre de usuario para la autenticación básica.
- password: este atributo es opcional. Se utiliza para especificar la contraseña para la autenticación básica. Se puede codificar la contraseña.
- ssl-ref: este atributo es opcional. Se refiere al elemento ssl configurado en el archivo server.xml mediante el atributo id. Si no se especifica el atributo pero el servidor admite la seguridad a nivel de transporte habilitando la característica ssl-1.0, el cliente de servicio utiliza la configuración SSL predeterminada de Liberty.
- key-alias: este atributo es opcional. Se utiliza para especificar el alias de certificado de cliente. Si no se especifica el atributo y el proveedor de servicios web admite el certificado de cliente, se utiliza el primer certificado del almacén de claves como el valor de este atributo. El atributo también puede alterar temporalmente el atributo clientKeyAlias definido en el elemento ssl del archivo server.xml.
<properties>
- Para los clientes de servicio web, puede especificar client.ConnectionTimeout, authorization.UserName, tlsClientParameters.disableCNcheck y otros atributos.
- Para el punto final de servicio web, puede especificar publishedEndpointUrl, org.apache.cxf.wsdl.create.imports y otros atributos.
<?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">
<!-- propiedades predeterminadas de punto final de servicio web opcionales -->
<webservice-endpoint-properties org.apache.cxf.wsdl.create.imports="true" ... />
<!-- 0 a muchas descripciones de punto final -->
<webservice-endpoint port-component-name="..." address="optional override address">
<!-- propiedades de punto final de servicio web opcionales -->
<properties publishedEndpointUrl="http://www.example.com/services/hello"
org.apache.cxf.wsdl.create.imports="false" />
</webservice-endpoint>
...
<!-- alteraciones temporales opcionales del módulo de publicación http -->
<http-publishing context-root="alteración temporal opcional de la raíz de contexto del módulo">
<!-- fragmento web.xml opcional para seguridad -->
<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: certificado de cliente o autenticación básica -->
<login-config>
<auth-method>BASIC</auth-method>
</login-config>
</webservice-security>
</http-publishing>
<!-- 0 a muchas referencias de cliente -->
<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="alternación temporal opcional de documento WSDL" />
</webservices-bnd>