首页 > 解决方案 > 有没有办法在浏览器发送的tomcat过滤器中获取所有x509证书属性?

问题描述

我的要求是使用 x509 客户端证书而不是用户名和密码进行身份验证。我的应用程序中有两种身份验证模式。

  1. 当地的
  2. 外部(半径)

我可以通过从 HTTPrequest 获取它来验证其中一个 tomcat 过滤器中的证书,从而在本地模式下验证证书

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

对于外部身份验证,我需要使用 EAP_TLS 协议将收到的证书发送到外部服务器。为了实现这一点,我需要 apache 提供给定 x509 证书的以下信息。

TLS certificate, ( This is available in httpRequest)
TLS client_key_exchange,
TLS certificate_verify,
TLS change_cipher_spec,
TLS finished  

我的实际工作流程如下:

浏览器--> x509certificate-->Tomcat(Spring)-->X509certificate(EAP -TLS)->Radius服务器

当 x509certificate 放置在服务器中时,我可以使用 EAP_TLS 与 Radius 通信。

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

标签: javatomcatx509certificateclient-certificates

解决方案


推荐阅读