# Générateur d'expression de règle HTTP

Le générateur de sous-expression permet de générer des conditions de règles complexes issues de sous-expressions en utilisant AND, OR, NOT et le regroupement mis entre parenthèses. Le générateur de règles valide la règle lorsque des modifications sont appliquées, il vous informe également de la non-concordance des parenthèses mais aussi des opérateurs logiques non pris en charge.

Pour afficher cette page de la console d'administration, cliquez sur Serveurs > Types de serveur > Routeurs On demand > ODR > Propriétés des routeurs On demand > Règles HTTP de la stratégie de routage > Ajouter > Générateur de sous-expression.

Pour modifier des règles via le générateur de règles, vous devez disposer des privilèges d'administrateur.

## Sélectionner un opérande

### Opérandes des stratégies de routage et de service

Selon le protocole que vous sélectionnez, plusieurs opérandes vous sont proposés. Le tableau ci-dessous présente les noms des opérandes tels qu'ils s'affichent dans la console, l'opérande réel tel qu'il apparaît dans l'expression, les protocoles valides pour chaque opérande et la description de chaque opérande.

Tableau 1. Opérandes
Variable de demande | Protocoles valides | Description
--- | --- | ---
`hôte_virtuel` | HTTP SOAP | Hôte virtuel cible de la requête, utilisé pour configurer des applications Web avec un nom d'hôte spécifique.
`port_virtuel` | HTTP | Port virtuel cible de la requête, utilisé pour configurer des applications Web avec un port spécifique.
`uri` | HTTP | identificateur URI afin d'obtenir le chemin de la requête. Si l'URL est "http://host:port/path?p1=v1", le chemin est "path".
`ID utilisateur` |  | Renvoie l'ID de l'utilisateur authentifié ayant envoyé la requête.
`ID groupe` |  | Renvoie la liste des noms de groupes de l'utilisateur authentifié ayant envoyé la requête.
`Nom du paramètre de requête de la demande` |  | Nom et valeur de l'en-tête. Par exemple, l'expression `queryparm$timezone='EST'` teste une demande permettant de vérifier si elle contient un paramètre de requête HTTP nommé `timezone` associé à une valeur `EST`. Pour vérifier la présence ou l'absence d'un paramètre de demande particulier, utilisez l'une des expressions suivantes :
    queryparm$timezone IS NOT NULL
    queryparm$timezone IS NULL
`Nom d'en-tête de la demande` |  | Nom et valeur de l'en-tête. Par exemple, l'expression `header$Host='localhost'` teste une demande pour voir si elle contient un en-tête d'hôte HTTP associé à la valeur `localhost`. Pour vérifier la présence ou l'absence de l'en-tête d'hôte, utilisez l'une des expressions suivantes :
    header$Host IS NOT NULL
    header$Host IS NULL
`Nom d'en-tête du cookie` |  | Nom d'un cookie. Par exemple, l'expression `cookie$Nom_cookie='Nom_cookie'` permet de vérifier qu'une demande contient le cookie `Nom_cookie` associé à la valeur `Nom_cookie`. Pour vérifier la présence ou l'absence d'un cookie particulier, utilisez l'une des expressions suivantes :
    cookie$MyCookieName IS NOT NULL
    cookie$MyCookieName IS NULL
