繁体   English   中英

如何使用 Quarkus 以两种方式 SSL 从 REST 服务中的请求中检索客户端证书

[英]How to retrieve the client certificate from a request in a REST service using Quarkus in two way SSL

遵循 Quarkus入门指南并启用 SSL ,我想做的下一步是获取客户端证书链。

我想做这样的事情:

    private X509Certificate extractCertificate(HttpServletRequest req) {
        X509Certificate[] certs = (X509Certificate[]) 
        req.getAttribute("javax.servlet.request.X509Certificate");
        if (null != certs && certs.length > 0) {
            return certs[0];
        }
        throw new RuntimeException("No X.509 client certificate found in request");
     }

按照入门指南注入 HttpServletRequest 并不直接,如本期所述

那么如何访问客户端证书链呢?

在做了一些研究之后,我最终得到了使用类io.vertx.core.http.HttpServerRequest的以下解决方案

private X509Certificate extractCertificate(HttpServerRequest req) throws SSLPeerUnverifiedException {
    X509Certificate[] certs = req.connection().peerCertificateChain();
    if (null != certs && certs.length > 0) {
        return certs[0];
    }
    throw new RuntimeException("No X.509 client certificate found in request");
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM