@Override public HttpHandler wrap(HttpHandler handler) { AccessControlListHandler res = new AccessControlListHandler(handler, attribute); for(AclMatch match: peerMatches) { if(match.deny) { res.addDeny(match.pattern.pattern()); } else { res.addAllow(match.pattern.pattern()); } } res.setDefaultAllow(defaultAllow); return res; } }
/** * Adds an allowed user agent peer to the ACL list * <p> * User agent may be given as regex * * @param pattern The pattern to add to the ACL */ public AccessControlListHandler addAllow(final String pattern) { return addRule(pattern, false); }
/** * Returns a new handler that can allow or deny access to a resource based an at attribute of the exchange * * @param next The next handler in the chain * @param defaultAllow Determine if a non-matching user agent will be allowed by default * @return A new user agent access control handler */ public static final AccessControlListHandler acl(final HttpHandler next, boolean defaultAllow, ExchangeAttribute attribute) { return new AccessControlListHandler(next, attribute).setDefaultAllow(defaultAllow); }
@Override public void handleRequest(final HttpServerExchange exchange) throws Exception { String attribute = this.attribute.readAttribute(exchange); if (isAllowed(attribute)) { next.handleRequest(exchange); } else { exchange.setStatusCode(StatusCodes.FORBIDDEN); exchange.endExchange(); } }
/** * Returns a new handler that can allow or deny access to a resource based an at attribute of the exchange * * @param next The next handler in the chain * @param defaultAllow Determine if a non-matching user agent will be allowed by default * @return A new user agent access control handler */ public static final AccessControlListHandler acl(final HttpHandler next, boolean defaultAllow, ExchangeAttribute attribute) { return new AccessControlListHandler(next, attribute).setDefaultAllow(defaultAllow); }
@Override public void handleRequest(final HttpServerExchange exchange) throws Exception { String attribute = this.attribute.readAttribute(exchange); if (isAllowed(attribute)) { next.handleRequest(exchange); } else { exchange.setStatusCode(StatusCodes.FORBIDDEN); exchange.endExchange(); } }
@Override public HttpHandler wrap(HttpHandler handler) { AccessControlListHandler res = new AccessControlListHandler(handler, attribute); for(AclMatch match: peerMatches) { if(match.deny) { res.addDeny(match.pattern.pattern()); } else { res.addAllow(match.pattern.pattern()); } } res.setDefaultAllow(defaultAllow); return res; } }
/** * Returns a new handler that can allow or deny access to a resource based an at attribute of the exchange * * @param next The next handler in the chain * @param defaultAllow Determine if a non-matching user agent will be allowed by default * @return A new user agent access control handler */ public static final AccessControlListHandler acl(final HttpHandler next, boolean defaultAllow, ExchangeAttribute attribute) { return new AccessControlListHandler(next, attribute).setDefaultAllow(defaultAllow); }
/** * Adds an denied user agent to the ACL list * <p> * User agent may be given as regex * * @param pattern The user agent to add to the ACL */ public AccessControlListHandler addDeny(final String pattern) { return addRule(pattern, true); }
@Override public void handleRequest(final HttpServerExchange exchange) throws Exception { String attribute = this.attribute.readAttribute(exchange); if (isAllowed(attribute)) { next.handleRequest(exchange); } else { exchange.setStatusCode(StatusCodes.FORBIDDEN); exchange.endExchange(); } }
@Override public HttpHandler wrap(HttpHandler handler) { AccessControlListHandler res = new AccessControlListHandler(handler, attribute); for(AclMatch match: peerMatches) { if(match.deny) { res.addDeny(match.pattern.pattern()); } else { res.addAllow(match.pattern.pattern()); } } res.setDefaultAllow(defaultAllow); return res; } }
/** * Adds an allowed user agent peer to the ACL list * <p> * User agent may be given as regex * * @param pattern The pattern to add to the ACL */ public AccessControlListHandler addAllow(final String pattern) { return addRule(pattern, false); }
/** * Adds an denied user agent to the ACL list * <p> * User agent may be given as regex * * @param pattern The user agent to add to the ACL */ public AccessControlListHandler addDeny(final String pattern) { return addRule(pattern, true); }
/** * Adds an allowed user agent peer to the ACL list * <p> * User agent may be given as regex * * @param pattern The pattern to add to the ACL */ public AccessControlListHandler addAllow(final String pattern) { return addRule(pattern, false); }
/** * Adds an denied user agent to the ACL list * <p> * User agent may be given as regex * * @param pattern The user agent to add to the ACL */ public AccessControlListHandler addDeny(final String pattern) { return addRule(pattern, true); }