1
0
mirror of https://github.com/meineerde/redmine.git synced 2026-02-06 09:03:25 +00:00

Rescue network level errors with LDAP auth (#21137).

Patch by Holger Just.

git-svn-id: http://svn.redmine.org/redmine/trunk@14808 e93f8b46-1217-0410-a6f0-8f06a7374b81
This commit is contained in:
Jean-Philippe Lang 2015-11-07 08:27:27 +00:00
parent 269ba694b5
commit 8123006bb3

View File

@ -20,6 +20,13 @@ require 'net/ldap/dn'
require 'timeout'
class AuthSourceLdap < AuthSource
NETWORK_EXCEPTIONS = [
Net::LDAP::LdapError,
Errno::ECONNABORTED, Errno::ECONNREFUSED, Errno::ECONNRESET,
Errno::EHOSTDOWN, Errno::EHOSTUNREACH,
SocketError
]
validates_presence_of :host, :port, :attr_login
validates_length_of :name, :host, :maximum => 60, :allow_nil => true
validates_length_of :account, :account_password, :base_dn, :maximum => 255, :allow_blank => true
@ -45,7 +52,7 @@ class AuthSourceLdap < AuthSource
return attrs.except(:dn)
end
end
rescue Net::LDAP::LdapError => e
rescue *NETWORK_EXCEPTIONS => e
raise AuthSourceException.new(e.message)
end
@ -55,7 +62,7 @@ class AuthSourceLdap < AuthSource
ldap_con = initialize_ldap_con(self.account, self.account_password)
ldap_con.open { }
end
rescue Net::LDAP::LdapError => e
rescue *NETWORK_EXCEPTIONS => e
raise AuthSourceException.new(e.message)
end
@ -85,7 +92,7 @@ class AuthSourceLdap < AuthSource
results << attrs
end
results
rescue Net::LDAP::LdapError => e
rescue *NETWORK_EXCEPTIONS => e
raise AuthSourceException.new(e.message)
end