我想在application_controller中使用两个过滤器,这样,如果第一个过滤器失败:
before_filter CASClient::Frameworks::Rails::Filter
尝试第二个:
before_filter :hmac_filter
这个想法是当有人试图通过Web客户端进入REST服务时, 必须使用rubycas客户端过滤器过滤请求,如果有人试图使用例如使用CURL的客户端进入,第一个过滤器应该失败,但是必须在给定适当参数的情况下应用第二个过滤器。 我可以使用一系列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
答案 0 :(得分:1)
在根据处理任何网络请求之前运行过滤器之前,所以我认为这不会对您的情况有所帮助。你需要在行动层面处理这类事情。