Spring Boot - 从HTTP请求中读取x509客户端证书

时间:2016-09-13 13:13:39

标签: java spring certificate x509

如何从客户端收到x509证书?我正在使用Java的Spring-Boot-Framework和嵌入式tomcat。对于原型设计,我使用Java SE配置了它:

  

HttpsExchange httpsExchange =(HttpsExchange)httpReq;

     

name = httpsExchange.getSSLSession()。getPeerPrincipal()。getName();

用户在这里给我一个参考(下面)

@RequestMapping(value = "/grab")
public void grabCert(HttpServletRequest servletRequest) {
    Certificate[] certs = 
            (Certificate[]) servletRequest.getAttribute("javax.servlet.request.X509Certificate");
}

但我无法获得一些证书!也许是因为我正在使用tomcat,它正在处理所有SSL-Connections。所以没有证书收到我的申请。我必须做什么才能获得客户证书?客户端证书用于获取https连接。我需要证书主题的一些信息。感谢。

1 个答案:

答案 0 :(得分:3)

你必须从HttpServletRequest获得它。

您可以查看此问题的答案:How to get the certificate into the X509 filter (Spring Security)?

  

不,你不能这样做。你需要从HttpServletRequest中获取它:

X509Certificate[] certs = (X509Certificate[])HttpServletRequest.getAttribute("javax.servlet.request.X509Certificate");

这是我试图指出的帖子,由甘道夫撰写。

这是原来的question