2010-08-31 32 views
2

我试图为我的网络应用写一个过滤器。我读作[文件] [1],并写了这个虚拟滤波器在我grails-app/conf目录Grails过滤器:无法使其工作!

class SecurityFilters { 
    def filters = { 
     someFilter(controller:'*',action:'*') { 

       write('Filtering') 

     } 
    } 
} 

我做的下一件事被设置在write声明断点,但它只是不会停止。

我是否需要“注册”此过滤器或任何东西?春天可能是bodering?

this question,它看起来不像它。

也许我做错了什么,或忽略了什么?

更新

class SecurityFilters { 
    def filters = { 

     all(controller:'*',action:'*') { 
     before={ 
       println 'Filtering' 
       return false 
     } 
     } 
    } 
} 

在此先感谢。

[1]:http://www.grails.org/doc/1.3.x/guide/single.html#6.6过滤器

回答

2

两个问题。一个是没有'写'方法 - 将其更改为'println',它应该工作。但是,一个过滤器是由前,后,和afterView子封的组合,让你真正想要的是

class SecurityFilters { 
    def filters = { 
     someFilter(controller:'*',action:'*') { 
     before = { 
      println 'Filtering' 
     } 
     } 
    } 
} 

但是,如果你真的创造一个安全过滤器,请不要。这很容易做到这一点不正确。 Spring Security CoreShiro插件有很多功能,并且易于配置和使用。

+0

还没有:(在ss -core和shiro上,我不认为他们可以做我所需要的,它高度依赖于数据和我的数据库结构。“如果这个用户属于这个组织,然后授予访问权限“ – Tom 2010-08-31 19:09:03

+0

我同意Burt,你应该使用现有的插件之一,他们可以定制,以利用自己的数据结构 – 2010-08-31 22:33:03

+0

@Aaron我看到的只有角色和用户,但没有别的:( – Tom 2010-09-01 13:52:21