class X509RoleCertRequest extends X509CertRequest {

    boolean validateProxyUserUri(final String proxyUser) {

        // if we have not URI values then it's failure

        if (uris == null || uris.isEmpty()) {
            LOGGER.error("No URI fields available in the CSR");
            return false;
        }

        // we must only have a single spiffe uri in the list

        String proxyUserUri = null;
        for (String uri : uris) {

            if (!uri.toLowerCase().startsWith(ZTSConsts.ZTS_CERT_PROXY_USER_URI)) {
                continue;
            }

            if (proxyUserUri != null) {
                LOGGER.error("Multiple ProxyUser URIs in the CSR: {}/{}", uri, proxyUserUri);
                return false;
            }

            proxyUserUri = uri;
        }

        if (proxyUserUri == null) {
            LOGGER.error("No ProxyUserURI fields available in the CSR");
            return false;
        }

        final String uriCheck = ZTSConsts.ZTS_CERT_PROXY_USER_URI + proxyUser;
        if (!proxyUserUri.equals(uriCheck)) {
            LOGGER.error("ProxyUserURI mismatch: {} vs {}", proxyUserUri, uriCheck);
            return false;
        }

        return true;
    }

    public  X509RoleCertRequest(String csr);

}