Spring Session、Websocket、REST 令牌安全

Spring Session, Websocket, REST Token Security

我们目前有一个 Spring 应用程序,其中包含一个 REST API 和 Websocket 代理端点以获取数据库更改的实时更新。

我们已成功迁移到 Spring Session 项目,该项目具有嵌入式 redis 服务器,该服务器通过基本身份验证进行身份验证,并且 session id 可用于后续作为 x-auth-token header.

请求

我们遇到的问题是保护 Websocket。在 Angular 上,我们有一个围绕 stomp.js / sockjs 库的包装器指令,但我们似乎无法弄清楚如何在 Websocket 升级请求上设置 x-auth-token header .

我们是不是做错了什么?处理这种安全方案的推荐方法是什么?

堆栈:

看起来 JS Websocket API 不允许在初始握手和升级请求上设置 HTTP headers。

正确的方案是在 CONNECT 帧上发送身份验证令牌并在服务器端相应地处理它。所以现在我们已经迁移到浏览器 cookie 会话,直到我们可以在服务器端找到合适的实现。