class Authorizer implements LoggableResource {

    public Future<Boolean> authorize(final HttpServerRequest request) {
        Future<Boolean> future = Future.future();

        handleUserUriRequest(request, future);

        if (!future.isComplete()) {
            roleAuthorizer.handleIsAuthorized(request, future);
        }

        if (!future.isComplete()) {
            handleConfigurationUriRequest(request, future, aclUriPattern, roleAuthorizer);
        }

        if (!future.isComplete()) {
            handleConfigurationUriRequest(request, future, roleMapperUriPattern, roleMapper);
        }

        if (!future.isComplete()) {
            future.complete(Boolean.TRUE);
        }

        return future;
    }

    public  Authorizer(Vertx vertx, final ResourceStorage storage, String securityRoot, String rolePattern);
    public  Authorizer(Vertx vertx, final ResourceStorage storage, String securityRoot, String rolePattern, String rolePrefix, Map<String, Object> properties);

}