修改LDAP获取UserDN的时候可能出错的问题

This commit is contained in:
李民
2021-02-09 14:33:53 +08:00
parent 25e84b2a6c
commit 2e2907ea09

View File

@@ -56,15 +56,14 @@ public class LDAPAuthentication {
return null; return null;
} }
private String getUserDN(String account) { private String getUserDN(String account,LdapContext ctx) {
String userDN = null; String userDN = "";
LdapContext ctx = getConnect();
try { try {
SearchControls constraints = new SearchControls(); SearchControls constraints = new SearchControls();
constraints.setSearchScope(SearchControls.SUBTREE_SCOPE); constraints.setSearchScope(SearchControls.SUBTREE_SCOPE);
NamingEnumeration<SearchResult> en = ctx.search("", "account=" + account, constraints); NamingEnumeration<SearchResult> en = ctx.search("", "account=" + account, constraints);
if (en == null || !en.hasMoreElements()) { if (en == null || !en.hasMoreElements()) {
return null; return "";
} }
// maybe more than one element // maybe more than one element
while (en.hasMoreElements()) { while (en.hasMoreElements()) {
@@ -93,7 +92,7 @@ public class LDAPAuthentication {
LdapContext ctx = getConnect(); LdapContext ctx = getConnect();
boolean valide = false; boolean valide = false;
String userDN = getUserDN(account); String userDN = getUserDN(account,ctx);
try { try {
assert ctx != null; assert ctx != null;
ctx.addToEnvironment(Context.SECURITY_PRINCIPAL, userDN); ctx.addToEnvironment(Context.SECURITY_PRINCIPAL, userDN);