ActiveDirectory fix
This commit is contained in:
@@ -30,6 +30,8 @@ import java.util.Arrays;
|
||||
|
||||
public class ActiveDirectoryUser {
|
||||
public static ArrayList<String> OBJECTCLASS = new ArrayList<>(Arrays.asList("top", "person", "organizationalPerson", "user"));
|
||||
|
||||
public static String objectClass = "user";
|
||||
/** userAccountControl值得说明
|
||||
* http://support.microsoft.com/zh-cn/kb/305144
|
||||
* https://docs.microsoft.com/en-us/troubleshoot/windows-server/identity/useraccountcontrol-manipulate-account-properties
|
||||
@@ -117,6 +119,7 @@ public class ActiveDirectoryUser {
|
||||
|
||||
public static final String CN = "cn";
|
||||
public static final String NAME = "name";
|
||||
public static final String UID = "uid";
|
||||
|
||||
public static final String GIVENNAME = "givenName";
|
||||
public static final String SN = "sn";
|
||||
@@ -145,7 +148,7 @@ public class ActiveDirectoryUser {
|
||||
public static final String SAMACCOUNTNAME = "sAMAccountname";
|
||||
public static final String LOGONHOURS = "logonHours";
|
||||
public static final String LOGONWORKSTATION = "logonWorkstation";
|
||||
public static final String USERACCOUNTCONTROL = "userAccountControl ";
|
||||
public static final String USERACCOUNTCONTROL = "userAccountControl";
|
||||
public static final String PWDLASTSET = "pwdLastSet";
|
||||
public static final String ACCOUNTEXPIRES = "accountExpires";
|
||||
|
||||
@@ -161,6 +164,10 @@ public class ActiveDirectoryUser {
|
||||
public static final String TITLE = "title";
|
||||
public static final String COMPANY = "company";
|
||||
public static final String DEPARTMENT = "department";
|
||||
public static final String EMPLOYEENUMBER = "employeeNumber";
|
||||
public static final String OU = "ou";
|
||||
public static final String DEPARTMENTNUMBER = "departmentNumber";
|
||||
|
||||
public static final String MANAGER = "manager";
|
||||
public static final String DIRECTREPORTS = "directReports";
|
||||
|
||||
|
||||
@@ -28,6 +28,8 @@ import java.util.Arrays;
|
||||
*/
|
||||
public class GroupOfNames {
|
||||
public static ArrayList<String> OBJECTCLASS = new ArrayList<>(Arrays.asList("top", "groupOfNames"));
|
||||
|
||||
public static String objectClass = "groupOfNames";
|
||||
public static final String DISTINGUISHEDNAME = "distinguishedname";
|
||||
public static final String CN = "cn";
|
||||
public static final String MEMBER = "member";
|
||||
|
||||
@@ -28,6 +28,8 @@ import java.util.Arrays;
|
||||
*/
|
||||
public class GroupOfUniqueNames {
|
||||
public static ArrayList<String> OBJECTCLASS = new ArrayList<>(Arrays.asList("top", "groupOfUniqueNames"));
|
||||
|
||||
public static String objectClass = "groupOfUniqueNames";
|
||||
public static final String DISTINGUISHEDNAME = "distinguishedname";
|
||||
public static final String CN = "cn";
|
||||
public static final String UNIQUEMEMBER = "uniqueMember";
|
||||
|
||||
@@ -28,6 +28,8 @@ import java.util.Arrays;
|
||||
*/
|
||||
public class InetOrgPerson {
|
||||
public static ArrayList<String> OBJECTCLASS = new ArrayList<>(Arrays.asList("top", "person","organizationalPerson","inetOrgPerson"));
|
||||
|
||||
public static String objectClass = "inetOrgPerson";
|
||||
public static final String DISTINGUISHEDNAME = "distinguishedname";
|
||||
//person sup top
|
||||
/**person sn MUST*/
|
||||
|
||||
@@ -29,6 +29,7 @@ import java.util.Arrays;
|
||||
public class Organization {
|
||||
public static ArrayList<String> OBJECTCLASS = new ArrayList<>(Arrays.asList("top", "organization"));
|
||||
|
||||
public static String objectClass = "organization";
|
||||
public static final String DISTINGUISHEDNAME = "distinguishedname";
|
||||
|
||||
/**Organization o*/
|
||||
@@ -76,4 +77,7 @@ public class Organization {
|
||||
/**Organization l*/
|
||||
public static final String L = "l";
|
||||
|
||||
//for id
|
||||
public static final String CN = "cn";
|
||||
|
||||
}
|
||||
|
||||
@@ -28,6 +28,7 @@ import java.util.Arrays;
|
||||
*/
|
||||
public class OrganizationalUnit {
|
||||
public static ArrayList<String> OBJECTCLASS = new ArrayList<>(Arrays.asList("top", "OrganizationalUnit"));
|
||||
public static String objectClass = "OrganizationalUnit";
|
||||
public static final String DISTINGUISHEDNAME = "distinguishedname";
|
||||
/**OrganizationalUnit ou*/
|
||||
public static final String OU = "ou";
|
||||
@@ -79,4 +80,7 @@ public class OrganizationalUnit {
|
||||
public static final String COUNTRYCODE = "countryCode";//156
|
||||
public static final String NAME = "name";
|
||||
|
||||
//for id
|
||||
public static final String CN = "cn";
|
||||
|
||||
}
|
||||
|
||||
@@ -34,7 +34,8 @@ public class ActiveDirectoryUtils extends LdapUtils {
|
||||
private final static Logger _logger = LoggerFactory.getLogger(ActiveDirectoryUtils.class);
|
||||
|
||||
protected String domain;
|
||||
|
||||
|
||||
String activeDirectoryDomain;
|
||||
/**
|
||||
*
|
||||
*/
|
||||
@@ -78,21 +79,26 @@ public class ActiveDirectoryUtils extends LdapUtils {
|
||||
props.setProperty(Context.SECURITY_AUTHENTICATION, "simple");
|
||||
|
||||
props.setProperty(Context.PROVIDER_URL, providerUrl);
|
||||
if (domain.indexOf(".") > -1) {
|
||||
domain = domain.substring(0, domain.indexOf("."));
|
||||
|
||||
if (activeDirectoryDomain == null && domain.indexOf(".") > -1) {
|
||||
activeDirectoryDomain = domain.substring(0, domain.indexOf("."));
|
||||
}else {
|
||||
activeDirectoryDomain = domain;
|
||||
}
|
||||
_logger.info("PROVIDER_DOMAIN:" + domain);
|
||||
String activeDirectoryPrincipal = domain + "\\" + principal;
|
||||
|
||||
_logger.info("PROVIDER_DOMAIN:" + activeDirectoryDomain + " for " + domain);
|
||||
String activeDirectoryPrincipal = activeDirectoryDomain + "\\" + principal;
|
||||
_logger.debug("Active Directory SECURITY_PRINCIPAL : " + activeDirectoryPrincipal);
|
||||
props.setProperty(Context.SECURITY_PRINCIPAL, activeDirectoryPrincipal);
|
||||
props.setProperty(Context.SECURITY_CREDENTIALS, credentials);
|
||||
|
||||
if (ssl && providerUrl.toLowerCase().startsWith("ldaps")) {
|
||||
_logger.info("ldaps security protocol.");
|
||||
System.setProperty("javax.net.ssl.trustStore", trustStore);
|
||||
System.setProperty("javax.net.ssl.trustStorePassword", trustStorePassword);
|
||||
props.put(Context.SECURITY_PROTOCOL, "ssl");
|
||||
props.put(Context.REFERRAL, "follow");
|
||||
}
|
||||
props.put(Context.REFERRAL, "follow");
|
||||
|
||||
return InitialDirContext(props);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user