Grails请求过滤器:这个神秘授权方法的来源是什么?

时间:2011-04-23 07:28:28

标签: security authentication grails nimble

我正在Grails中构建自定义身份验证过滤器类。它工作正常,但是我不知道为什么它正在工作。

在以下Grails请求过滤器中,定义“角色”方法的位置/方式是什么?它必须是Grails的Nimble插件的一部分,但是我没有在NimbleFilterBase中看到它,我的过滤器类扩展了它。

public class MySecurityFilters extends MyCustomExtensionOfNimbleFilterBase {
    def filters = {
        reports(controller: 'foo', action: 'bar') {
            before = {
                accessControl {
                    role('Administrator')
                }
            }
        }

另外,“accessControl”块究竟是什么?这是Grails的内置部分,还是Nimble以某种方式提供的东西,或者只是一个我可以摆脱的随机范围机制?

谢谢!

2 个答案:

答案 0 :(得分:2)

Nimble使用Shiro,这些是Shiro功能。请参阅http://grails.org/plugin/shiro

上的文档

accessControl方法通过doWithDynamicMethods()中的ShiroGrailsPlugin连接到MetaClass - 请参阅http://plugins.grails.org/grails-shiro/trunk/ShiroGrailsPlugin.groovy

角色方法在http://plugins.grails.org/grails-shiro/trunk/src/groovy/org/apache/shiro/grails/FilterAccessControlBuilder.groovy

中定义

答案 1 :(得分:0)