From 488405d1ec41faefaa3cbbc60a0c1b23745b6a31 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rn=20Friedrich=20Dreyer?= Date: Tue, 31 Mar 2015 13:42:23 +0200 Subject: [PATCH 01/10] do not hide exception when ldap server has a hiccup --- apps/user_ldap/lib/connection.php | 3 ++- apps/user_ldap/lib/user/manager.php | 8 ++------ apps/user_ldap/user_ldap.php | 16 ++++++---------- 3 files changed, 10 insertions(+), 17 deletions(-) diff --git a/apps/user_ldap/lib/connection.php b/apps/user_ldap/lib/connection.php index 1577d9facb..3869f5da9c 100644 --- a/apps/user_ldap/lib/connection.php +++ b/apps/user_ldap/lib/connection.php @@ -167,7 +167,8 @@ class Connection extends LDAPUtility { $this->establishConnection(); } if(is_null($this->ldapConnectionRes)) { - \OCP\Util::writeLog('user_ldap', 'Connection could not be established', \OCP\Util::ERROR); + \OCP\Util::writeLog('user_ldap', 'No LDAP Connection to server ' . $this->connection->ldapHost, \OCP\Util::ERROR); + throw new \Exception('Connection to LDAP server could not be established'); } return $this->ldapConnectionRes; } diff --git a/apps/user_ldap/lib/user/manager.php b/apps/user_ldap/lib/user/manager.php index c0bc8ea623..b99c9715e5 100644 --- a/apps/user_ldap/lib/user/manager.php +++ b/apps/user_ldap/lib/user/manager.php @@ -165,6 +165,7 @@ class Manager { * @brief returns a User object by it's DN or ownCloud username * @param string the DN or username of the user * @return \OCA\user_ldap\lib\user\User|\OCA\user_ldap\lib\user\OfflineUser|null + * @throws \Exception when connection could not be established */ public function get($id) { $this->checkAccess(); @@ -181,12 +182,7 @@ class Manager { } } - try { - $user = $this->createInstancyByUserName($id); - return $user; - } catch (\Exception $e) { - return null; - } + return $this->createInstancyByUserName($id); } } diff --git a/apps/user_ldap/user_ldap.php b/apps/user_ldap/user_ldap.php index 54e14c093f..cd8a2dd251 100644 --- a/apps/user_ldap/user_ldap.php +++ b/apps/user_ldap/user_ldap.php @@ -190,6 +190,7 @@ class USER_LDAP extends BackendUtility implements \OCP\IUserBackend, \OCP\UserIn * check if a user exists * @param string $uid the username * @return boolean + * @throws \Exception when connection could not be established */ public function userExists($uid) { if($this->access->connection->isCached('userExists'.$uid)) { @@ -208,17 +209,12 @@ class USER_LDAP extends BackendUtility implements \OCP\IUserBackend, \OCP\UserIn return true; } - try { - $result = $this->userExistsOnLDAP($user); - $this->access->connection->writeToCache('userExists'.$uid, $result); - if($result === true) { - $user->update(); - } - return $result; - } catch (\Exception $e) { - \OCP\Util::writeLog('user_ldap', $e->getMessage(), \OCP\Util::WARN); - return false; + $result = $this->userExistsOnLDAP($user); + $this->access->connection->writeToCache('userExists'.$uid, $result); + if($result === true) { + $user->update(); } + return $result; } /** From 8964c5068cec5d56ef5107c4cbcb10e55e4ef4a5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rn=20Friedrich=20Dreyer?= Date: Tue, 31 Mar 2015 14:56:02 +0200 Subject: [PATCH 02/10] do not disclose information, show generic error on login page Conflicts: core/templates/login.php lib/base.php --- core/templates/login.php | 6 ++++++ lib/base.php | 4 ++++ 2 files changed, 10 insertions(+) diff --git a/core/templates/login.php b/core/templates/login.php index 0ef7882d4b..b24c9cb07d 100644 --- a/core/templates/login.php +++ b/core/templates/login.php @@ -24,6 +24,12 @@ script('core', [
+ +
+ t('An internal error occured.')); ?>
+ t('Please try again or contact your administrator.')); ?> +
+