Permalink
Switch branches/tags
Nothing to show
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
59 lines (50 sloc) 1.41 KB
package groovy
import com.netflix.zuul.ZuulFilter
import com.netflix.zuul.context.RequestContext
import com.netflix.zuul.util.HTTPRequestUtils
import java.util.logging.Logger
class ABTestingFilterBean extends ZuulFilter {
private static Logger logger = Logger.getLogger( ABTestingFilterBean.class.getName() );
@Override
String filterType() {
return "pre"
}
@Override
int filterOrder() {
return 99
}
@Override
boolean shouldFilter() {
if( !RequestContext.currentContext.getRequest().getRequestURI().matches("/sales.*") )
{
//Won't filter this request URL
false
}
else
{
String caller = new HTTPRequestUtils().getHeaderValue("baggage-forwarded-for");
logger.info("Caller IP address is " + caller)
int lastDigit = caller.reverse().take(1) as Integer
if( lastDigit % 2 == 0 )
{
//Even IP address won't be filtered
false
}
else
{
//Odd IP address will be filtered
true
}
}
}
@Override
Object run() {
println("Running filter")
RequestContext.currentContext.routeHost = new URL("http://salesv2:8080")
}
}
beans {
abTestingFilterBean(ABTestingFilterBean) {
new groovy.ABTestingFilterBean();
}
}