我有一个使用标准注释定义的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类,我会看到一个匿名用户
答案 0 :(得分:1)
这是Java EE 7 WebSocket规范中的已知缺陷,请参阅其错误跟踪器中的the following issue。
但是,有一种可用的解决方法,请参阅JBoss Security Extended项目和this example。