我想在 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