如何结合Spring Security和js sockjs-client

时间:2016-07-29 15:20:08

标签: java spring spring-security spring-websocket sockjs

我想通过sockjs-client创建一个Spring Server和一个Broswer javascript客户端连接。应通过Spring Security确保连接。

我有以下两难困境:

  1. Spring Security似乎假设websocket握手是通过经过身份验证的http会话(例如JSESSIONID cookie set,登录发生)发生的。

  2. 然而,
  3. sockjs-client似乎对开发人员施加了限制,即必须使用经过身份验证的http会话(请参阅https://github.com/sockjs/sockjs-client/issues/196),并以任何方式执行此操作。

  4. 我对这种困境的评价是否正确,是否有任何明显的解决方案来实现带有websockets的弹簧服务器的安全性,以便sockjs-client可以安全连接?

    如果用于创建经过身份验证的HttpSession,建议的在GET / info请求中传递任何身份验证令牌的解决方案似乎都是为了规避SockJS安全限制。

    这似乎是几个人问题的基础,例如:

    我看到了3种可供选择的方式:

    1. 不要使用SockJs,只能使用本机Websocket
    2. 通过query-param Token在经过身份验证的Http Session上使用SockJS,并牺牲一些安全性
    3. 通过未经身份验证的http连接进行连接,并为spring-websockets实现自定义身份验证处理(可能基于春季会话)

0 个答案:

没有答案