Grails spring security获取登录用户

时间:2016-11-07 08:06:37

标签: grails spring-security

我正在开发一个订购Web应用程序,我是学习Grails的新手。我使用了Spring Security插件。我已经配置并覆盖了登录和注册,我想要的是让当前登录的用户申请订单。有没有办法在不使用静态belongsTo的情况下执行此操作?因为使用它总是显示一个下拉框,我可以在用户和管理员之间进行选择。我是否采取正确的方法让登录用户订购?

1 个答案:

答案 0 :(得分:-1)

检索当前经过身份验证的主体的最简单方法是通过对SecurityContextHolder的静态调用:

Authentication authentication = SecurityContextHolder.getContext().getAuthentication();
if (!(authentication instanceof AnonymousAuthenticationToken)) {
    String currentUserName = authentication.getName();
    return currentUserName;
}

注入SpringSecurityService bean, 像这样进入控制器

def springSecurityService 

然后致电

def currentPrincipal = springSecurityService.principal

print "The details of current logged in user is" + currentPrincipal

有关详细信息,请点击此链接 http://www.baeldung.com/get-user-in-spring-security

How to get the current logged in user object from spring security?