-
Applications et modèles AppExpert
-
Personnaliser la configuration AppExpert
-
Configurer les services et les groupes de services pour une unité d'application
-
Configurer les points de terminaison publics pour une application
-
Configurer des groupes de persistance pour les unités d'application
-
Afficher les applications AppExpert et configurer les entités à l'aide du visualiseur d'applications
-
Configurer l'authentification, l'autorisation et l'audit d'applications
-
-
Configuration de l'expression de stratégie avancée : Mise en route
-
Expressions de stratégie avancées : utilisation de dates, d'heures et de nombres
-
Expressions de stratégie avancées : analyse des données HTTP, TCP et UDP
-
Expressions de stratégie avancées : analyse des certificats SSL
-
Expressions de stratégie avancées : adresses IP et MAC, débit, ID VLAN
-
Expressions de stratégie avancées : fonctions d'analyse de flux
-
Référence aux expressions - Expressions de stratégie avancées
-
Résumé d'exemples d'expressions et de stratégies de syntaxe par défaut
-
Didacticiel exemples de stratégies de syntaxe par défaut pour la réécriture
-
Migration des règles Apache mod_rewrite vers la syntaxe par défaut
-
-
Réécrire des exemples d'action et de stratégie
-
Exemple 1 : supprimer les anciens en-têtes X-Forwarded-For et client-IP
-
Exemple 3 : Marquage des connexions sécurisées et non sécurisées
-
Exemple 6 : Migration des règles du module de réécriture Apache
-
Exemple 8 : rediriger les requêtes vers le serveur interrogé
-
Exemple 11 : chiffrement RSA basé sur une stratégie sans remplissage
-
This content has been machine translated dynamically.
Dieser Inhalt ist eine maschinelle Übersetzung, die dynamisch erstellt wurde. (Haftungsausschluss)
Cet article a été traduit automatiquement de manière dynamique. (Clause de non responsabilité)
Este artículo lo ha traducido una máquina de forma dinámica. (Aviso legal)
此内容已经过机器动态翻译。 放弃
このコンテンツは動的に機械翻訳されています。免責事項
이 콘텐츠는 동적으로 기계 번역되었습니다. 책임 부인
Este texto foi traduzido automaticamente. (Aviso legal)
Questo contenuto è stato tradotto dinamicamente con traduzione automatica.(Esclusione di responsabilità))
This article has been machine translated.
Dieser Artikel wurde maschinell übersetzt. (Haftungsausschluss)
Ce article a été traduit automatiquement. (Clause de non responsabilité)
Este artículo ha sido traducido automáticamente. (Aviso legal)
この記事は機械翻訳されています.免責事項
이 기사는 기계 번역되었습니다.책임 부인
Este artigo foi traduzido automaticamente.(Aviso legal)
这篇文章已经过机器翻译.放弃
Questo articolo è stato tradotto automaticamente.(Esclusione di responsabilità))
Translation failed!
Invocation d’une légende HTTP
Après avoir configuré une légende HTTP, vous l’appelez en incluant l’SYS.HTTP_CALLOUT(<name>)
expression dans une règle de stratégie de syntaxe par défaut. Dans cette expression,<name>
est le nom de la légende HTTP que vous souhaitez appeler.
Vous pouvez utiliser les opérateurs d’expression de syntaxe par défaut avec l’expression de légende pour traiter la réponse, puis effectuer une action appropriée. Le type de retour de la réponse à partir de l’agent de légende HTTP détermine l’ensemble d’opérateurs que vous pouvez utiliser sur la réponse. Si la partie de la réponse que vous souhaitez analyser est du texte, vous pouvez utiliser un opérateur de texte pour analyser la réponse. Par exemple, vous pouvez utiliser l’opérateur CONTAINS(<string>) pour vérifier si la partie spécifiée de la réponse contient une chaîne particulière, comme dans l’exemple suivant :
SYS.HTTP_CALLOUT(mycallout).contains("Good IP address")
<!--NeedCopy-->
Si vous utilisez l’expression précédente dans une stratégie de répondeur, vous pouvez configurer une action de répondeur appropriée.
De même, si la partie de la réponse que vous souhaitez évaluer est un nombre, vous pouvez utiliser un opérateur numérique tel que GT (int). Si la réponse contient une valeur booléenne, vous pouvez utiliser un opérateur booléen.
Remarque : Une légende HTTP peut s’appeler récursivement. La récursion de légende HTTP peut être évitée en combinant l’expression de légende HTTP avec une expression de syntaxe par défaut qui empêche la récursion. Pour plus d’informations sur la façon d’éviter la récursion de légende HTTP, reportez-vous à la section Éviter la récursion des légendes HTTP.
Vous pouvez également mettre en cascade les légendes HTTP en configurant des stratégies qui appellent chacune une légende après avoir évalué les légendes générées précédemment. Dans ce scénario, après qu’une stratégie appelle une légende, lorsque l’appliance Citrix ADC analyse la légende avant d’envoyer la légende au serveur de légende, un second ensemble de stratégies peut évaluer la légende et appeler des légendes supplémentaires, qui peuvent à son tour être évaluées par un troisième ensemble de stratégies, etc. Une telle implémentation est décrite dans l’exemple suivant.
Tout d’abord, vous pouvez configurer une légende HTTP appelée myCallout1, puis configurer une stratégie de répondeur, Pol1, pour appeler myCallout1. Ensuite, vous pouvez configurer une deuxième légende HTTP, MyCallout2, et une stratégie de répondeur, Pol2. Vous configurez Pol2 pour évaluer myCallout1 et invoquez myCallout2. Vous liez les deux stratégies de répondeur globalement.
Pour éviter la récursion des légendes HTTP, MyCallout1 est configuré avec un en-tête HTTP personnalisé unique appelé “Request1.” Pol1 est configuré pour éviter la récursion des légendes HTTP en utilisant l’expression de syntaxe par défaut,
HTTP.REQ.HEADER("Request1").EQ("Callout Request").NOT.
<!--NeedCopy-->
Pol2 utilise la même expression de syntaxe par défaut, mais exclut l’opérateur .NOT afin que la stratégie évalue MyCallout1 lorsque l’appliance Citrix ADC l’analyse. Notez que myCallout2 identifie son propre en-tête unique appelé « Request2 », et Pol2 inclut une expression de syntaxe par défaut pour empêcher myCallout2 de s’appeler de manière récursive.
Exemple :
> add policy httpCallout myCallout1
Done
> set policy httpCallout myCallout1 -IPAddress 10.102.3.95 -port 80 -returnType TEXT -hostExpr
""10.102.3.95"" -urlStemExpr ""/cgi-bin/check_clnt_from_database.pl"" -headers Request1
("Callout Request") -parameters cip(CLIENT.IP.SRC) -resultExpr "HTTP.RES.BODY(100)"
Done
> add responder policy Pol1 "HTTP.REQ.HEADER("Request1").EQ("Callout Request").NOT &&
SYS.HTTP_CALLOUT(myCallout1).CONTAINS("IP Matched")" RESET
Done
> bind responder global Pol1 100 END -type OVERRIDE
Done
> add policy httpCallout myCallout2
Done
> set policy httpCallout myCallout2 -IPAddress 10.102.3.96 -port 80 -returnType TEXT -hostExpr
""10.102.3.96"" -urlStemExpr ""/cgi-bin/check_clnt_location_from_database.pl"" -headers Request2
("Callout Request") -parameters cip(CLIENT.IP.SRC) -resultExpr "HTTP.RES.BODY(200)"
Done
> add responder policy Pol2 "HTTP.REQ.HEADER("Request2").EQ("Callout Request").NOT &&
HTTP.REQ.HEADER("Request1").EQ("Callout Request") && SYS.HTTP_CALLOUT(myCallout2).CONTAINS
("APAC")" RESET
Done
> bind responder global Pol2 110 END -type OVERRIDE
Done
<!--NeedCopy-->
Partager
Partager
Dans cet article
This Preview product documentation is Cloud Software Group Confidential.
You agree to hold this documentation confidential pursuant to the terms of your Cloud Software Group Beta/Tech Preview Agreement.
The development, release and timing of any features or functionality described in the Preview documentation remains at our sole discretion and are subject to change without notice or consultation.
The documentation is for informational purposes only and is not a commitment, promise or legal obligation to deliver any material, code or functionality and should not be relied upon in making Cloud Software Group product purchase decisions.
If you do not agree, select I DO NOT AGREE to exit.