devise_token_auth LDAP (Active Directory) не работает - PullRequest
0 голосов
/ 28 мая 2019

Я просто не могу настроить пользователей на вход из Active Directory. Я перепробовал почти все, что нашел в Google. На данный момент пришел к выводу, что необходимо отредактировать контроллер

File 'app/controllers/devise_token_auth/sessions_controller.rb'

Подскажите, пожалуйста, как я могу переписать блок кода, чтобы после неудачной попытки входа в систему у меня была функция проверки пользователя в Active Directory, и, если пользователь существует, он был бы добавлен в базу данных и вошли в систему?

Я использую следующую функцию:

class ActiveDirectoryUser
  SERVER = '192.168.xx.xx'
  PORT = 389
  BASE = 'ou=OFFICE,dc=aaa,dc=loc'
  DOMAIN = 'aaa.loc'

  def self.authenticate(login, pass)
    conn = Net::LDAP.new :host => SERVER,
                         :port => PORT,
                         :base => BASE,
                         :auth => { :username => "#{login}@#{DOMAIN}",
                                    :password => pass,
                                    :method => :simple }
    if  conn.bind
        conn.search(
        :base => BASE, :filter => Net::LDAP::Filter.eq(
"sAMAccountName", login ),
        :attributes => %w[ givenName ], :return_result => true) do
|entry|
        #puts "givenName: #{entry.givenName}"
        $username = entry.givenName.first
        end
        return true

    else
      return false
    end
  rescue Net::LDAP::LdapError => e
    return false
  end
end
...