/** * Create a {@link Header} condition that matches against both header name and values. * <p> * The given name and value patterns may be parameterized: * <p> * <code> * Header.matches("Accept-Encoding", "{encoding}")<br> * Header.matches("Accept-{type}", "{value}")<br> * ... * </code> * <p> * * @see {@link ConfigurationRuleParameterBuilder#where(String) {@link HttpServletRequest#getHeader(String)} * * @param name {@link ParameterizedPattern} matching the header name. * @param value {@link ParameterizedPattern} matching the header value. */ public static Header matches(final String name, final String value) { return new Header(name, value) { @Override public String toString() { return "Header.matches(\"" + name + "\", \"" + value + "\")"; } }; }
@Override @SuppressWarnings("unchecked") public boolean evaluateHttp(final HttpServletRewrite event, final EvaluationContext context) { HttpServletRequest request = event.getRequest(); Enumeration<String> headerNames = request.getHeaderNames(); if (headerNames != null) { for (String header : Collections.list(headerNames)) { if (name.parse(header).submit(event, context) && matchesValue(event, context, request, header)) { return true; } } } return false; }
@Override @SuppressWarnings("unchecked") public boolean evaluateHttp(final HttpServletRewrite event, final EvaluationContext context) { HttpServletRequest request = event.getRequest(); Enumeration<String> headerNames = request.getHeaderNames(); if (headerNames != null) { for (String header : Collections.list(headerNames)) { if (name.parse(header).submit(event, context) && matchesValue(event, context, request, header)) { return true; } } } return false; }
/** * Create a {@link Header} condition that matches against both header name and values. * <p> * The given name and value patterns may be parameterized: * <p> * <code> * Header.matches("Accept-Encoding", "{encoding}")<br> * Header.matches("Accept-{type}", "{value}")<br> * ... * </code> * <p> * * @see {@link ConfigurationRuleParameterBuilder#where(String) {@link HttpServletRequest#getHeader(String)} * * @param name {@link ParameterizedPattern} matching the header name. * @param value {@link ParameterizedPattern} matching the header value. */ public static Header matches(final String name, final String value) { return new Header(name, value) { @Override public String toString() { return "Header.matches(\"" + name + "\", \"" + value + "\")"; } }; }
@Override @SuppressWarnings("unchecked") public boolean evaluateHttp(final HttpServletRewrite event, final EvaluationContext context) { HttpServletRequest request = event.getRequest(); Enumeration<String> headerNames = request.getHeaderNames(); if (headerNames != null) { for (String header : Collections.list(headerNames)) { if (name.parse(header).submit(event, context) && matchesValue(event, context, request, header)) { return true; } } } return false; }
/** * Create a {@link Header} condition that matches against both header name and values. * <p> * The given name and value patterns may be parameterized: * <p> * <code> * Header.matches("Accept-Encoding", "{encoding}")<br> * Header.matches("Accept-{type}", "{value}")<br> * ... * </code> * <p> * * @see {@link ConfigurationRuleParameterBuilder#where(String) {@link HttpServletRequest#getHeader(String)} * * @param name {@link ParameterizedPattern} matching the header name. * @param value {@link ParameterizedPattern} matching the header value. */ public static Header matches(final String name, final String value) { return new Header(name, value) { @Override public String toString() { return "Header.matches(\"" + name + "\", \"" + value + "\")"; } }; }
/** * Create a {@link Header} condition that matches only against the existence of a header with a name matching the * given pattern. The header value is ignored. * <p> * The given name pattern may be parameterized: * <p> * <code> * Header.exists("Accept-Encoding")<br> * Header.exists("Accept-{acceptType}")<br> * Header.exists("{anything}")<br> * ... * </code> * <p> * * @see {@link ConfigurationRuleParameterBuilder#where(String) {@link HttpServletRequest#getHeader(String)} * * @param name {@link ParameterizedPattern} matching the header name. */ public static Header exists(final String name) { return new Header(name, "{" + Header.class.getName() + "_value}") { @Override public String toString() { return "Header.exists(\"" + name + "\")"; } }; }
/** * Create a {@link Header} condition that matches only against the existence of a header with a name matching the * given pattern. The header value is ignored. * <p> * The given name pattern may be parameterized: * <p> * <code> * Header.exists("Accept-Encoding")<br> * Header.exists("Accept-{acceptType}")<br> * Header.exists("{anything}")<br> * ... * </code> * <p> * * @see {@link ConfigurationRuleParameterBuilder#where(String) {@link HttpServletRequest#getHeader(String)} * * @param name {@link ParameterizedPattern} matching the header name. */ public static Header exists(final String name) { return new Header(name, "{" + Header.class.getName() + "_value}") { @Override public String toString() { return "Header.exists(\"" + name + "\")"; } }; }
/** * Create a {@link Header} condition that matches only against the existence of a header with a name matching the * given pattern. The header value is ignored. * <p> * The given name pattern may be parameterized: * <p> * <code> * Header.exists("Accept-Encoding")<br> * Header.exists("Accept-{acceptType}")<br> * Header.exists("{anything}")<br> * ... * </code> * <p> * * @see {@link ConfigurationRuleParameterBuilder#where(String) {@link HttpServletRequest#getHeader(String)} * * @param name {@link ParameterizedPattern} matching the header name. */ public static Header exists(final String name) { return new Header(name, "{" + Header.class.getName() + "_value}") { @Override public String toString() { return "Header.exists(\"" + name + "\")"; } }; }
/** * Create a {@link Header} condition that matches only against the existence of a header with value matching the * given pattern. The header name is ignored. * <p> * The given value pattern may be parameterized: * <p> * <code> * Header.valueExists("application/xml")<br> * Header.valueExists("application/{type}")<br> * Header.valueExists("{anything}")<br> * ... * </code> * <p> * * @see {@link ConfigurationRuleParameterBuilder#where(String) {@link HttpServletRequest#getHeader(String)} * * @param value {@link ParameterizedPattern} matching the header value. */ public static Header valueExists(final String value) { return new Header("{" + Header.class.getName() + "_name}", value) { @Override public String toString() { return "Header.valueExists(\"" + value + "\")"; } }; }
/** * Create a {@link Header} condition that matches only against the existence of a header with value matching the * given pattern. The header name is ignored. * <p> * The given value pattern may be parameterized: * <p> * <code> * Header.valueExists("application/xml")<br> * Header.valueExists("application/{type}")<br> * Header.valueExists("{anything}")<br> * ... * </code> * <p> * * @see {@link ConfigurationRuleParameterBuilder#where(String) {@link HttpServletRequest#getHeader(String)} * * @param value {@link ParameterizedPattern} matching the header value. */ public static Header valueExists(final String value) { return new Header("{" + Header.class.getName() + "_name}", value) { @Override public String toString() { return "Header.valueExists(\"" + value + "\")"; } }; }
/** * Create a {@link Header} condition that matches only against the existence of a header with value matching the * given pattern. The header name is ignored. * <p> * The given value pattern may be parameterized: * <p> * <code> * Header.valueExists("application/xml")<br> * Header.valueExists("application/{type}")<br> * Header.valueExists("{anything}")<br> * ... * </code> * <p> * * @see {@link ConfigurationRuleParameterBuilder#where(String) {@link HttpServletRequest#getHeader(String)} * * @param value {@link ParameterizedPattern} matching the header value. */ public static Header valueExists(final String value) { return new Header("{" + Header.class.getName() + "_name}", value) { @Override public String toString() { return "Header.valueExists(\"" + value + "\")"; } }; }