0

我想在 application_controller 中使用两个过滤器,如果第一个过滤器失败:

before_filter CASClient::Frameworks::Rails::Filter

尝试第二个:

before_filter :hmac_filter

这个想法是当有人试图通过 Web 客户端进入 REST 服务时,必须使用 ruby​​cas 客户端过滤器过滤请求,如果有人尝试使用例如使用 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
4

1 回答 1

1

在过滤器在处理任何 Web 请求之前运行之前,所以我认为这对您的情况没有帮助。您需要在操作级别处理此类事情。

于 2011-09-16T02:46:49.667 回答