diff --git a/edu.harvard.i2b2.pm/src/edu/harvard/i2b2/pm/util/SecurityAuthenticationLDAP.java b/edu.harvard.i2b2.pm/src/edu/harvard/i2b2/pm/util/SecurityAuthenticationLDAP.java index 5be6d8b9..44ddcaa8 100755 --- a/edu.harvard.i2b2.pm/src/edu/harvard/i2b2/pm/util/SecurityAuthenticationLDAP.java +++ b/edu.harvard.i2b2.pm/src/edu/harvard/i2b2/pm/util/SecurityAuthenticationLDAP.java @@ -67,17 +67,20 @@ public boolean validateUser(String username, String password, securityAuthentication = (String) params.get("security_authentication"); securityAuthentication = securityAuthentication.toUpperCase(); setSSL = (String) params.get("ssl"); - // dn = (String) params.get("distinguished_name"); + dn = (String) params.get("distinguished_name"); // mhorvath CORE-417 if (searchBase.startsWith("@")) { principalName = username + searchBase; - } else { - dn = (String) params.get("distinguished_name"); + } + // cover cases where CN != sAMAccountName, here uses entire DN value for authentication. + else if (searchBase.startsWith("+")) { + principalName = dn; + } + else { principalName = dn + username + "," + searchBase; - } - //principalName = dn + username + "," + searchBase; + } // DIGEST-MD5 configuration from the parameters securityLayer = (String) params.get("security_layer");