加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

spring – 为SockJS提供auth标头

发布时间:2020-12-15 01:29:42 所属栏目:大数据 来源:网络整理
导读:我有一个Spring MVC服务器,它提供了一堆REST端点以及一个websocket端点.除登录端点之外的所有内容都需要身份验我正在使用JWT来验证来自客户端的请求. 当用户登录时,我正在返回包含JWT令牌的X-AUTH-TOKEN标头.然后,在每个请求到服务器的同一个头中传递此令牌.

我有一个Spring MVC服务器,它提供了一堆REST端点以及一个websocket端点.除登录端点之外的所有内容都需要身份验我正在使用JWT来验证来自客户端的请求.

当用户登录时,我正在返回包含JWT令牌的X-AUTH-TOKEN标头.然后,在每个请求到服务器的同一个头中传递此令牌.这一切都适用于REST端点,但我无法弄清楚如何在websocket上执行此操作.

我正在使用SockJS,当我打开连接时:

var socket = new SockJS('/socket/updates',null,{});

这会导致对/ socket / updates / info?t = xxx的GET请求返回403(因为默认情况下一切都需要auth).

理想情况下,我只是在SockJS发出的任何XHR请求上发送我的X-AUTH-TOKEN标头,但我看不到添加标头查看API的任何方法.

最糟糕的情况我可以改变SockJS这样做,但我想知道这个功能是否被故意遗漏了?我知道SockJS出于安全原因不支持cookie,但这不是我想要做的.

此外,为了进行测试,我确实允许信息端点具有匿名访问权限,然后在一堆其他端点上使用403 – 只需在这些请求中传递auth详细信息而不是在我的服务器安全性中挖洞,感觉更优雅.

任何帮助赞赏.

干杯

最佳答案
您无法从SockJS设置标头.不是因为SockJS没有此功能,而是因为浏览器制造商不会将此API公开给Javascript.看到:

https://github.com/sockjs/sockjs-client/issues/196

有关解决方法,请参阅JSON Web Token (JWT) with Spring based SockJS / STOMP Web Socket.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读