根據這個mailinglist entry,grails過濾器應該在前向調用。這有效地導致過濾器被調用1 + x number of forwards
。grails過濾器在這個例子中運行兩次?
但是,在我的情況下,我質疑這是如何完成的方法。下面是我的系統的一個粗略的混搭:
- 我有這對
"/api/**"
- 即是這樣一個urlMapping中的URI狀態調用的過濾器:
"/api/$version/$apiKey/$rest**"
$rest
可能含有(作爲例子)的值/book/show/1
- 這就是唯一目的的ApiController是轉發至另一個URI取決於
$rest
因此,讓我說我訪問url /api/0.1/Ks38...7fn38/book/show/1
然後會發生的是,api過濾器被調用,它執行所有的版本和apiKey驗證。然後它繼續轉發到uri /book/show/1
,然後再次調用Api過濾器,即使過濾器被重新映射到/api/**
並且新的uri實際上是/book/...
。現在讓我們說,我同意過濾器應該在前鋒上被調用,但我不同意,當我正在向前轉時,應該再次調用api過濾器/book...
這不能是正確的行爲?它可以?
加入此以GRAILS http://jira.grails.org/browse/GRAILS-7579與樣品應用 – netbrain 2011-06-01 19:44:07