Referência do conjunto de regras

A Renderização de Imagens suporta um mecanismo de pré-processamento de solicitação simples, que se baseia em regras de substituição e correspondência de expressões regulares.

Coleções de regras de pré-processamento (rule sets) podem ser anexadas a catálogos de materiais ou ao catálogo padrão. As regras no catálogo padrão se aplicam somente se a solicitação não anexar um catálogo de materiais específico.

As regras de pré-processamento de solicitação podem modificar o caminho e as partes de consulta de solicitações antes de serem processadas pelo analisador de solicitações do servidor, incluindo manipular o caminho, adicionar comandos, alterar valores de comando e aplicar modelos ou macros. As regras também podem ser usadas para configurar e substituir alguns atributos de catálogo, bem como para limitar o serviço a endereços IP de cliente específicos.

Os conjuntos de regras são armazenados como arquivos de documento XML. O caminho relativo ou absoluto do arquivo do conjunto de regras deve ser especificado em attribute::RuleSetFile.

Estrutura geral

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE ruleset SYSTEM" RuleSet.dtd">
<ruleset>
   <rule>
      <expression>
<varname>
  expression
</varname></expression>
      <substitution>
<varname>
  substitution
</varname></substitution>
      <addressfilter>
<varname>
  addressFilter
</varname></addressfilter>
   </rule>
</ruleset>

Os elementos <?xml>, <!DOCTYPE> e <ruleset> são sempre necessários em um arquivo XML de conjunto de regras válido, mesmo se nenhuma regra real estiver definida.

Um elemento <ruleset> contendo qualquer número de elementos <rule> é permitido.

O conteúdo dos arquivos de regras de pré-processamento faz distinção entre maiúsculas e minúsculas.

Pré-processamento de URL

Antes de qualquer outro processamento, uma solicitação HTTP de entrada é parcialmente analisada para determinar qual catálogo de material deve ser aplicado. Depois que o catálogo é identificado, o conjunto de regras para o catálogo selecionado (ou o catálogo padrão, se nenhum catálogo específico foi identificado) é aplicado.

Os elementos <rule> são pesquisados na ordem especificada para uma correspondência com o conteúdo do elemento <expression> ( expression).

Se um <rule> for correspondido, o substitution opcional será aplicado e a sequência de solicitação modificada será passada para o analisador de solicitação do servidor para processamento normal.

Se nenhuma correspondência bem-sucedida for feita quando o fim de <ruleset> for atingido, a solicitação será passada para o analisador sem modificação.

O atributo OnMatch

O comportamento padrão pode ser modificado com o atributo OnMatch dos elementos <rule>. OnMatch pode ser definido como break (padrão), continueou error.

Elemento e atributo

Comportamento quando ocorre uma correspondência

<rule OnMatch="break">

O processamento da regra é encerrado imediatamente após a aplicação da substituição dessa regra. Padrão.

<rule OnMatch="continue">

A substituição é aplicada e o processamento continua com a próxima regra.

<rule OnMatch="error">

O processamento da regra é encerrado imediatamente e um status de resposta de "solicitação recusada" é retornado ao cliente.

Substituição de atributos do catálogo

<rule> elementos podem, opcionalmente, definir atributos que substituem os atributos de catálogo correspondentes quando a regra for correspondida com sucesso e OnMatch="break" for definida. Nenhum atributo será aplicado se OnMatch="continue" estiver definido. Consulte a descrição de <rule> para obter uma lista de atributos que podem ser controlados com regras.

Expressões regulares

A correspondência de strings simples funciona para aplicativos muito básicos, mas expressões regulares são necessárias na maioria das instâncias. Embora as expressões regulares sejam padrão do setor, a implementação específica varia de instância para instância.

pacote java.util. regexdescreve a implementação de expressão regular específica usada pelo Serviço de imagem.

Substrações capturadas

Para facilitar modificações complexas de URL, as subsequências de caracteres podem ser capturadas na expressão ao delimitar a subsequência de caracteres com parênteses (…). As subsequências capturadas são numeradas sequencialmente, começando por 1, de acordo com a posição dos parênteses à esquerda. As subsequências capturadas podem ser inseridas na substituição usando $n, onde n é o número de sequência da subsequência capturada.

Gerenciamento de arquivos de conjunto de regras

Um arquivo de conjunto de regras pode ser anexado a cada catálogo de materiais com o atributo de catálogo attribute::RuleSetFile. Embora você possa editar o arquivo do conjunto de regras a qualquer momento, o servidor de imagem reconhece as alterações somente quando o catálogo de materiais associado é recarregado. Isso acontece quando o Servidor de Plataforma é iniciado ou reiniciado e sempre que o arquivo do catálogo principal (que tem um sufixo de arquivo .ini) é modificado ou "tocado" (para alterar a data do arquivo).

Exemplos

Exemplos de conjunto de regras são fornecidos na seção correspondente da Referência do catálogo de imagens na documentação do Servidor de imagens.

Consulte também

pacote java.util.regex

Nesta página