0

application_controller で 2 つのフィルターを使用したいので、最初のフィルターが失敗した場合:

before_filter CASClient::Frameworks::Rails::Filter

2番目で試してください:

before_filter :hmac_filter

アイデアは、誰かが Web クライアントを介して REST サービスに入ろうとするとき、請願は ruby​​cas クライアント フィルターでフィルタリングする必要があり、誰かがたとえば CURL を使用するクライアントで入ろうとすると、最初のフィルターで失敗するはずです。 、ただし、適切なパラメーターを指定して、2 番目を適用する必要があります。認証のために最初のフィルターをアクティブにして一連の 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 に答える