1

我已经阅读了许多有关用户身份验证和授权的教程,其中大多数使用基于表单的身份验证(j_security_check)和@RolesAllowed 进行授权和jdbcRealm。

因此,如果授权必须工作,我必须从客户端向服务器发送 HTTP 请求。但我想要的是发送正常的 websocket 请求,如果我未经授权访问该方法(基于 @RolesAllowed 参数),我应该得到一个异常。

任何帮助将不胜感激。

4

1 回答 1

0

您可以使用基本身份验证。使用 Base64 编码您的用户名:密码并将其发送到请求标头的授权字段中。然后在服务器上对每个请求进行解码和身份验证。如果无需身份验证即可使用资源,请使用@PermitAll. 否则使用@RolesAllowed({"role1","role2"}).

您可以像这样从请求标头中获取该字段:

request.getHeaderValue("Authorization");
于 2014-07-23T15:40:21.670 回答