无法向AtmosphereHandler注入服务

时间:2013-06-25 18:25:42

标签: grails atmosphere

我正在运行Grails 2.2.1。 我有一个Grails服务,作为一个氛围处理程序..
请参阅此链接:https://bitbucket.org/bgoetzmann/grails-atmosphere-plugin/wiki/Home

我试图以简单的方式在其中使用Spring安全服务,即通过def springSecurityService注入它。 但是当服务到达处理程序时,
springSecurityService.getCurrentUser()返回null。
用户已登录,我可以让他进入我的控制器。我觉得这项服务不是以某种方式注入的 经过一番研究,我发现了这个问题 Injecting service into Grails Atmosphere Handler class
但两个答案都已过时了...... 请帮忙!


编辑:我的服务就像:

AtmosphereRequest req = r.getRequest();
 if (req.getMethod().equalsIgnoreCase("GET")) {
     log.info "got get, and suspending."
     r.suspend();
     } else if (req.getMethod().equalsIgnoreCase("POST")) {
         def data = req.getReader().readLine().trim()
         log.info "got some data:\n $data"
         if (data == "GET_NEARBY"){
             log.info "finding nearby..."
             def user = springSecurityService.getCurrentUser()
             log.info "user is $user" //USER IS NULL HERE

              //...some logic
         }
     }

1 个答案:

答案 0 :(得分:0)

试试这个:

def ctx = ServletContextHolder.servletContext.getAttribute(GrailsApplicationAttributes.APPLICATION_CONTEXT)
def springSecurityService = ctx. springSecurityService

    def currentUser = springSecurityService.currentUser

现在你应该可以使用springSecurityService