[英]Accessing Akka HTTP client certificate for the current connection
我是当前Apache Tomcat用户设计的基于Akka HTTP的替代品,用于使用客户端证书进行身份验证和授权的HTTPS Web服务。 使用Tomcat我习惯于使用servlet请求属性检索客户端X509Certificate
request.getAttribute( “javax.servlet.request.X509Certificate”)
我需要证书在处理程序内为select路由进行一些额外的授权检查。 如何使用Akka HTTP 10.0.x以这种方式检索客户端证书?
您需要通过服务器的配置设置启用带有TLS会话信息的装饰请求:
akka.http.server.parsing.tls-session-info-header = on
然后使用合成头akka.http.scaladsl.model.headers.Tls-Session-Info
提取特定请求akka.http.scaladsl.model.headers.Tls-Session-Info
如下所示:
headerValueByType[`Tls-Session-Info`]() { sessionInfo =>
val sslSession = sessionInfo.getSession()
sslSession.getPeerCertificates
... etc ...
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.