2011-09-16 73 views
0

我想在application_controller使用兩個過濾器,這樣,如果第一個過濾器失效:使用一個以上的before_filter

before_filter CASClient::Frameworks::Rails::Filter 

嘗試與第二:

before_filter :hmac_filter 

有人試圖當時的想法是要通過Web客戶端輸入REST服務,請求必須使用rubycas客戶端篩選器進行篩選,並且如果有人試圖輸入使用CURL的客戶端,則第一個篩選器應該失敗,但第二個篩選器必須在適當的參數下應用。 我可以使用一系列捲曲請求,第一個過濾器被激活用於驗證並獲得會話cookie,但這不是主意,我必須使用hmac_filter。我也不能修改hmac_filter。

任何想法或建議將不勝感激。由於

編輯

也許不是最好的解決辦法,但最後,這是我的實現:

before_filter :choose_auth 

def choose_auth 
    params[:hmac_auth] ? hmac_filter : CASClient::Frameworks::Rails::Filter.filter self 
end 

回答

1

之前處理任何Web請求都運行之前,所以我不過濾器不認爲這會幫助你的情況。你需要在動作級別處理這種類型的事情。

相關問題