class BearerAuth implements RequestAuthorizer {

   @Override
   public boolean isAuthorized(ChannelHandlerContext ctx, FullHttpRequest req) {
      Optional<String> token = OAuthUtil.extractTokenFromBearer(req);
      Pair<UUID, Integer> personWithTtl = null;
      if(token.isPresent()) {
         personWithTtl = dao.getPersonWithAccess(appId, token.get());
      }
      return token.isPresent() && personWithTtl != null;
   }

   public  BearerAuth(
         OAuthDAO dao,
         BridgeMetrics metrics,
         String appId
   );
   public  BearerAuth(
      OAuthDAO dao,
      BridgeMetrics metrics,
      String appId,
      Function<FullHttpRequest, FullHttpResponse> responseSupplier
   );

}