Toggle navigation
Toggle navigation
This project
Loading...
Sign in
Зуев Егор
/
wiki.dev
Go to a project
Toggle navigation
Toggle navigation pinning
Projects
Groups
Snippets
Help
Project
Activity
Repository
Pipelines
Graphs
Issues
0
Merge Requests
0
Wiki
Snippets
Network
Create a new issue
Commits
Issue Boards
Files
Commits
Network
Compare
Branches
Tags
Authored by
Dan Brown
2017-01-14 17:55:09 +0000
Browse Files
Options
Browse Files
Tag
Download
Email Patches
Plain Diff
Commit
598b07b53d5e3aa5ed43dad419ce2499c5493943
598b07b5
1 parent
e211f313
Updated LDAP to allow protocol to be specified
As per details by fredericmohr in #236
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
6 additions
and
20 deletions
app/Services/Ldap.php
app/Services/LdapService.php
app/Services/Ldap.php
View file @
598b07b
...
...
@@ -18,24 +18,6 @@ class Ldap
*/
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
);
}
...
...
app/Services/LdapService.php
View file @
598b07b
...
...
@@ -112,9 +112,13 @@ class LdapService
throw
new
LdapException
(
trans
(
'errors.ldap_extension_not_installed'
));
}
// Get port from server string if specified.
// Get port from server string
and protocol
if specified.
$ldapServer
=
explode
(
':'
,
$this
->
config
[
'server'
]);
$ldapConnection
=
$this
->
ldap
->
connect
(
$ldapServer
[
0
],
count
(
$ldapServer
)
>
1
?
$ldapServer
[
1
]
:
389
);
$hasProtocol
=
preg_match
(
'/^ldaps{0,1}\:\/\//'
,
$this
->
config
[
'server'
])
===
1
;
if
(
!
$hasProtocol
)
array_unshift
(
$ldapServer
,
''
);
$hostName
=
$ldapServer
[
0
]
.
(
$hasProtocol
?
':'
:
''
)
.
$ldapServer
[
1
];
$defaultPort
=
$ldapServer
[
0
]
===
'ldaps'
?
636
:
389
;
$ldapConnection
=
$this
->
ldap
->
connect
(
$hostName
,
count
(
$ldapServer
)
>
2
?
intval
(
$ldapServer
[
2
])
:
$defaultPort
);
if
(
$ldapConnection
===
false
)
{
throw
new
LdapException
(
trans
(
'errors.ldap_cannot_connect'
));
...
...
Please
register
or
sign in
to post a comment