Grails安全过滤器不适用于2个控制器

时间:2014-11-12 04:44:53

标签: security grails groovy

我使用grails 2.4.3,创建了一个安全过滤器。我的项目名称中有3个控制器:admin,login和report。所以我在过滤器中添加了以下内容:

def filters = {
        all(controller: 'Admin', action: '*') {
            before = {
                if (!session.company) {
                    redirect(controller: 'login', action: 'auth')
                    return false
                }
            }
            after = { Map model ->

            }
            afterView = { Exception e ->

            }
        }
    }

我的意思是来自管理员控制器的任何操作,如果!session.company,页面将被重定向到登录控制器中的auth操作。

现在我想在此过滤器中添加控制器报告,我该怎么做?我试过了all(controller: ['Admin', 'Report'], action: '*'),但它没有用。

任何帮助将不胜感激。感谢

1 个答案:

答案 0 :(得分:7)

使用竖管符号添加多个控制器,例如

def filters = {
    all(controller: 'Admin|Report', action: '*') {
        ...
    }
}

参考#How to define mutliple distinct controllers in Grails 2 filter?