我们正在使用netty和Spring RestController为我们的应用程序建立一个相互的TLS连接。在TLS握手之后,当RestController接收到一个https请求(作为同一个TLS会话的一部分)时,我们如何获得客户端的SSL证书?
这是验证证书的subjectAltName字段中的某些信息所必需的。
使用的React器版本:一月二十三日
其他相关库版本(例如,netty、...):
- Spring启动启动器webflux:2.7.4
- Spring启动器:2.7.4()
- Spring启动器-json:2.7.4
- Spring启动器电抗器网:2.7.4
在restcontroller的路由方法中,我们需要通道相关信息
1条答案
按热度按时间enyaitl31#
您可以尝试从将
ServerWebExchange
传递给控制器方法开始。然后获取
ServerHttpRequest
并调用getSslInfo()
。从getSslInfo()
文档:从
SslInfo
可以获得X509Certificate[]
如果您希望将此逻辑放在请求到达控制器之前**,则可以实现自己的
WebFilter
并在其中写入所需的逻辑WebFilter
方法:另外,据我所知,Spring Security有一些验证X509证书的特性。