`HTTPMethod` | HTTP SOAP | Méthode HTTP de la demande. Les valeurs possibles sont POST, GET, PUT et DELETE.
`clienthost` | HTTP SOAP IIOP SIP | Nom d'hôte complet du client. Il s'agit de la valeur du nom d'hôte de la commande IP. Cet opérande ne prend pas en charge les opérateurs numériques tels que `>, >=, <, <=`.
`clientipv4` | HTTP SOAP SIP | Adresse IP de l'ordinateur client utilisant le type d'adresse à quartet descripteur Internet Protocol version 4 (IPv4) `n.n.n.n`.
`clientipv6` | HTTP SOAP SIP | Adresse Internet Protocol version 6 (IPv6) 128 bits du type `x:x:x:x:x:x:x:x` conforme au protocole RFC 1924 de l'ordinateur client.
`serverhost` | HTTP SOAP IIOP SIP | Nom d'hôte qualifié complet du serveur. Cet opérande ne prend pas en charge les opérateurs numériques tels que `>, >=, <, <=`.
`serveripv4` | HTTP SOAP SIP | Adresse IP de l'ordinateur serveur au format IPv4 à quatre éléments séparés par des points `n.n.n.n`.
`serveripv6` | HTTP SOAP SIP | Adresse IPv6 128 bits du type `x:x:x:x:x:x:x:x` conforme au document RFC 1924 de l'ordinateur serveur.
`port` | HTTP SOAP IIOP SIP | Port d'écoute sur lequel la demande a été reçue.
`protocol` | HTTP SOAP | Protocoles de communication qui transmettent la demande. Les protocoles actuellement pris en charge sont HTTP, HTTPS, SOAP et SOAPS.
`virtualportal` | HTTP SOAP | Les portails virtuels sont créés dans WebSphere® Portal Server et Intelligent Management prend en charge cet opérande pour une meilleure intégration à WebSphere Portal Server. Le portail virtuel correspond à l'URL de la demande moins la racine de contexte du module Web de l'application WebSphere Portal. Si une demande particulière correspond au portail virtuel défini, l'action de routage définie pour cette règle est adoptée.
`time` | HTTP SOAP IIOP | Cet opérande permet de définir la date et l'heure du jour où une demande donnée doit être traitée. heure_de_début et heure_de_fin sont deux zones facultatives. Si une demande est reçue en dehors de la fenêtre définie, la demande ne sera pas traitée. Le format des zones Heure de début et Heure de fin est le suivant : `jour_de_la_semaine/jour_du_mois/mois/année::heure:minute:seconde`. Par exemple, "mardi 11 avril 2007 à 13:03:45" est indiqué sous la forme suivante : Mar/11/Avr/2007::13:03:45 Vous pouvez utiliser le caractère générique * dans n'importe quelle zone. Par exemple, le 1er de chaque mois est indiqué sous la forme */1. Les valeurs du jour_de_la_semaine sont Sun, Mon, Tue, Wed, Thu, Fri, Sat et les valeurs du jour_du_mois vont de 1 à 31. La valeur mois est une valeur non numérique représentant les douze mois : Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec. La valeur année est constituée des quatre chiffres de l'année. par exemple : 2007. La valeur de l'heure est l'heure du jour au format 24 heures. Par exemple, 8 h est représenté par ::8. Les minutes et les secondes sont exprimées par des nombres compris entre 0 et 59. La barre oblique (/) est utilisée pour séparer les paramètres de la date, les deux points répétés (::) sont utilisés pour distinguer les valeurs de la date et de l'heure et les deux points (:) sont utilisés pour séparer les paramètres de l'heure du jour. Notez que le résultat booléen de la règle entière dans laquelle l'opérande time est utilisé détermine l'action de routage à entreprendre.
`percentage$<val>` | HTTP SOAP IIOP SIP | L'opérande de pourcentage a pour valeur `true` pour un pourcentage fixe du temps. Par exemple, `percentage$50` a pour valeur `true` 50 % du temps.
`rampup$<heure_de_début>$<heure_de_fin>` | HTTP SOAP IIOP SIP | L'opérande d'augmentation progressive a pour valeur `true` pour un pourcentage variable du temps. Il est toujours associé à la valeur `false` avant `<heure_début>` et à la valeur `true` avant `<heure_fin>`. Au fur et à mesure que l'heure progresse de l'`<heure_de_début>` vers l'`<heure_de_fin>`, il prend la valeur `true`, un pourcentage augmentant de façon linéaire. Le format de `<heure_début>` et `<heure_fin>` est `jour/mois/année::heure:mn:s`. où jour est le jour du mois, mois est l'un des douze mois (Jan, Fév, Mar, Avr, Mai, Jui, Juil, Aoû, Sep, Oct, Nov, Déc), année est une année composée de 4 chiffres, heure est l'heure militaire à 2 chiffres et mn et s sont des valeurs à 2 chiffres pour les minutes et les secondes, respectivement. Exemple : `rampup$01/Jan/2007::08:00:00$01/Jan/2007::17:00:00` est parfois associé à la valeur `true` à 8 heures le 1er janvier 2007 et est toujours associé à la valeur `true` à 17 heures le même jour, une fois l'heure de fin atteinte progressivement.

