Referencia del conjunto de reglas rule-set-reference

El servicio de imágenes admite un mecanismo de preprocesamiento de solicitud simple que se basa en reglas de coincidencia y sustitución de expresión regular.

Colecciones de reglas de preprocesamiento (conjuntos de reglas) se puede adjuntar a los catálogos de imágenes o al catálogo predeterminado. Las reglas del catálogo predeterminado solo se aplican si la solicitud no identifica un catálogo de imágenes principal específico.

Las reglas de preprocesamiento de solicitudes pueden modificar las partes de la ruta y la consulta de las solicitudes antes de que las procese el Platform ServerAnalizador de, incluida la manipulación de la ruta de acceso, la adición de comandos, el cambio de valores de comandos y la aplicación de plantillas o macros. Las reglas también se pueden utilizar para configurar y anular ciertas funciones de seguridad que normalmente solo se controlan con atributos de catálogo, como la ofuscación de solicitudes, la marca de agua y la limitación del servicio a direcciones IP de cliente específicas.

Los conjuntos de reglas se almacenan como archivos de documento XML. La ruta relativa o absoluta del archivo del conjunto de reglas debe especificarse en attribute::RuleSetFile.

Estructura general 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>

El <?xml> y <ruleset> Los elementos siempre son necesarios en un archivo XML de conjunto de reglas válido, incluso si no se han definido reglas reales.

Uno <ruleset> elemento que contiene cualquier número de <rule> están permitidos.

El contenido de los archivos de reglas de preprocesamiento distingue entre mayúsculas y minúsculas.

Validación de conjunto de reglas section-d8d101a0b4d74580835e37d128d05567

Una copia de RuleSet.xsd se proporciona en la carpeta de catálogo y debe utilizarse para validar un archivo de conjunto de reglas antes de registrarlo en la catalog.ini archivo. Tenga en cuenta que el servicio de imágenes utiliza una copia interna de RuleSet.xsd para su validación.

Preprocesamiento de URL section-2c09a2d79ada46b994857c6a7fb4c13a

Antes de cualquier otro procesamiento, se analiza parcialmente una solicitud HTTP entrante para determinar qué catálogo de imágenes se debe aplicar. Una vez identificado el catálogo, se aplica el conjunto de reglas del catálogo seleccionado (o el catálogo predeterminado, si no se ha identificado ningún catálogo específico).

El <rule> Los elementos de se buscan en el orden especificado para una coincidencia con el contenido del <expression> element ( expression).

Si un <rule> coincide, la variable opcional substitution y la cadena de solicitud modificada se pasa al analizador de solicitudes del servidor para su procesamiento normal.

Si no se establece una coincidencia correcta al finalizar el <ruleset> se alcanza, la solicitud se pasa al analizador sin realizar modificaciones.

El atributo OnMatch section-ed952fa55d99422db0ee68a2b9d395d3

El comportamiento predeterminado se puede modificar con la variable OnMatch atributo del <rule> Elemento. OnMatch se puede establecer en break (valor predeterminado), continue, o error.

Elemento y atributo
Comportamiento cuando se produce una coincidencia
<rule OnMatch="break">
El procesamiento de reglas finaliza inmediatamente después de aplicar la sustitución de esta regla. Predeterminado.
<rule OnMatch="continue">
La sustitución se aplica y el procesamiento continúa con la siguiente regla.
<rule OnMatch="error">
El procesamiento de reglas finaliza inmediatamente y se devuelve al cliente el estado de respuesta "solicitud rechazada".

Anulación de atributos de catálogo section-3f1e33a65c5346d1b4a69958c61432f3

El rule puede definir de forma opcional atributos que anulen los atributos de catálogo correspondientes cuando la regla coincida correctamente. Si varias reglas coincidentes establecen el mismo atributo, prevalecerá la última. Consulte regla para obtener una lista de atributos que se pueden controlar con reglas.

Expresiones regulares section-3f77bb9a265147b38c645f63ab1bad8b

La coincidencia de cadenas simple funciona para aplicaciones muy básicas, pero en la mayoría de los casos se requieren expresiones regulares. Aunque las expresiones regulares son estándares del sector, la implementación específica varía según la instancia.

package java.util.regexdescribe la implementación de expresiones regulares específica que utiliza el servicio de imágenes.

Subcadenas capturadas section-066e659406d5403599cd26ae35e80d68

Para facilitar las modificaciones complejas de las direcciones URL, se pueden capturar subcadenas en la expresión incluyendo la subcadena entre paréntesis (…). Las subcadenas capturadas se numeran secuencialmente empezando por 1 según la posición del paréntesis de apertura. Las subcadenas capturadas pueden insertarse en la sustitución utilizando $ *n*, donde n es el número de secuencia de la subcadena capturada.

Administración de archivos de conjunto de reglas section-0598a608e4044bb4805fe93ceebe10a9

Se puede adjuntar un archivo de conjunto de reglas a cada catálogo de imágenes con el atributo catalog attribute::RuleSetFile. Aunque puede editar el archivo del conjunto de reglas en cualquier momento, el servidor de imágenes reconoce los cambios solo cuando se vuelve a cargar el catálogo de imágenes asociado. Esta recarga se produce cuando se inicia o reinicia el servidor de la plataforma y siempre que el archivo de catálogo principal, que tiene un .ini sufijo de archivo, se modifica o "toca" para cambiar la fecha del archivo.

Ejemplos section-aa769437d967459299b83a4bf34fe924

Ejemplo A. Defina una regla que aumente la configuración de calidad de la imagen si el nombre de la imagen tiene el sufijo " _hg":

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

La expresión de regla especifica una coincidencia que no distingue entre mayúsculas y minúsculas de " _hg" al final de la cadena URL. El sufijo se reemplaza con la cadena de consulta especificada, que cambia la configuración de calidad de la imagen. Tenga en cuenta que la variable ? en la cadena de sustitución se escapa, ya que se trata de un carácter especial en las expresiones regulares.

NOTE
La codificación requerida para el carácter ampersand. Alternativamente, la cadena de sustitución podría incluirse en un bloque CDATA:

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

Ejemplo B. Una aplicación web concreta no permite cadenas de consulta. Defina una regla que traduzca el elemento de ruta final small, medium, o large a una plantilla, utilizando el resto de la ruta como nombre de la imagen. Por ejemplo, myCat/myImage/small se traduciría a myCat/smallTemplate?src=myCat/myImage.

Podemos utilizar subcadenas para reestructurar la solicitud:

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

Véase también section-9b748e7c5cff4759a70f96657bd43352

paquete java.util.regex

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