У меня есть модифицированные версии примера Devise для LDAP authentication strategy. Он не работает, и я пытаюсь сделать некоторые записи Rails, чтобы понять это, но сам журнал не работает.Как отлаживать стратегию пользовательских разработок в Rails 4?
Я начал работу с logger.debug 'Debug Info'
. Затем попробовал Rails.logger.debug 'Debug Info'
. И я даже попробовал старомодный puts 'Debug Info'
. Ни один из них не будет показан в консоли.
Это соответствующая часть моего config/initializers/ldap_authenticatable.rb
module Devise
module Strategies
class LdapAuthenticatable < Authenticatable
def authenticate!
Rails.logger.debug '=== Starting LDAP Authentication ==='
fail(:invalid_login) unless params[:user]
ldap.auth find_dn, password
Rails.logger.debug ldap.auth
if ldap.bind
Rails.logger.debug '=== LDAP Authorized! ==='
user = User.find_or_create_by(email: email)
success!(user)
else
Rails.logger.debug '=== LDAP Failed Auth! ==='
fail(:invalid_login)
end
end
...
Я добавил стратегию config/initializers/devise.rb
Devise.setup do |config|
config.warden do |manager|
manager.default_strategies(scope: :user).unshift :ldap_authenticatable
end
...
Я изменил мой User.rb
при необходимости
class User < ActiveRecord::Base
devise :ldap_authenticatable, :rememberable, :trackable
...
И вот мой журнал Rails
Started POST "https://stackoverflow.com/users/sign_in" for 127.0.0.1 at 2015-02-11 18:38:16 -0800
Processing by Devise::SessionsController#create as HTML
Parameters: {"utf8"=>"✓", "authenticity_token"=>"Cv62THOWW4A/pGeflwrVlWSrABg0kY1UyJGBUoQz/B8daAs/9vMLhe1XTKmIbLWR3G6XXoRbvQ6Wis5GKVQiKA==", "user"=>{"email"=>"[REDACTED]", "password"=>"[FILTERED]", "remember_me"=>"0"}, "commit"=>"Sign in"}
User Load (0.4ms) SELECT "users".* FROM "users" WHERE "users"."email" = $1 ORDER BY "users"."id" ASC LIMIT 1 [["email", "[REDACTED]"]]
Completed 401 Unauthorized in 20ms
Processing by Devise::SessionsController#new as HTML
Parameters: {"utf8"=>"✓", "authenticity_token"=>"Cv62THOWW4A/pGeflwrVlWSrABg0kY1UyJGBUoQz/B8daAs/9vMLhe1XTKmIbLWR3G6XXoRbvQ6Wis5GKVQiKA==", "user"=>{"email"=>"[REDACTED]", "password"=>"[FILTERED]", "remember_me"=>"0"}, "commit"=>"Sign in"}
Rendered devise/sessions/new.html.erb within layouts/application (18.9ms)
Rendered layouts/_navigation_links.html.erb (0.2ms)
Rendered layouts/_navigation.html.erb (0.9ms)
Rendered layouts/_messages.html.erb (0.1ms)
Completed 200 OK in 150ms (Views: 149.0ms | ActiveRecord: 0.0ms)
Как я могу напечатать некоторые значения на консоли? Или я пропустил что-то еще?
Вы правы, я добавил исключение в верхней части моего метода аутентификации и, конечно же, этого не достигнут. – brownmike
@brownmike Вы когда-нибудь выясняли, почему код не был достигнут? – Leons