2010-08-31 76 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