Predefined scripts
Predefined scripts provides the syntax, usage, and examples of the predefined commands that are useful for writing scripts.
Predefined script | Description |
---|---|
INSERT_RANDOM_MESSAGE_ID_DEMO |
Inserts a 32-bit hex string into the HTTP header with a parameter "Message-ID". Note: You can use the script directly, without making any changes. |
GENERAL_REDIRECT_DEMO | FortiADC redirects HTTP requests to a set location. |
USE_REQUEST_HEADERS_in_OTHER_EVENTS | FortiADC uses a session ID to obtain data from that session. |
COMPARE_IP_ADDR_2_ADDR_GROUP_DEMO | FortiADC tries to find the client IP address in an internal list and returns the result. |
HTTP_2_HTTPS_REDIRECTION_FULL_URL | FortiADC redirects an HTTP request. |
REWRITE_HTTP_2_HTTPS_in_LOCATION | FortiADC changes an HTTP location given in an HTTP response with an HTTPS location. |
REWRITE_HTTPS_2_HTTP_in_LOCATION | FortiADC changes an HTTPS location given in an HTTP response with an HTTP location. |
REWRITE_HTTP_2_HTTPS_in_REFERER | FortiADC changes a HTTP referer given in an HTTP response with an HTTPS referer. |
REWRITE_HTTPS_2_HTTP_in_REFERER | FortiADC changes a HTTPS referer given in an HTTP response with an HTTP referer. |
HTTP_DATA_FETCH_SET_DEMO | FortiADC reads the body of every HTTP request, and can manipulate the data depending on settings. |
HTTP_DATA_FIND_REMOVE_REPLACE_DEMO | FortiADC reads the body of every HTTP request and will find and replace data in the body. |
MULTIPLE_SCRIPT_CONTROL_DEMO_1 | When multiple scripts are running, this will determine the priority of each script. |
MULTIPLE_SCRIPT_CONTROL_DEMO_2 | When multiple scripts are running, this will determine the priority of each script. |
HTTP_REQUEST_SEND | Triggered immediately before a request is sent to a server. |
AES_DIGEST_SIGN_2F_COMMANDS | Demonstrates how to use AES to encryption/decryption data and some tools to generate the digest. |
AUTH_COOKIE_BAKE | Allows you to retrieve the baked cookie and edit the cookie content. |
AUTH_EVENTS_n_COMMANDS | Used to get the information from authentication process. |
CLASS_SEARCH_n_MATCH | Demonstrates how to use the class_match and class_search utility function. |
CONTENT_ROUTING_by_URI | Routes to a pool member based on URI string matches. You should not use this script as is. Instead, copy it and customize the URI string matches and pool member names. |
CONTENT_ROUTING_by_X_FORWARDED_FOR | Routes to a pool member based on IP address in the X-Forwarded-For header. You should not use this script as is. Instead, copy it and customize the X-Fowarded-For header values and pool member names. |
COOKIE_COMMANDS | Demonstrate the cookie command to get the whole cookie in a table and how to remove/insert/set the cookie attribute. |
COOKIE_COMMANDS_USAGE | Demonstrate the sub-function to handle the cookie attribute "SameSite" and others. |
COOKIE_CRYPTO_COMMANDS | Used to perform cookie encryption/decryption on behalf of the real server. |
CUSTOMIZE_AUTH_KEY | Demonstrate how to customize the crypto key for authentication cookie. |
GEOIP_UTILITY | Used to fetch the GEO information country and possible province name of an IP address. |
HTTP_2_HTTPS_REDIRECTION | Redirects requests to the HTTPS site. You can use this script without changes |
HTTP_DATA_FETCH_SET_DEMO | "Collects data in HTTP request body or HTTP response body. In HTTP_REQUEST or HTTP_RESPONSE, you could collect specified size data with “size” in collect().In HTTP_DATA_REQUEST or HTTP_DATA_RESPONSE. You could print the data use “content”, calculate data length with “size”, and rewrite the data with “set”. Note: Do NOT use this script ""as is"". Instead, copy it and manipulate the collected data." |
IP_COMMANDS | Used to get various types IP Address and port number between client and server side. |
MANAGEMENT_COMMANDS | Allow you to disable/enable rest of the events from executing. |
OPTIONAL_CLIENT_AUTHENTICATION |
Performs optional client authentication. Note: Before using this script, you must have the following four parameters configured in the client-ssl-profile:
|
REDIRECTION_by_STATUS_CODE | Redirects requests based on the status code of server HTTP response (for example, a redirect to the mobile version of a site). Do NOT use this script "as is". Instead, copy it and customize the condition in the server HTTP response status code and the URL values. |
REDIRECTION_by_USER_AGENT | Redirects requests based on User Agent (for example, a redirect to the mobile version of a site). You should not use this script as is. Instead, copy it and customize the User Agent and URL values |
REWRITE_HOST_n_PATH | Rewrites the host and path in the HTTP request, for example, if the site is reorganized. You should not use this script as is. Instead, copy |
SNAT_COMMANDS |
Allows you to overwrite client source address to a specific IP for certain clients, also support IPv4toIPv6 or IPv6toIPv4 type. Note: Make sure the flag SOURCE ADDRESS is selected in the HTTP or HTTPS type of profile. |
SOCKOPT_COMMAND_USAGE | Allows user to customize the TCP_send buffer and TCP_receive buffer size. |
SPECIAL_CHARACTERS_HANDLING_DEMO | Shows how to use those "magic characters" which have special meanings when used in a certain pattern. The magic characters are ( ) . % + - * ? [ ] ^ $ |
SSL_EVENTS_n_COMMANDS | Demonstrate how to fetch the SSL certificate information and some of the SSL connection parameters between server and client side. |
TCP_EVENTS_n_COMMANDS | Demonstrate how to reject a TCP connection from a client in TCP_ACCEPTED event. |
URL_UTILITY_COMMANDS | Demonstrate how to use those url tools to encode/decode/parser/compare . |
UTILITY_FUNCTIONS_DEMO | Demonstrates how to use the basic string operations and random number/alphabet, time, MD5, SHA1, SHA2, BASE64, BASE32, table to string conversion, network to host conversion utility function. |