]> BookStack Code Mirror - bookstack/commitdiff
Update Ldap.php 236/head
authorFrederic Mohr <redacted>
Tue, 15 Nov 2016 10:10:12 +0000 (11:10 +0100)
committerGitHub <redacted>
Tue, 15 Nov 2016 10:10:12 +0000 (11:10 +0100)
This is a very crude workaround, a better solution is explained in the comments I added.

app/Services/Ldap.php

index 196e46a2f4cb5195a34997961907d33f0d77acaf..ed85357cf18afc7fd24112b7ed5cc64f771ead05 100644 (file)
@@ -18,6 +18,24 @@ class Ldap
      */
     public function connect($hostName, $port)
     {
      */
     public function connect($hostName, $port)
     {
+        /*
+        * LDAPS is not working because even if port 363 is specified, 
+        * BookStack tries to open a LDAP connection on the LDAPS channel.
+        * The if-clause below fixed this, although it would be better to
+        * change the settings in .env from
+        *   LDAP_SERVER=servername:port
+        * to
+        *   LDAP_SERVER=ldap://servername:389
+        *   LDAP_SERVER=ldaps://servername:363
+        * in order to be compatible with non-standard setups. Currently, 
+        * specifying ldap:// or ldaps:// results in an error because BookStack
+        * splits at ":" and takes the seconds chunk (in this case "//servername"
+        * as the port value.
+        */
+        if ($port == 363)
+        {
+                $hostName = "ldaps://".$hostName;
+        }
         return ldap_connect($hostName, $port);
     }
 
         return ldap_connect($hostName, $port);
     }
 
@@ -94,4 +112,4 @@ class Ldap
         return ldap_bind($ldapConnection, $bindRdn, $bindPassword);
     }
 
         return ldap_bind($ldapConnection, $bindRdn, $bindPassword);
     }
 
-}
\ No newline at end of file
+}