我想通过sockjs-client创建一个Spring Server和一个Broswer javascript客户端连接。应通过Spring Security确保连接。
我有以下两难困境:
Spring Security似乎假设websocket握手是通过经过身份验证的http会话(例如JSESSIONID cookie set,登录发生)发生的。
sockjs-client似乎对开发人员施加了限制,即必须使用无经过身份验证的http会话(请参阅https://github.com/sockjs/sockjs-client/issues/196),并以任何方式执行此操作。
我对这种困境的评价是否正确,是否有任何明显的解决方案来实现带有websockets的弹簧服务器的安全性,以便sockjs-client可以安全连接?
如果用于创建经过身份验证的HttpSession,建议的在GET / info请求中传递任何身份验证令牌的解决方案似乎都是为了规避SockJS安全限制。
这似乎是几个人问题的基础,例如:
我看到了3种可供选择的方式: