如何在码头认证的WebSocket客户端?(How to authenticate websocke

2019-10-21 13:55发布

我使用的服务器端嵌入式码头将接受HTTP和WebSocket的请求。 我使用org.eclipse.jetty.security.authentication.FormAuthenticator用于验证用户。 用户获取登录后,我的JavaScript代码将打开与服务器WebSocket连接。 我想知道服务器是如何验证这个WebSocket的客户端,以避免接受来自未授权客户端(比如Java客户端)WebSocket连接。

Answer 1:

假设你已经安装了嵌入式码头得当,它会用一个正常的Web应用程序相同的安全约束系统来验证分配给该WebSocket的URL模式的用户角色。

这将防止WebSocket的升级甚至从发生(正在尝试在服务器端),如果用户没有通过验证,并可设置为WebSocket的授权作用。

但是要知道,浏览器的表现非常不同的场景。 你可能不会得到一个体面的错误消息出来的JavaScript的WebSocket对象的,如果有一个认证或授权问题。 这将只是一个客户端只能关闭代码(如1006),并没有紧密的原因匿名失败。



文章来源: How to authenticate websocket client in jetty?