Сохраните название стратегии в журнале Rails 3 для Warden - PullRequest
0 голосов
/ 26 января 2012

мы используем Warden для аутентификации и у нас так много стратегий, что трудно отследить, какая из них была успешной. Вместо того, чтобы ставить строки, как

Rails.logger.debug "Аутентифицировано с помощью SSO", если пользователь

для каждой стратегии я хотел бы поместить одну простую строку где-нибудь, чтобы записать сообщение о стратегии. Он доступен в Warden где-то, потому что хранит успешное сообщение:

success!(username, message)

Как это сделать? В каком месте лучше всего поставить эту строку?

Полагаю, мне нужен обратный вызов или что-то в этом роде:

https://github.com/hassox/warden/wiki/Callbacks

1 Ответ

0 голосов
/ 27 января 2012

Понял:

Warden::Manager.after_authentication do |user,auth,opts|
  user = user.username if user.respond_to? :username
  message = auth.winning_strategy.message
  Rails.logger.info "User #{user} authenticated: #{auth.winning_strategy.message}"
end

А в стратегиях:

success!(u, "with LDAP")

например.Это работает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...