Puede crear un filtro personalizado para su servidor proxy si
necesita que el servidor proxy realice una función, como registro cronológico
personalizado, que no se proporciona con la configuración normal del producto.
Antes de empezar
- Determine dónde almacenar el artefacto que contiene el filtro que va a crear. Puede importar este artefacto
desde un sistema de archivos local o remoto.
- Debe saber el nombre del servidor proxy en el que quiere instalar el filtro personalizado.
- Debe iniciar la consola administrativa que se utiliza para controlar este servidor proxy,
si aún no estuviera iniciada.
Acerca de esta tarea
Un filtro proporciona un control opcional, secundario, sobre una función, que está fuera
del control que normalmente se proporciona a través de la configuración del producto. Por ejemplo,
una aplicación podría utilizar un mecanismo de filtro de registro cronológico para suprimir todos los
sucesos que tengan una clave de mensaje concreta.
Procedimiento
- Cree un filtro personalizado.
- Cree una clase que amplíe com.ibm.wsspi.proxy.filter.http.HttpDefaultFilter.
- Cambie el método doFilter abstracto y (opcionalmente) los métodos init y destroy. Si
altera temporalmente los métodos init y destroy, debe llamar a las versiones superiores de estos
métodos para conservar la funcionalidad del ciclo de vida de filtros.
- Escriba un método doFilter nuevo que utilice la interfaz
HttpProxyServiceContext.
Este método doFilter nuevo se puede desarrollar para:
- Cambios en los artefactos que se asocien a la solicitud o respuesta, como la
propia respuesta, el código de respuesta o las cabeceras.
- Cambios en los artefactos asociados tanto a las solicitudes como a las
respuestas.
- Obtenga información sobre la solicitud o la respuesta.
- Obtenga información sobre la solicitud y la respuesta.
- Utilice el bean gestionado de filtro de servidor proxy (MBean), proxyFilterMbean, para determinar el orden correcto para el filtro.
proxyFilterMbean = AdminControl.queryNames('type=ProxyServerFilterBean,*')
AdminControl.invoke(proxyFilterMbean, 'viewAllFilters')
El orden, en el que se procesan los filtros del servidor proxy, se visualiza.
- Cree el archivo descriptor de filtro, filter-context.xml
Este archivo se utiliza para definir todos los filtros que tiene este descriptor. El ejemplo siguiente muestra una versión básica de un archivo
filter-context.xml.
En este ejemplo, el descriptor determina dónde y cuándo se
ejecuta el filtro dado, tanto en la solicitud como en la respuesta. El punto de filtro determina dónde se ejecuta el mismo. En este ejemplo, el filtro se ejecuta después de recibir la petición. El número de orden determina
cuándo se procesa el filtro con relación a otros filtros del mismo punto. Cuanto mayor es el número de
orden, más alto estará el filtro en la cola de proceso.
<?xml version="1.0" encoding="UTF-8>
<filter-context xmlns="http://www.ibm.com/2003/FilterContextSchema">
<description>Proxy Filter Sample descriptor</description>
<display-name>Proxy Sample Filter</display-name>
<filter>
<filter-name>HttpRequestFilter</filter-name
<filter-class>com.ibm.ws.proxy.sample.HttpRequestFilter</filter-class>
<description>HTTP sample filter to run at REQUEST filter point</description>
<display-name>HTTP Request Sample</display-name>
<protocol-name>HTTP</protocol-name>
<filter-point>RequestReceived</filter-point>
<ordinal>1000</ordinal>
</filter>
</filter-context>
- Empaquete los archivos .class compilados para el filtro y el descriptor de filtro
en un archivo JAR.
- Importe el artefacto (archivo JAR) que contiene el filtro personalizado.
- En la consola administrativa, pulse .
- Seleccione Sistema de archivos local o Sistema de archivos remoto para indicar dónde se encuentra el archivo JAR.
- Especifique el nombre completo en el archivo JAR.
El nombre completo del archivo
JAR incluye la vía de acceso del directorio en el que se encuentra el archivo y el nombre de archivo. Si no
sabe el nombre completo del archivo JAR, puede utilizar la función de navegación para localizar el archivo.
- Cree una Aplicación a nivel de negocio (Business level application - BLA) que incluya este artefacto.
- En la consola administrativa, pulse .
- En el campo Nombre, especifique un nombre para la aplicación nueva
que está creando.
También puede especificar una descripción de la aplicación en el campo
Descripción.
- Pulse Aplicar.
- Cree una unidad de composición (CU) BLA del artefacto.
- En la tabla Activos desplegados, pulse Añadir > Añadir
activo.
- Seleccione el nombre del artefacto que ha importado en el primer paso y, a continuación,
pulse Continuar.
- Cambie los valores de la unidad de composición según sea necesario y, a continuación, pulse
Modificar destino.
- Seleccione el servidor proxy en el que quiera desplegar esta CU de la lista de destinos
de despliegue disponibles y, a continuación, pulse Aceptar.
Cuando pulse Aceptar El producto correlaciona la unidad de composición con
el servidor proxy seleccionado.
- Especifique las opciones de relación para esta unidad de composición.
- Pulse Finalizar.
Para comprobar que el producto ha añadido correctamente la CU, pulse
nombre_aplicación.
Si el producto añade correctamente la
CU, el nombre de la misma se muestra en la lista de activos desplegados para esta BLA.
- Inicie el servidor proxy.
- Inicie la BLA que contiene el filtro.
Resultados
El filtro se está ejecutando en el servidor proxy.
Qué hacer a continuación
Utilice el MBean de filtro de servidor proxy, proxyFilterMbean, para comprobar que el filtro está instalado en el servidor proxy y que se está
procesando en el orden relativo correcto respecto a los otros filtros desplegados en el servidor proxy. Si tiene que cambiar el orden
en el que se procesa este filtro, ejecute el mandato modifyOrdinal contra el MBean proxyFilterMbean.