Friendly response when the LDAP connection fails.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@8911 e93f8b46-1217-0410-a6f0-8f06a7374b81
This commit is contained in:
parent
59c2530001
commit
3e3d7c8d4f
|
@ -29,6 +29,9 @@ class AccountController < ApplicationController
|
||||||
else
|
else
|
||||||
authenticate_user
|
authenticate_user
|
||||||
end
|
end
|
||||||
|
rescue AuthSourceException => e
|
||||||
|
logger.error "An error occured when authenticating #{params[:username]}: #{e.message}"
|
||||||
|
render_error :message => e.message
|
||||||
end
|
end
|
||||||
|
|
||||||
# Log out current user and redirect to welcome page
|
# Log out current user and redirect to welcome page
|
||||||
|
|
|
@ -15,6 +15,10 @@
|
||||||
# along with this program; if not, write to the Free Software
|
# along with this program; if not, write to the Free Software
|
||||||
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||||
|
|
||||||
|
# Generic exception for when the AuthSource can not be reached
|
||||||
|
# (eg. can not connect to the LDAP)
|
||||||
|
class AuthSourceException < Exception; end
|
||||||
|
|
||||||
class AuthSource < ActiveRecord::Base
|
class AuthSource < ActiveRecord::Base
|
||||||
include Redmine::Ciphering
|
include Redmine::Ciphering
|
||||||
|
|
||||||
|
|
|
@ -40,8 +40,8 @@ class AuthSourceLdap < AuthSource
|
||||||
logger.debug "Authentication successful for '#{login}'" if logger && logger.debug?
|
logger.debug "Authentication successful for '#{login}'" if logger && logger.debug?
|
||||||
return attrs.except(:dn)
|
return attrs.except(:dn)
|
||||||
end
|
end
|
||||||
rescue Net::LDAP::LdapError => text
|
rescue Net::LDAP::LdapError => e
|
||||||
raise "LdapError: " + text
|
raise AuthSourceException.new(e.message)
|
||||||
end
|
end
|
||||||
|
|
||||||
# test the connection to the LDAP
|
# test the connection to the LDAP
|
||||||
|
|
|
@ -51,6 +51,16 @@ class AccountControllerTest < ActionController::TestCase
|
||||||
:content => /Invalid user or password/
|
:content => /Invalid user or password/
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def test_login_should_rescue_auth_source_exception
|
||||||
|
source = AuthSource.create!(:name => 'Test')
|
||||||
|
User.find(2).update_attribute :auth_source_id, source.id
|
||||||
|
AuthSource.any_instance.stubs(:authenticate).raises(AuthSourceException.new("Something wrong"))
|
||||||
|
|
||||||
|
post :login, :username => 'jsmith', :password => 'jsmith'
|
||||||
|
assert_response 500
|
||||||
|
assert_error_tag :content => /Something wrong/
|
||||||
|
end
|
||||||
|
|
||||||
if Object.const_defined?(:OpenID)
|
if Object.const_defined?(:OpenID)
|
||||||
|
|
||||||
def test_login_with_openid_for_existing_user
|
def test_login_with_openid_for_existing_user
|
||||||
|
|
Loading…
Reference in New Issue