如何将证书放入X509过滤器(Spring Security)?

ima*_*jol 6 spring spring-security x509certificate

我需要提取更多信息,而不仅仅是证书的 CN。目前,我只获得标准 UserDetails loadUserByUsername(String arg),其中 arg 是证书的 CN。我需要获取 X509Certificate 对象。是否可以?

在 spring security xml 文件上:

<x509 subject-principal-regex="CN=(.*?),"  user-service-ref="myUserDetailsService" />
Run Code Online (Sandbox Code Playgroud)

Gan*_*alf 6

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

X509Certificate[] certs = (X509Certificate[])HttpServletRequest.getAttribute("javax.servlet.request.X509Certificate");
Run Code Online (Sandbox Code Playgroud)