【问题标题】:How to get springSecurityService inside a grails utils package如何在 grails utils 包中获取 springSecurityService
【发布时间】:2017-08-20 00:16:41
【问题描述】:

我在我的 grails 2.4.4 应用程序中使用 spring-security-2.0。我在我的 utils 包中创建了以下 groovy 类。

package com.util.portal;

import com.services.portal.UserSessionService
import javax.servlet.http.HttpSessionEvent;
import javax.servlet.http.HttpSessionListener;
import org.springframework.context.ApplicationContext;
import org.springframework.web.context.support.WebApplicationContextUtils;


public class CustomSessionControl implements HttpSessionListener {

	public void sessionCreated(HttpSessionEvent sessionEvent) {
		/* Do whatever we want */

	}

	public void sessionDestroyed(HttpSessionEvent sessionEvent) {
		/* Do whatever we want */
	}

}

我只想在 sessionCreated() 方法中使用 springsecurityService 得到原理。

实际上我的意图是在会话创建自身时将所有用户详细信息设置到会话中(来自 sessionCreated 方法)。

我该怎么做?

【问题讨论】:

    标签: spring grails


    【解决方案1】:

    您可以从Holders 中检索springSecurityService

    在顶部:

    import grails.util.Holders
    

    在方法中:

    def springSecurityService = Holders.applicationContext.springSecurityService
    def user = springSecurityService.currentUser
    

    【讨论】:

    • 我像这样实现了你的代码 def springSecurityService = Holders.applicationContext.springSecurityService; String UserId = springSecurityService.getPrincipal().getId();并收到类似消息的错误:无法在空对象上调用方法 getId()
    • 好消息是springSecurityService 被注入了。你需要本金做什么?
    • 我只需要登录用户的ID。这将来自校长
    • 在控制器中我从 springSecurityService.getPrincipal().getId();但这里没有得到
    • 仍然一样无法在空对象上获取属性“id”
    猜你喜欢
    • 2023-03-25
    • 1970-01-01
    • 2016-04-05
    • 2014-06-23
    • 2015-12-08
    • 2012-03-31
    • 1970-01-01
    • 2015-12-28
    • 2016-01-31
    相关资源
    最近更新 更多