## Opérateur

- Egal à et ignorant la casse (EQUALSIGNORECASE) : Identique à 'Chaîne = Chaîne', sauf que la casse des chaînes est ignorée. Ainsi, 'ABC' `EQUALSIGNORECASE` 'abc' renverrait 'true'. ('ABC' = 'abc') renverrait 'false'.
- N'est pas égal ( <> ) : L'opérateur N'est pas égal indique que la valeur de l'opérande n'est pas égale à la valeur que vous saisissez.
- Dans (IN) : Cet opérateur indique un opérande contenant plusieurs valeurs dans une expression unique. Par exemple, si, pour un opérande appelé `port`, vous souhaitez spécifier que la valeur du port peut être l'une des valeurs `9080`, `9090`, `9091`, le fragment d'expression est `port IN (9080,9090,9091)`. La façon dont les valeurs sont exprimées dans les parenthèses dépend du type de données du port. Si le port est représenté par un entier, la syntaxe correcte correspond aux valeurs sans les guillemets. Si le port est représenté par une chaîne, la syntaxe correcte est `port IN (‘9080’,‘9090’,‘9091’)`.
- Similaire (LIKE) : Cet opérateur indique une recherche de correspondance de canevas pour des valeurs d'opérande de type chaîne. La valeur doit contenir le caractère générique Pourcentage (%) à l'emplacement où commence la recherche de correspondance de canevas. Par exemple, l'expression `host LIKE %blanca` correspond au mot "blanca" ou à tout autre mot se terminant par "blanca", alors que l'expression `host LIKE blanca%` correspond au mot "blanca" ou tout autre mot commençant par "blanca", et que l'expression `host LIKE %blanca%` correspond au mot "blanca" et à tout mot contenant "blanca".
- Similaire et ignorant la casse (LIKEIGNORECASE) : Identique à 'chaîne like chaîne', sauf que la casse des chaînes est ignorée.
- N'est pas Null (IS NOT NULL) : Cet opérateur indique qu'une validation de la demande signale que le paramètre demandé existe.
- Concaténer (+) : Cet opérateur indique que deux chaînes de caractères ont été soudées : 'abc' + 'def' = 'abcdef'.
- Similaire Dans (LIKEIN) : Cet opérateur se présente sous la forme chaîne likein (chaîne1, chaîne2, chaîne3, etc.) renvoie 'true' si la chaîne à gauche de "likein" correspond à l'une ou plusieurs des chaînes (chaîneN)
- Est Null (IS NULL) : Cet opérateur indique qu'une validation de la requête signale que le paramètre demandé n'existe pas.
- Egal ( = ) : L'opérateur d'égalité indique une correspondance sensible à la casse.

## Valeur

Selon l'opérateur que vous aurez choisi, saisissez une valeur pour la sous-expression que vous choisissez de créer.

## Générer une sous-expression

Générez la sous-expression issue de l'opérande, de l'opérateur et des valeurs que vous avez spécifiés.

## Ajouter à la fin

Cliquez pour ajouter à la case située dans le panneau des règles.

Informations connexes :
Règles HTTP de la stratégie de routage

Nom de fichier : http_rulebuilder_detail.html