访问当前连接的 Akka HTTP 客户端证书
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 session 信息启用修饰请求:
akka.http.server.parsing.tls-session-info-header = on
然后使用合成 header akka.http.scaladsl.model.headers.Tls-Session-Info
提取特定请求的信息,如下所示:
headerValueByType[`Tls-Session-Info`]() { sessionInfo =>
val sslSession = sessionInfo.getSession()
sslSession.getPeerCertificates
... etc ...
我是当前的 Apache Tomcat 用户,正在设计基于 Akka HTTP 的替代 HTTPS Web 服务,该服务使用客户端证书进行身份验证和授权。使用 Tomcat 我习惯于检索带有 servlet 请求属性的客户端 X509Certificate
request.getAttribute("javax.servlet.request.X509Certificate")
我需要证书在 select 路由的处理程序中进行一些额外的授权检查。如何使用 Akka HTTP 10 以这种方式检索客户端证书。0.x?
您需要通过服务器的配置设置使用 TLS session 信息启用修饰请求:
akka.http.server.parsing.tls-session-info-header = on
然后使用合成 header akka.http.scaladsl.model.headers.Tls-Session-Info
提取特定请求的信息,如下所示:
headerValueByType[`Tls-Session-Info`]() { sessionInfo =>
val sslSession = sessionInfo.getSession()
sslSession.getPeerCertificates
... etc ...