大气:如何在Grails中从webSocket连接登录用户?

大气:如何在Grails中从webSocket连接登录用户?,grails,spring-security,websocket,atmosphere,Grails,Spring Security,Websocket,Atmosphere,我正在努力将WebSockets功能引入到我的Grails应用程序中。为此,我使用大气流星插件0.7.1。 工作流程很简单: 用户登录系统 具有WebSocket功能的用户打开页面 用户单击连接按钮以建立连接服务器不认识他。 我想知道哪个用户连接了我的webSocket 通常,在任何控制器中调用springSecurityService.getPrincipal(),都可以很容易地检测到当前用户。我设法将springSecurityService注入我的MeteorHandler,但是它说主

我正在努力将WebSockets功能引入到我的Grails应用程序中。为此,我使用大气流星插件0.7.1。 工作流程很简单:

  • 用户登录系统
  • 具有WebSocket功能的用户打开页面
  • 用户单击连接按钮以建立连接服务器不认识他。
我想知道哪个用户连接了我的webSocket

通常,在任何控制器中调用
springSecurityService.getPrincipal()
,都可以很容易地检测到当前用户。我设法将
springSecurityService
注入我的MeteorHandler,但是它说主体是
null
。我觉得很奇怪,因为处理程序可以访问
JSESSIONID
cookie,所以我希望它能够检索正确的会话数据

另外,
request.session
命令返回的HttpSession对象与常规控制器操作中执行的相同命令不同

那么,有没有办法在webSockets连接上检索当前登录的用户


提前感谢。

可以从
request.userPrincipal.Principal

它与
springSecurityService.getPrincipal()中的对象完全相同

请在此处查找更多信息: