【问题标题】:JWT JAAS - how to get the JWT in WebSocket header?JWT JAAS - 如何在 WebSocket 标头中获取 JWT?
【发布时间】:2015-09-05 09:32:10
【问题描述】:
我正在编写一个自定义 JAAS 模块来使用 JSON Web 令牌 (JWT) 对用户进行身份验证。用户通过 WebSockets 连接到第 3 方应用程序,该应用程序支持自定义 JAAS 模块。
我不知道如何从应用程序中检索 JWT 令牌。它将作为标头传递,但我不知道如何使用 JAAS API 检索它。
我当然可以访问客户端传递的所有内容并使用它来进行身份验证吗?我在想应该有某种方式来检索具有对应用程序的请求访问权限的主题上的任意标头?
【问题讨论】:
标签:
java
authentication
websocket
jaas
jwt
【解决方案1】:
所以在花更多时间在 JAAS 上之后,我的问题是这样解决的:
JAAS不允许允许我访问包含 JWT 的(任意)协议标头。但是,请注意我在 WSS 上使用 MQTT,并且 MQTT CONNECT 数据包具有“用户名”和“密码”字段。所以 JWT 可以作为密码传递(关于这看起来很骇人听闻,身份验证令牌 是 一种密码)。 JAAS 提供了一个 API 来从请求身份验证的用户那里检索密码,而不管用于发送用户身份验证数据的底层协议是什么。