|
|
@@ -39,6 +39,23 @@ try { |
|
|
|
if ($connection->setConfiguration($_POST)) { |
|
|
|
//Configuration is okay |
|
|
|
if ($connection->bind()) { |
|
|
|
/* |
|
|
|
* This shiny if block is an ugly hack to find out whether anonymous |
|
|
|
* bind is possible on AD or not. Because AD happily and constantly |
|
|
|
* replies with success to any anonymous bind request, we need to |
|
|
|
* fire up a broken operation. If AD does not allow anonymous bind, |
|
|
|
* it will end up with LDAP error code 1 which is turned into an |
|
|
|
* exception by the LDAP wrapper. We catch this. Other cases may |
|
|
|
* pass (like e.g. expected syntax error). |
|
|
|
*/ |
|
|
|
try { |
|
|
|
$ldapWrapper->read($connection->getConnectionResource(), 'neverwhere', 'objectClass=*', array('dn')); |
|
|
|
} catch (\Exception $e) { |
|
|
|
if($e->getCode() === 1) { |
|
|
|
OCP\JSON::error(array('message' => $l->t('The configuration is invalid: anonymous bind is not allowed.'))); |
|
|
|
exit; |
|
|
|
} |
|
|
|
} |
|
|
|
OCP\JSON::success(array('message' |
|
|
|
=> $l->t('The configuration is valid and the connection could be established!'))); |
|
|
|
} else { |