Você pode criar um filtro customizado para seu servidor proxy se precisar
que o servidor proxy execute uma função, como criação de log customizada, que
não é fornecida por meio de configurações normais do produto.
Antes de Iniciar
- Determine onde você irá armazenar o artefato que contém o filtro criado. Você pode
importar esse artefato de um sistema de arquivo local ou remoto.
- Você deve saber o nome do servidor proxy no qual deseja instalar o filtro
customizado.
- Você deve iniciar o console administrativo que é utilizado para controlar esse
servidor proxy, se não tiver iniciado ainda.
Sobre Esta Tarefa
Um filtro fornece um controle opcional e secundário sobre uma função, que vai
além do controle que normalmente é fornecido através das configurações típicas do produto. Por
exemplo, um aplicativo poderá utilizar um mecanismo de filtro de criação de log para
suprimir todos os eventos que têm uma chave de mensagem específica.
Procedimento
- Crie um filtro customizado.
- Crie uma classe que estenda com.ibm.wsspi.proxy.filter.http.HttpDefaultFilter.
- Substitua o método doFilter abstrato e, opcionalmente, os métodos init e
destroy. Se você substituir os métodos init e destroy, deverá chamar as versões super
desses métodos para preservar a funcionalidade do ciclo de vida do filtro.
- Grave o novo método doFilter, que utiliza a interface
HttpProxyServiceContext.
Esse novo método doFilter pode ser gravado de
modo que:
- Altera qualquer artefato associado ao pedido ou à resposta, como a própria
resposta, o código da resposta ou os cabeçalhos.
- Altere os artefatos que estão associados ao pedido e à resposta.
- Obtém informações sobre o pedido ou a resposta.
- Obtém informações sobre o pedido e a resposta.
- Utilize o MBean (bean gerenciado) do filtro do servidor proxy,
proxyFilterMbean, para determinar o ordinal correto do filtro.
proxyFilterMbean = AdminControl.queryNames('type=ProxyServerFilterBean,*')
AdminControl.invoke(proxyFilterMbean, 'viewAllFilters')
A ordem, na qual todos os filtros no servidor proxy são processados, é
exibida.
- Crie o arquivo de descritor de filtro, filter-context.xml
Esse arquivo é utilizado para definir todos os filtros que tenham esse descritor. O exemplo a seguir ilustra uma versão básica de um arquivo filter-context.xml.
Nesse
exemplo, o descritor determina onde e quando o filtro específico é executado na
solicitação e na resposta. O ponto do filtro
determina onde o filtro será executado. Neste exemplo, o filtro será executado
após o recebimento do pedido.
O ordinal determina quando o filtro é processado
em relação aos outros filtros no mesmo ponto. Quanto maior o ordinal, mais alto estará o
filtro na fila de processamento.
<?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>
- Compacte os arquivos .class compilados para o filtro e o descritor de
filtro em um arquivo JAR.
- Importe o artefato (arquivo JAR) que contém o filtro customizado.
- No console administrativo, clique em .
- Selecione Sistema de Arquivo Local ou
Sistema de Arquivo Remoto para indicar onde o arquivo JAR está
localizado.
- Especifique o nome completo do arquivo JAR.
O nome completo
do arquivo JAR inclui o caminho de diretório onde o arquivo está localizado, e o
nome do arquivo. Se você não souber o nome completo do arquivo JAR, poderá utilizar a
função de procura para localizá-lo.
- Crie um aplicativo de nível de negócios (BLA) que inclua esse artefato.
- No console administrativo, clique em .
- No campo Nome, especifique um nome para o novo
aplicativo que você está criando.
Você também pode especificar uma
descrição do aplicativo no campo Descrição.
- Clique em Aplicar.
- Crie uma unidade de composição (CU) BLA do artefato.
- Na tabela Ativos Implementados, clique em Incluir > Incluir Ativo.
- Selecione o nome do artefato que você importou na primeira etapa e, em
seguida, clique em Continuar.
- Altere as configurações da unidade de composição conforme necessário
e depois clique em Modificar Destino.
- Selecione o servidor proxy no qual deseja implementar essa CU na lista de
destinos de implementação disponíveis e, em seguida, clique em OK.
Ao clicar em OK, o produto mapeia a unidade de composição
para o servidor proxy selecionado.
- Especifique as opções de relacionamento para essa unidade de composição.
- Clique em Terminar.
Para verificar se o produto incluiu com êxito a CU, clique em application_name. Se o produto incluir
com êxito a CU, o nome dela será mostrado na lista de recursos implementados para esse
BLA.
- Inicie o servidor proxy.
- Inicie o BLA que contém o filtro.
Resultados
O filtro está sendo executado no servidor proxy.
O que Fazer Depois
Use o filtro de servidor proxy MBean, proxyFilterMbean, para verificar se o filtro está instalado no servidor proxy e se ele está sendo processado na ordem correta com relação aos outros filtros implementados no servidor proxy. Se você precisar alterar a
ordem na qual esse filtro é processado, execute o comando modifyOrdinal no MBean proxyFilterMbean.