如何在jetty中验证websocket客户端?

时间:2015-01-12 08:36:43

标签: authentication websocket jetty client

我在服务器端使用嵌入式jetty,它将同时接受http和websocket请求。我正在使用 org.eclipse.jetty.security.authentication.FormAuthenticator 来验证用户身份。用户登录后,我的javascript代码将打开与服务器的websocket连接。我想知道服务器如何验证这个websocket客户端,以避免接受来自未授权客户端(例如,Java客户端)的websocket连接。

1 个答案:

答案 0 :(得分:0)

假设您已正确设置嵌入式jetty,它将使用普通webapp的相同安全约束系统来验证分配给该websocket的url模式的用户角色。

如果用户未经过身份验证并设置了该websocket的授权角色,这将阻止websocket升级甚至发生(在服务器端尝试)。

然而,知道浏览器在场景中的表现非常不同。如果存在身份验证或授权问题,您可能无法从javascript WebSocket对象中获得正确的错误消息。它只是匿名失败,客户端只有密码(例如1006),没有接近原因。