mirror of
https://github.com/zitadel/zitadel.git
synced 2025-12-02 14:12:27 +00:00
fix(zitadel): LDAP binding error with non-ASCII characters in DN (#10578)
<!--
Please inform yourself about the contribution guidelines on submitting a
PR here:
https://github.com/zitadel/zitadel/blob/main/CONTRIBUTING.md#submit-a-pull-request-pr.
Take note of how PR/commit titles should be written and replace the
template texts in the sections below. Don't remove any of the sections.
It is important that the commit history clearly shows what is changed
and why.
Important: By submitting a contribution you agree to the terms from our
Licensing Policy as described here:
https://github.com/zitadel/zitadel/blob/main/LICENSING.md#community-contributions.
-->
# Which Problems Are Solved
LDAP binding with non-ASCII characters in DN
# How the Problems Are Solved
The root of the problem is that ParseDN() function messes DN with
non-ASCII character. Instead of using DN object, returned from ParseDN
we use user.DN in binding request. ParseDN stays only for verifying
correctness of DN.
# Additional Context
- Closes #9970
---------
Co-authored-by: Stefan Benz <46600784+stebenz@users.noreply.github.com>
(cherry picked from commit 3a91b409c4)
This commit is contained in:
committed by
Livio Spring
parent
99d3d955b9
commit
6b007ad0eb
@@ -216,12 +216,12 @@ func trySearchAndUserBind(
|
||||
|
||||
user := sr.Entries[0]
|
||||
// Bind as the user to verify their password
|
||||
userDN, err := ldap.ParseDN(user.DN)
|
||||
_, err = ldap.ParseDN(user.DN)
|
||||
if err != nil {
|
||||
logging.WithFields("userDN", user.DN).WithError(err).Info("ldap user parse DN failed")
|
||||
return nil, err
|
||||
}
|
||||
if err = conn.Bind(userDN.String(), password); err != nil {
|
||||
if err = conn.Bind(user.DN, password); err != nil {
|
||||
logging.WithFields("userDN", user.DN).WithError(err).Info("ldap user bind failed")
|
||||
return nil, ErrFailedLogin
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user