class RsrcCtxWrapper implements ResourceContext {

    @Override
    public void authenticate() {
        try {
            ctx.authenticate(optionalAuth);
            // For ZTS, prevent authentication with mTLS restricted certs
            final Principal principal = principal();
            if (principal != null && principal.getMtlsRestricted()) {
                LOG.error("authenticate: certificate is mTLS restricted");
                throw new com.yahoo.athenz.common.server.rest.ResourceException(com.yahoo.athenz.common.server.rest.ResourceException.UNAUTHORIZED, "certificate is mTLS restricted");
            }
        } catch (com.yahoo.athenz.common.server.rest.ResourceException restExc) {
            throwZtsException(restExc);
        }
    }

    public  RsrcCtxWrapper(HttpServletRequest request, HttpServletResponse response,
            Http.AuthorityList authList,  boolean optionalAuth, Authorizer authorizer,
            Metric metric, Object timerMetric, String apiName);

}