package org.openstack.atlas.adapter.helpers; import org.openstack.atlas.service.domain.entities.LoadBalancerAlgorithm; public class StmConstants { public static final LoadBalancerAlgorithm DEFAULT_ALGORITHM = LoadBalancerAlgorithm.RANDOM; public static final String RATE_LIMIT_HTTP = "rate_limit_http"; public static final String RATE_LIMIT_NON_HTTP = "rate_limit_nonhttp"; public static final String CONTENT_CACHING = "content_caching"; public static final String XFF = "add_x_forwarded_for_header"; public static final String XFP = "add_x_forwarded_proto"; public static final String XFPORT = "add_x_forwarded_port"; public static final String HTTPS_REDIRECT = "force_https_redirect"; public static final String SOURCE_IP = "ip"; public static final String HTTP_COOKIE = "cookie"; public static final String SSL_ID = "ssl"; public static final String X_FORWARDED_FOR_SCRIPT = "http.addHeader( \"X-Forwarded-For\", request.getRemoteIP() );\n" + "http.addHeader( \"X-Forwarded-Port\", request.getLocalPort() );"; public static final String X_FORWARDED_PROTO_SCRIPT = "$vserver = connection.getVirtualServer();\n" + "if( string.endsWith( $vserver, \"_S\") ) {\n" + "        http.addHeader( \"X-Forwarded-Proto\", \"https\" );\n" + "} else {\n" + "        http.addHeader( \"X-Forwarded-Proto\", \"http\" );\n" + "}"; public static final String X_FORWARDED_PORT_SCRIPT = "http.addHeader( \"X-Forwarded-Port\", request.getLocalPort() );"; public static final String HTTP_RATE_LIMIT_SCRIPT = "$load_balancer = connection.getVirtualServer();\n" + "$rate_html = \"<html><head></head><body><b>Error: 503 - Service Unavailable!</body></html>\";\n" + "$error_html = \"<html><head></head><body><b>Error: 500 - Internal Server Error!</body></html>\";\n" + "\n" + "$rate = rate.use.noQueue( $load_balancer );\n" + "\n" + "if ( $rate == 0 ) {\n" + " \n" + " http.sendResponse( \"503 Service Unavailable\",\n" + " \"text/html\", $rate_html,\n" + " \"Retry-After: 30\" );\n" + " connection.discard();\n" + " \n" + "} else if ( $rate < 0 ) {\n" + " \n" + " http.sendResponse( \"500 Internal Server Error\",\n" + " \"text/html\", $error_html, \"\" );\n" + " log.error( \"Rate class: \" . $load_balancer . \" does not exist!\" );\n" + " connection.discard();\n" + " \n" + "} else {\n" + " \n" + " rate.use($load_balancer);\n" + " \n" + "}"; public static final String NON_HTTP_RATE_LIMIT_SCRIPT = "$load_balancer = connection.getVirtualServer();\n" + "\n" + "$rate = rate.use.noQueue( $load_balancer );\n" + "\n" + "if ( $rate == 0 ) {\n" + "\n" + " connection.discard();\n" + " \n" + "} else if ( $rate < 0 ) {\n" + "\n" + " log.error( \"Rate class: \" . $load_balancer . \" does not exist!\" );\n" + " connection.discard();\n" + " \n" + "} else {\n" + " \n" + " rate.use( $load_balancer );\n" + " \n" + "}"; }