ADC

Anwendungsfall: Benutzerberechtigungen zwischenspeichern

In diesem Anwendungsfall müssen Benutzerberechtigungen (GOLD, SILVER usw.) von einem externen Webdienst abgerufen werden.

Um diesen Anwendungsfall zu erreichen, führen Sie die folgenden Operationen aus

Erstellen Sie ein HTTP-Callout, um die Benutzerberechtigungen vom externen Webdienst abzurufen.

add policy httpcallout <name> [-IPAddress <ip_addr|ipv6_addr>] [-port <port>] [-vServer <string>] [-returnType <returnType>] [-httpMethod (GET | POST )] [-hostExpr <string>] [-urlStemExpr <string>] [-headers <name(value)> ...] [-parameters <name(value)> ...] [-bodyExpr <string>][-fullReqExpr <string>] [-scheme ( http | https )] [-resultExpr <string>] [-cacheForSecs <secs>] [-comment <string>]

add policy httpcallout get_user_privilege -ipaddress 10.217.193.84 -port 80 -returnType text -httpMethod GET -hostExpr '"/get_user_privilege"' -resultExpr 'http.res.body(5)'
<!--NeedCopy-->

Speichern Sie die Berechtigungen in einer Variablen.

add ns variable <name> -type <string> [-scope ( global | transaction )][-ifFull ( undef | lru )] [-ifValueTooBig ( undef | truncate )][-ifNoValue ( undef | init )] [-init <string>] [-expires <positive_integer>] [-comment <string>]

add ns variable user_privilege_map -type map(text(15),text(10),10000) -expires 1200

add ns assignment set_user_privilege -variable $user_privilege_map[client.ip.src] -set sys.http_callout(get_user_privilege)
<!--NeedCopy-->

Erstellen Sie eine Richtlinie, um zu überprüfen, ob bereits ein zwischengespeicherter Eintrag für die IP-Adresse des Clients vorhanden ist. Andernfalls wird das HTTP-Callout aufgerufen, um einen Zuordnungseintrag für den Client festzulegen.

add cmp policy <name> -rule <expression> -resAction <string>

add cmp policy set_user_privilege_pol -rule $user_privilege_map.valueExists(client.ip.src).not -resAction set_user_privilege>
<!--NeedCopy-->

Erstellen Sie eine Richtlinie, die komprimiert wird, wenn der zwischengespeicherte Berechtigungseintrag für den Client GOLD lautet.

add cmp policy <name> -rule <expression> -resAction <string>

add cmp policy compress_if_gold_privilege_pol -rule '$user_privilege_map[client.ip.src].eq("GOLD")' -resAction compress
<!--NeedCopy-->

Binden Sie die Komprimierungsrichtlinien global.

bind cmp global <policyName> [-priority <positive_integer>] [-state (ENABLED | DISABLED )] [-gotoPriorityExpression <expression>] [-type <type>] [-invoke (<labelType> <labelName>) ]

bind cmp global set_user_privilege_pol -priority 10 NEXT

bind cmp global compress_if_gold_privilege_pol -priority 20 END
<!--NeedCopy-->
Anwendungsfall: Benutzerberechtigungen zwischenspeichern