允许使用角色的Wildfly中的Websocket身份验证



我有一个使用标准注释定义的web套接字,比如

@ServerEndpoint("/mySocket")
@Singleton
public class myWebsocket {
@Inject
private MyEjb myEjb;
@OnMessage
public void message(Session session, String msg) { ...

即使我的用户已经登录,我在调用myEjb时也会遇到访问异常,因为它无法识别我的用户。如果我检查我的会话对象的主体

session.getUserPrincipal().getName()

找到了正确的用户,但是,如果我检查jboss SecurityContext类,我会看到一个匿名用户

这是Java EE 7 WebSocket规范中的一个已知缺陷,请参阅其错误跟踪器中的以下问题。

但是,有一个可用的解决方法,请参阅JBossSecurityExtended项目和本示例。

最新更新