From c3b3e06a077f92f4e8158bbd5869b9ed46c2a5d1 Mon Sep 17 00:00:00 2001 From: xxx Date: Fri, 17 Nov 2023 11:51:07 +0800 Subject: [PATCH] =?UTF-8?q?fixed:=20LDAP=E6=9C=8D=E5=8A=A1=E4=B8=8D?= =?UTF-8?q?=E5=AD=98=E5=9C=A8=E5=B1=9E=E6=80=A7=E8=AF=BB=E5=8F=96=E6=8A=A5?= =?UTF-8?q?=E9=94=99=E7=9A=84bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../playedu/common/util/ldap/LdapUtil.java | 23 +++++++++++++------ 1 file changed, 16 insertions(+), 7 deletions(-) diff --git a/playedu-common/src/main/java/xyz/playedu/common/util/ldap/LdapUtil.java b/playedu-common/src/main/java/xyz/playedu/common/util/ldap/LdapUtil.java index bb89512..31136d4 100644 --- a/playedu-common/src/main/java/xyz/playedu/common/util/ldap/LdapUtil.java +++ b/playedu-common/src/main/java/xyz/playedu/common/util/ldap/LdapUtil.java @@ -25,6 +25,7 @@ import java.util.*; import javax.naming.Context; import javax.naming.NamingEnumeration; import javax.naming.NamingException; +import javax.naming.directory.Attribute; import javax.naming.directory.Attributes; import javax.naming.directory.SearchControls; import javax.naming.directory.SearchResult; @@ -148,7 +149,7 @@ public class LdapUtil { } // 唯一特征值 - String uSNCreated = (String) attributes.get("uSNCreated").get(); + String uSNCreated = getAttribute(attributes, "uSNCreated"); if (StringUtil.isEmpty(uSNCreated)) { continue; } @@ -253,17 +254,16 @@ public class LdapUtil { ldapUser.setDn(item.getName()); // name解析 - String displayName = (String) attributes.get("displayName").get(); + String displayName = getAttribute(attributes, "displayName"); if (StringUtil.isEmpty(displayName)) { - displayName = (String) attributes.get("cn").get(); + displayName = getAttribute(attributes, "cn"); } ldapUser.setCn(displayName); // 邮箱解析 - String email = - attributes.get("mail") == null ? null : (String) attributes.get("mail").get(); - if (email == null) { - email = attributes.get("email") == null ? null : (String) attributes.get("email").get(); + String email = getAttribute(attributes, "mail"); + if (StringUtil.isEmpty(email)) { + getAttribute(attributes, "email"); } ldapUser.setEmail(email); @@ -296,6 +296,15 @@ public class LdapUtil { return ldapUser; } + private static String getAttribute(Attributes attributes, String keyName) + throws NamingException { + Attribute attribute = attributes.get(keyName); + if (attribute == null) { + return null; + } + return (String) attribute.get(); + } + private static String baseDNOuScope(String baseDN) { List ouScopes = new ArrayList<>(); String[] rdnList = baseDN.toLowerCase().split(",");