@Override
  public FilterDirector handleRequest(
      HttpServletRequest request, ReadableHttpServletResponse response) {
    FilterDirector filterDirector = new FilterDirectorImpl();
    filterDirector.setResponseStatus(HttpStatusCode.UNAUTHORIZED);
    filterDirector.setFilterAction(FilterAction.RETURN);

    final String uri = request.getRequestURI();
    LOG.debug("Uri is " + uri);
    if (uriMatcher.isUriOnWhiteList(uri)) {
      filterDirector.setFilterAction(FilterAction.PASS);
      LOG.debug("Uri is on whitelist!  Letting request pass through.");
    } else {
      filterDirector = this.authenticate(request);
    }

    return filterDirector;
  }