grails - Grails 3调用外部方法

标签 grails

我有一个用于保存用户 session 的类,例如用户名,电话号码和域。出于所有目的和目的,它的基本外观如下:

public class User {

    private String username;
    private String domain;
    private List<GrantedAuthority> authorities = new ArrayList<>();

    public void addRole(final String role) {
        authorities.add(new SimpleGrantedAuthority(role));
    }

    public List<GrantedAuthority> getAuthorities() {
        return authorities;
    }

}

我有一个从上下文中提取此用户并呈现其属性的类。这是这个类的样子:
class UserSession {

    def getLoggedInUser() {
        User user = SecurityContextHolder.getContext().getAuthentication().getPrincipal()
        println("################### we are gonna return " + user)
        return user.domain + "\\" + user.username
    }

}

我遇到的问题是,我不知道如何从主布局gsp(基本模板)调用getLoggedInUser。

到目前为止,我已经尝试过执行以下操作:
<g:set var="userSession" bean="UserSession"/>
<span id="userInfo">${userSession.loggedInUser}</span>

但是,页面保留为空白,并且永远不会调用该方法。那么我的问题是:如何从基本布局gsp(而不是在每个 Controller 中)调用可以从特定bean /类访问的方法?

最佳答案

您是否尝试过使getLoggedInUser方法为静态方法?可能会起作用。

顺便说一句,不使用Spring Security吗?你可以做<sec:loggedInUserInfo field="username" />

关于grails - Grails 3调用外部方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37255239/

相关文章:

rest - CRUD操作Grails

Grails GSP - 根据区域设置显示不同的文本字段

grails - 测试 Controller 响应时出错。回复未更新

spring - grails- 2.3.4 generate-all命令不起作用

database-design - Grails多个数据库架构结构更新

mysql - linux env 上的 grails 部署中的 BeanCreationException

grails - 在另一个 session 中使用 session 变量grails 2.4.2

grails - Grails ACL独立 Controller Action

grails - 我如何解析错误的数组列表并将其显示为验证错误

eclipse - Grails应用程序不会从STS开始,而是从终端启动