Используйте более одного before_filter - PullRequest
0 голосов
/ 16 сентября 2011

Я хочу использовать два фильтра в application_controller, поэтому в случае сбоя первого фильтра:

before_filter CASClient::Frameworks::Rails::Filter

попробуйте второй:

before_filter :hmac_filter

Идея в том, что кто-то пытаетсявойти в службу 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

1 Ответ

1 голос
/ 16 сентября 2011

До запуска фильтров перед обработкой любых веб-запросов, поэтому я не думаю, что это поможет вашей ситуации. Вы должны справиться с этим типом вещи на уровне действия.

...