Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/387.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring security 具有spring安全性的Websocket身份验证_Spring Security_Websocket_Tomcat7 - Fatal编程技术网

Spring security 具有spring安全性的Websocket身份验证

Spring security 具有spring安全性的Websocket身份验证,spring-security,websocket,tomcat7,Spring Security,Websocket,Tomcat7,我正在Tomcat7上使用SpringMVC构建一个webapp,并使用SpringSecurity进行用户身份验证。除了标准控制器之外,我还有一个websocket servlet,它需要对连接进行身份验证 流程如下:客户端连接到服务器并重定向到登录页面,在成功验证后,他接收到连接到套接字的尝试的视图。我需要确保,只有经过身份验证的用户才能启动websocket连接 经过一些研究,我发现对启动websocket连接的Http升级请求进行身份验证就足够了。然而,对于如何利用我使用的技术做到这一点

我正在Tomcat7上使用SpringMVC构建一个webapp,并使用SpringSecurity进行用户身份验证。除了标准控制器之外,我还有一个websocket servlet,它需要对连接进行身份验证

流程如下:客户端连接到服务器并重定向到登录页面,在成功验证后,他接收到连接到套接字的尝试的视图。我需要确保,只有经过身份验证的用户才能启动websocket连接

经过一些研究,我发现对启动websocket连接的Http升级请求进行身份验证就足够了。然而,对于如何利用我使用的技术做到这一点,我感到困惑。简单地拦截指向websocket的url似乎不起作用,因为试图用302响应连接到套接字端,所以我猜身份验证失败,我被重定向到我的登录页面。如果能帮我解决这个问题,我将不胜感激


感谢

Spring security 4.x具有本机websocket支持,它可以很好地与您通过HTTP进行的身份验证集成

您可以在此处查看文档:

我认为,这也是我在为我的项目研究的内容,即spring security正在检查表单元素内部的身份验证,但websocket身份验证是作为连接框架中的头发送的。我想您需要编写一个筛选器来检查登录/密码详细信息的标题元素,并验证用户。此[问题][1]的答案可能对您的情况有所帮助。[1]: