程序员最近都爱上了这个网站  程序员们快来瞅瞅吧!  it98k网:it98k.com

本站消息

站长简介/公众号

  出租广告位,需要合作请联系站长


+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

暂无数据

如何在 HTTP 请求中接收客户端证书?

发布于2021-11-13 07:48     阅读(632)     评论(0)     点赞(25)     收藏(5)


我已生成自签名 SSL 证书并提供给客户端。每次客户端发送 REST 请求时,我都会在服务器上进行客户端证书认证。我需要在java代码中获取证书的数据。我怎么做?我用过球衣框架。


解决方案


您可以使用 @Context Annotation 来提取 HttpServletRequest。

@POST
@Path("/getHelloWorld")
@Consumes(MediaType.APPLICATION_JSON)
public String helloWorld(@Context HttpServletRequest httpRequest) {
    X509Certificate[] certs = (X509Certificate[]) httpRequest.getAttribute("javax.servlet.request.X509Certificate");
    if (null != certs && certs.length > 0) {
        return <<YOUR CODE HERE>>;
    }
    return <<YOUR CODE HERE>>;
} 

假设您已在 Web 服务器上启用客户端身份验证。用于tomcat服务器

< Connector SSLEnabled="true" acceptCount="100" clientAuth="true"
disableUploadTimeout="true" enableLookups="false" maxThreads="25"
port="8443" keystoreFile="conf/keystore.jks" keystorePass="changeit"
truststoreFile="conf/truststore.ts" truststorePass="changeit"
protocol="org.apache.coyote.http11.Http11NioProtocol" scheme="https"
secure="true" sslProtocol="TLS" /> 


所属网站分类: 技术文章 > 问答

作者:黑洞官方问答小能手

链接:http://www.javaheidong.com/blog/article/316112/ed44922416a714489ff0/

来源:java黑洞网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

25 0
收藏该文
已收藏

评论内容:(最多支持255个字符)