Referência do conjunto de regras rule-set-reference

O Servidor de imagens é compatível com um mecanismo de pré-processamento de solicitações simples que é baseado em regras de correspondência e substituição de expressão regular.

Coleções de regras de pré-processamento (conjuntos de regras) podem ser anexados a catálogos de imagens ou ao catálogo padrão. As regras no catálogo padrão se aplicam somente se a solicitação não identificar um catálogo de imagens principal específico.

As regras de pré-processamento de solicitações podem modificar o caminho e as partes de consulta de solicitações antes que sejam processadas pela Platform ServerO analisador do, incluindo a manipulação do caminho, a adição de comandos, a alteração de valores de comando e a aplicação de modelos ou macros. As regras também podem ser usadas para configurar e substituir determinados recursos de segurança que normalmente são controlados apenas com atributos de catálogo, como ofuscação de solicitação, marca d'água, bem como limitar o serviço a endereços IP de clientes específicos.

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

Estrutura geral section-8bcbd91ea8a946f28051bde8ad21827f

 <?xml version="1.0" encoding="UTF-8"?>
<ruleset>
   <rule>
      <expression>
<varname>
  expression
</varname></expression>
      <substitution>
<varname>
  substitution
</varname></substitution>
      <addressfilter>
<varname>
  addressFilter
</varname></addressfilter>
      <header>
<varname>
  headerValue
</varname></header>
   </rule>
</ruleset>

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

Um <ruleset> elemento que contém qualquer número de <rule> elementos são permitidos.

O conteúdo dos arquivos de regras de pré-processamento diferencia maiúsculas de minúsculas.

Validação do conjunto de regras section-d8d101a0b4d74580835e37d128d05567

Uma cópia de RuleSet.xsd é fornecido na pasta do catálogo e deve ser usado para validar um arquivo de conjunto de regras antes de registrá-lo na catalog.ini arquivo. Observe que o Servidor de imagens usa uma cópia interna do RuleSet.xsd para validação.

Pré-processamento de URL section-2c09a2d79ada46b994857c6a7fb4c13a

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

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

Se um <rule> for correspondente, a variável substitution é aplicado e a string de solicitação modificada é passada para o analisador de solicitação do servidor para processamento normal.

Se nenhuma correspondência bem-sucedida for feita quando o final da <ruleset> for atingida, a solicitação será transmitida ao analisador sem modificação.

O atributo OnMatch section-ed952fa55d99422db0ee68a2b9d395d3

O comportamento padrão pode ser modificado com a variável OnMatch atributo de <rule> elemento. OnMatch pode ser definido como break (padrão), continueou error.

Elemento e atributo
Comportamento quando ocorre uma correspondência
<rule OnMatch="break">
O processamento de regras é encerrado imediatamente após a substituição dessa regra ter sido aplicada. Padrão.
<rule OnMatch="continue">
A substituição é aplicada e o processamento continua com a próxima regra.
<rule OnMatch="error">
O processamento de regras é encerrado imediatamente e um status de resposta "solicitação recusada" é retornado ao cliente.

Substituição de atributos de catálogo section-3f1e33a65c5346d1b4a69958c61432f3

A variável rule O elemento pode, opcionalmente, definir atributos que sobrepõem os atributos de catálogo correspondentes quando a regra é correspondida com sucesso. Se várias regras correspondentes definirem o mesmo atributo, a última prevalecerá. Consulte regra elemento para uma lista de atributos que podem ser controlados com regras.

Expressões regulares section-3f77bb9a265147b38c645f63ab1bad8b

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.

package java.util.regexdescreve a implementação de expressão regular específica usada pelo Servidor de imagens.

Substrings capturadas section-066e659406d5403599cd26ae35e80d68

Para facilitar modificações complexas de URL, substrings podem ser capturadas na expressão ao colocar a substring entre parênteses (…). As subsequências de caracteres capturadas são numeradas sequencialmente, começando com 1 de acordo com a posição do parêntese inicial. As substrings capturadas podem ser inseridas na substituição usando $ *n*, onde n é o número de sequência da substring capturada.

Gerenciamento de arquivos de conjunto de regras section-0598a608e4044bb4805fe93ceebe10a9

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

Exemplos section-aa769437d967459299b83a4bf34fe924

Exemplo A. Defina uma regra que aumente as configurações de qualidade da imagem se o nome da imagem tiver o sufixo " _hg":

<rule>
   <expression>(?i)_hg$</expression>
   <substitution>\?&amp;qlt=95,1&amp;resmode=bicub</substitution>
</rule>

A expressão de regra especifica uma correspondência que não diferencia maiúsculas de minúsculas de " _hg" no final da cadeia de caracteres do URL. O sufixo é substituído pela sequência de consulta especificada, que altera as configurações de qualidade da imagem. Observe que ? O caractere na string de substituição é escapado, pois este é um caractere especial em expressões regulares.

NOTE
A codificação necessária para o caractere E comercial. Como alternativa, a cadeia de caracteres de substituição pode ser colocada em um bloco CDATA:

<substitution><![CDATA[&qlt=95,1&resmode=bicub]]></substitution>

Exemplo B. Um aplicativo web específico não permite cadeias de caracteres de consulta. Definir uma regra que traduza o elemento de caminho à direita small, mediumou large para um modelo, usando o restante do caminho como o nome da imagem. Por exemplo, myCat/myImage/small seria traduzido para myCat/smallTemplate?src=myCat/myImage.

Podemos usar substrings para reestruturar a solicitação:

<rule>
   <expression>([^/]+)/(small|medium|large)$</expression>
   <substitution>$2Template?src=sample/$1</substitution>
</rule>

Consulte também section-9b748e7c5cff4759a70f96657bd43352

pacote java.util.regex

recommendation-more-help
a26166cd-f2f4-45ce-996d-96a0f0d6cf49