From 914e20ebb7bf1f12ec2c2d838e5169d8a31ce345 Mon Sep 17 00:00:00 2001 From: Evgeny Mandrikov Date: Wed, 11 Jan 2012 11:37:51 +0400 Subject: [PATCH] SONAR-3137 Add exception handling --- .../webapp/WEB-INF/lib/need_authentication.rb | 23 +++++++++++++------ 1 file changed, 16 insertions(+), 7 deletions(-) diff --git a/sonar-server/src/main/webapp/WEB-INF/lib/need_authentication.rb b/sonar-server/src/main/webapp/WEB-INF/lib/need_authentication.rb index 8ad97b1ceb4..94e7d62223d 100644 --- a/sonar-server/src/main/webapp/WEB-INF/lib/need_authentication.rb +++ b/sonar-server/src/main/webapp/WEB-INF/lib/need_authentication.rb @@ -49,9 +49,12 @@ class PluginRealm def authenticate?(login, password) return false if login.blank? || password.blank? - # TODO handle exceptions - if @java_authenticator.authenticate(login, password) - return true + begin + if @java_authenticator.authenticate(login, password) + return true + end + rescue Exception => e + Java::OrgSonarServerUi::JRubyFacade.new.logError("Error from external authenticator: #{e.message}") end # Fallback to password from Sonar Database user = User.find_by_login(login) @@ -60,10 +63,16 @@ class PluginRealm def synchronize(user, password) if @java_users_provider - # TODO handle exceptions - details = @java_users_provider.doGetUserDetails(user.login) - user.update_attributes(:name => details.getName(), :email => details.getEmail(), :password => password, :password_confirmation => password) - user.save + begin + details = @java_users_provider.doGetUserDetails(user.login) + rescue Exception => e + Java::OrgSonarServerUi::JRubyFacade.new.logError("Error from external users provider: #{e.message}") + else + if details + user.update_attributes(:name => details.getName(), :email => details.getEmail(), :password => password, :password_confirmation => password) + user.save + end + end end end -- 2.39.5