diff --git a/maxkey-authentications/maxkey-authentication-core/src/main/java/org/maxkey/authn/support/rememberme/InMemoryRemeberMeService.java b/maxkey-authentications/maxkey-authentication-core/src/main/java/org/maxkey/authn/support/rememberme/InMemoryRemeberMeService.java index fb472ad1..7e66a7e4 100644 --- a/maxkey-authentications/maxkey-authentication-core/src/main/java/org/maxkey/authn/support/rememberme/InMemoryRemeberMeService.java +++ b/maxkey-authentications/maxkey-authentication-core/src/main/java/org/maxkey/authn/support/rememberme/InMemoryRemeberMeService.java @@ -28,7 +28,7 @@ public class InMemoryRemeberMeService extends AbstractRemeberMeService { protected static final Cache remeberMeStore = Caffeine.newBuilder() - .expireAfterWrite(ConstsTimeInterval.TWO_WEEK, TimeUnit.MINUTES) + .expireAfterWrite(ConstsTimeInterval.TWO_WEEK, TimeUnit.SECONDS) .build(); @Override diff --git a/maxkey-common/src/main/java/org/maxkey/util/HttpsTrusts.java b/maxkey-common/src/main/java/org/maxkey/util/HttpsTrusts.java index c6601baf..a94cd5e7 100644 --- a/maxkey-common/src/main/java/org/maxkey/util/HttpsTrusts.java +++ b/maxkey-common/src/main/java/org/maxkey/util/HttpsTrusts.java @@ -31,7 +31,8 @@ public class HttpsTrusts { sc.init(null, trustAllCerts, null); javax.net.ssl.HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory()); } - /* + + /** * https ssl auto trust */ public static void beforeConnection() { diff --git a/maxkey-common/src/main/java/org/maxkey/util/Preconditions.java b/maxkey-common/src/main/java/org/maxkey/util/Preconditions.java index fc898ac4..5e88f65e 100644 --- a/maxkey-common/src/main/java/org/maxkey/util/Preconditions.java +++ b/maxkey-common/src/main/java/org/maxkey/util/Preconditions.java @@ -20,7 +20,6 @@ package org.maxkey.util; import java.util.Locale; import java.util.regex.Pattern; -import org.maxkey.client.oauth.model.OAuthConstants; /** * Utils for checking preconditions and invariants @@ -31,6 +30,8 @@ public abstract class Preconditions { // scheme = alpha *( alpha | digit | "+" | "-" | "." ) private static final String URL_REGEXP = "^[a-zA-Z][a-zA-Z0-9+.-]*://\\S+"; + + private static final String OUT_OF_BAND = "oob"; /** * Checks that an object is not null. @@ -75,7 +76,7 @@ public abstract class Preconditions { */ public static void checkValidOAuthCallback(String url, String errorMsg) { checkEmptyString(url, errorMsg); - if (url.toLowerCase(Locale.getDefault()).compareToIgnoreCase(OAuthConstants.OUT_OF_BAND) != 0) { + if (url.toLowerCase(Locale.getDefault()).compareToIgnoreCase(OUT_OF_BAND) != 0) { check(isUrl(url), errorMsg); } } diff --git a/maxkey-common/src/test/java/org/maxkey/util/InstanceTest.java b/maxkey-common/src/test/java/org/maxkey/util/InstanceTest.java index 32190bcf..4ed6a3b2 100644 --- a/maxkey-common/src/test/java/org/maxkey/util/InstanceTest.java +++ b/maxkey-common/src/test/java/org/maxkey/util/InstanceTest.java @@ -20,7 +20,8 @@ package org.maxkey.util; import java.security.Provider; import java.security.Security; -import org.maxkey.client.crypto.ReciprocalUtils; +import org.maxkey.crypto.password.PasswordReciprocal; + public class InstanceTest { @@ -28,9 +29,9 @@ public class InstanceTest { if(System.getProperty("java.version").startsWith("1.8")) { System.out.println("1.8"); Security.addProvider((Provider)Instance.newInstance("com.sun.crypto.provider.SunJCE")); - System.out.println(ReciprocalUtils.encode("ddddd")); + System.out.println(PasswordReciprocal.getInstance().encode("ddddd")); - System.out.println(ReciprocalUtils.encode("ddfs")); + System.out.println(PasswordReciprocal.getInstance().encode("ddfs")); }else { System.out.println("other"); } diff --git a/maxkey-core/src/main/java/org/maxkey/constants/ConstsStatus.java b/maxkey-core/src/main/java/org/maxkey/constants/ConstsStatus.java index 610cb4c6..ceddc9b4 100644 --- a/maxkey-core/src/main/java/org/maxkey/constants/ConstsStatus.java +++ b/maxkey-core/src/main/java/org/maxkey/constants/ConstsStatus.java @@ -48,5 +48,11 @@ public final class ConstsStatus { public static final int APPROVED = 14; public static final int QUITED = 15; + + public static final String NONE = "NONE"; + + public static final String YES = "YES"; + + public static final String NO = "NO"; } diff --git a/maxkey-core/src/main/java/org/maxkey/constants/ldap/ActiveDirectoryUser.java b/maxkey-core/src/main/java/org/maxkey/constants/ldap/ActiveDirectoryUser.java index 52dab79b..8ac46cd1 100644 --- a/maxkey-core/src/main/java/org/maxkey/constants/ldap/ActiveDirectoryUser.java +++ b/maxkey-core/src/main/java/org/maxkey/constants/ldap/ActiveDirectoryUser.java @@ -121,7 +121,13 @@ public class ActiveDirectoryUser { public static final String NAME = "name"; public static final String UID = "uid"; + /** + * First Name + */ public static final String GIVENNAME = "givenName"; + /** + * Last Name/SurName + */ public static final String SN = "sn"; public static final String INITIALS = "initials"; public static final String DESCRIPTION = "description"; @@ -143,8 +149,13 @@ public class ActiveDirectoryUser { public static final String INFO = "info"; public static final String HOMEPHONE = "homePhone"; - + /** + * admin@maxkey.top + */ public static final String USERPRINCIPALNAME = "userPrincipalName"; + /** + * maxkey\admin + */ public static final String SAMACCOUNTNAME = "sAMAccountname"; public static final String LOGONHOURS = "logonHours"; public static final String LOGONWORKSTATION = "logonWorkstation"; diff --git a/maxkey-core/src/main/java/org/maxkey/entity/UserInfo.java b/maxkey-core/src/main/java/org/maxkey/entity/UserInfo.java index b581be39..477e95bb 100644 --- a/maxkey-core/src/main/java/org/maxkey/entity/UserInfo.java +++ b/maxkey-core/src/main/java/org/maxkey/entity/UserInfo.java @@ -19,7 +19,6 @@ package org.maxkey.entity; import com.fasterxml.jackson.annotation.JsonIgnore; import java.io.IOException; -import java.util.Arrays; import java.util.HashMap; import java.util.List; @@ -271,80 +270,80 @@ public class UserInfo extends JpaBaseEntity { public static class ONLINE { // 在线 - public static final int ONLINE = 1; + public static final int ONLINE = 1; // 下线 - public static final int OFFLINE = 0; + public static final int OFFLINE = 0; } public static class MARRIED { // 未知 - public static final int UNKNOWN = 0; + public static final int UNKNOWN = 0; // 单身 - public static final int SINGLE = 1; + public static final int SINGLE = 1; // 结婚 - public static final int MARRIED = 2; + public static final int MARRIED = 2; // 离异 - public static final int DIVORCE = 3; + public static final int DIVORCE = 3; // 丧偶 - public static final int WIDOWED = 4; + public static final int WIDOWED = 4; } public static class GENDER { // 未知 - public static final int UNKNOWN = 0; + public static final int UNKNOWN = 0; // 女性 - public static final int FEMALE = 1; + public static final int FEMALE = 1; // 男性 - public static final int MALE = 2; + public static final int MALE = 2; } public static class IDTYPE { // 未知 - public static final int UNKNOWN = 0; + public static final int UNKNOWN = 0; // 身份证 - public static final int IDCARD = 1; + public static final int IDCARD = 1; // 护照 - public static final int PASSPORT = 2; + public static final int PASSPORT = 2; // 学生证 - public static final int STUDENTCARD = 3; + public static final int STUDENTCARD = 3; // 军人证 - public static final int MILITARYCARD = 4; + public static final int MILITARYCARD = 4; } public static class AUTHNTYPE { // 用户名密码 - public static final int NORMAL = 1; + public static final int NORMAL = 1; // 手机 - public static final int MOBILE = 2; + public static final int MOBILE = 2; // 短信 - public static final int SMS = 3; + public static final int SMS = 3; // 邮箱 - public static final int EMAIL = 4; + public static final int EMAIL = 4; - public static final int TIMEBASED_OPT = 5; + public static final int TIMEBASED_OPT = 5; - public static final int COUNTERBASED_OPT = 6; + public static final int COUNTERBASED_OPT = 6; - public static final int HOTP_OPT = 7; + public static final int HOTP_OPT = 7; - public static final int RSA_OPT = 8; + public static final int RSA_OPT = 8; // 证书 - public static final int CERTIFICATE = 9; + public static final int CERTIFICATE = 9; // usb证书 - public static final int USBKEY = 10; + public static final int USBKEY = 10; } public static class EMPLOYMENTSTATUS { // 在册人员 - public static final int ACTIVE = 1; + public static final int ACTIVE = 1; // 离职人员 - public static final int WITHDRAWN = 2; + public static final int WITHDRAWN = 2; // 停薪留职人员 - public static final int INACTIVE = 3; + public static final int INACTIVE = 3; // 退休人员 - public static final int RETIREE = 4; + public static final int RETIREE = 4; } @@ -1324,10 +1323,6 @@ public class UserInfo extends JpaBaseEntity { builder.append(gender); builder.append(", birthDate="); builder.append(birthDate); - builder.append(", picture="); - builder.append(Arrays.toString(picture)); - builder.append(", pictureFile="); - builder.append(pictureFile); builder.append(", idType="); builder.append(idType); builder.append(", idCardNo="); diff --git a/maxkey-lib/maxkey-client-sdk-2.0.0.RELEASE.jar b/maxkey-lib/maxkey-client-sdk-2.0.0.RELEASE.jar deleted file mode 100644 index 38aff510..00000000 Binary files a/maxkey-lib/maxkey-client-sdk-2.0.0.RELEASE.jar and /dev/null differ diff --git a/maxkey-protocols/maxkey-protocol-extendapi/src/main/java/org/maxkey/authz/exapi/endpoint/adapter/ExtendApiCndnsApiMailAdapter.java b/maxkey-protocols/maxkey-protocol-extendapi/src/main/java/org/maxkey/authz/exapi/endpoint/adapter/ExtendApiCndnsApiMailAdapter.java index 05e2469b..88386ac5 100644 --- a/maxkey-protocols/maxkey-protocol-extendapi/src/main/java/org/maxkey/authz/exapi/endpoint/adapter/ExtendApiCndnsApiMailAdapter.java +++ b/maxkey-protocols/maxkey-protocol-extendapi/src/main/java/org/maxkey/authz/exapi/endpoint/adapter/ExtendApiCndnsApiMailAdapter.java @@ -20,14 +20,13 @@ package org.maxkey.authz.exapi.endpoint.adapter; import java.time.Instant; import java.util.HashMap; import org.maxkey.authz.endpoint.adapter.AbstractAuthorizeAdapter; -import org.maxkey.client.http.HttpVerb; -import org.maxkey.client.oauth.OAuthClient; import org.maxkey.crypto.DigestUtils; import org.maxkey.entity.Accounts; import org.maxkey.entity.ExtraAttrs; import org.maxkey.entity.apps.Apps; import org.maxkey.util.HttpsTrusts; import org.maxkey.util.JsonUtils; +import org.maxkey.web.HttpRequestAdapter; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.web.servlet.ModelAndView; @@ -88,7 +87,7 @@ public class ExtendApiCndnsApiMailAdapter extends AbstractAuthorizeAdapter { String timestamp = ""+Instant.now().getEpochSecond(); String tokenMd5 =DigestUtils.md5Hex(details.getCredentials()); - HashMap requestParamenter =new HashMap(); + HashMap requestParamenter =new HashMap(); String redirect_uri = ""; if(action.equalsIgnoreCase("getDomailUrl")) { String sign =DigestUtils.md5Hex @@ -96,12 +95,11 @@ public class ExtendApiCndnsApiMailAdapter extends AbstractAuthorizeAdapter { SIGN_STRING, details.getPrincipal(),timestamp,tokenMd5)); requestParamenter.put("domain", domain); - OAuthClient authkeyRestClient=new OAuthClient( - String.format(ADMIN_AUTHKEY_URI,details.getPrincipal(),sign,timestamp),HttpVerb.POST); - authkeyRestClient.addRestObject(requestParamenter); + String responseBody = new HttpRequestAdapter().post( + String.format(ADMIN_AUTHKEY_URI,details.getPrincipal(),sign,timestamp),requestParamenter); - HashMap authKey=JsonUtils.gson2Object(authkeyRestClient.execute().getBody(), HashMap.class); - redirect_uri=authKey.get("adminUrl"); + HashMap authKey=JsonUtils.gson2Object(responseBody, HashMap.class); + redirect_uri = authKey.get("adminUrl"); }else { String sign =DigestUtils.md5Hex @@ -109,11 +107,10 @@ public class ExtendApiCndnsApiMailAdapter extends AbstractAuthorizeAdapter { SIGN_EMAIL_STRING, details.getPrincipal(),userInfo.getEmail(),timestamp,tokenMd5)); requestParamenter.put("email", userInfo.getWorkEmail()); - OAuthClient authkeyRestClient=new OAuthClient( - String.format(AUTHKEY_URI,details.getPrincipal(),sign,timestamp),HttpVerb.POST); - authkeyRestClient.addRestObject(requestParamenter); + String responseBody = new HttpRequestAdapter().post( + String.format(AUTHKEY_URI,details.getPrincipal(),sign,timestamp),requestParamenter); - HashMap authKey=JsonUtils.gson2Object(authkeyRestClient.execute().getBody(), HashMap.class); + HashMap authKey=JsonUtils.gson2Object(responseBody, HashMap.class); redirect_uri=authKey.get("webmailUrl"); } diff --git a/maxkey-protocols/maxkey-protocol-extendapi/src/main/java/org/maxkey/authz/exapi/endpoint/adapter/ExtendApiQQExmailAdapter.java b/maxkey-protocols/maxkey-protocol-extendapi/src/main/java/org/maxkey/authz/exapi/endpoint/adapter/ExtendApiQQExmailAdapter.java index df84b0fb..84cd9627 100644 --- a/maxkey-protocols/maxkey-protocol-extendapi/src/main/java/org/maxkey/authz/exapi/endpoint/adapter/ExtendApiQQExmailAdapter.java +++ b/maxkey-protocols/maxkey-protocol-extendapi/src/main/java/org/maxkey/authz/exapi/endpoint/adapter/ExtendApiQQExmailAdapter.java @@ -17,15 +17,15 @@ package org.maxkey.authz.exapi.endpoint.adapter; -import java.util.HashMap; +import java.io.Serializable; + import org.maxkey.authz.endpoint.adapter.AbstractAuthorizeAdapter; -import org.maxkey.client.oauth.OAuthClient; -import org.maxkey.client.oauth.model.Token; import org.maxkey.entity.Accounts; import org.maxkey.entity.ExtraAttrs; import org.maxkey.entity.apps.Apps; import org.maxkey.util.HttpsTrusts; import org.maxkey.util.JsonUtils; +import org.maxkey.web.HttpRequestAdapter; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.web.servlet.ModelAndView; @@ -38,9 +38,9 @@ import org.springframework.web.servlet.ModelAndView; public class ExtendApiQQExmailAdapter extends AbstractAuthorizeAdapter { final static Logger _logger = LoggerFactory.getLogger(ExtendApiQQExmailAdapter.class); //https://exmail.qq.com/qy_mng_logic/doc#10003 - static String TOKEN_URI="https://api.exmail.qq.com/cgi-bin/gettoken?corpid=%s&corpsecret=%s"; + static String TOKEN_URI = "https://api.exmail.qq.com/cgi-bin/gettoken?corpid=%s&corpsecret=%s"; //https://exmail.qq.com/qy_mng_logic/doc#10036 - static String AUTHKEY_URI="https://api.exmail.qq.com/cgi-bin/service/get_login_url?access_token=%s&userid=%s"; + static String AUTHKEY_URI = "https://api.exmail.qq.com/cgi-bin/service/get_login_url?access_token=%s&userid=%s"; Accounts account; @@ -49,8 +49,6 @@ public class ExtendApiQQExmailAdapter extends AbstractAuthorizeAdapter { return null; } - - @SuppressWarnings("unchecked") @Override public ModelAndView authorize(ModelAndView modelAndView) { HttpsTrusts.beforeConnection(); @@ -62,23 +60,111 @@ public class ExtendApiQQExmailAdapter extends AbstractAuthorizeAdapter { extraAttrs=new ExtraAttrs(details.getExtendAttr()); } _logger.debug("Extra Attrs "+extraAttrs); - OAuthClient tokenRestClient=new OAuthClient( - String.format(TOKEN_URI,details.getPrincipal(),details.getCredentials())); - Token token =tokenRestClient.requestAccessToken(); - _logger.debug(""+token); + String responseBody = new HttpRequestAdapter().get( + String.format(TOKEN_URI,details.getPrincipal(),details.getCredentials()),null); + Token token =JsonUtils.gson2Object(responseBody,Token.class); + _logger.debug("token {}" , token); - OAuthClient authkeyRestClient=new OAuthClient( - String.format(AUTHKEY_URI,token.getAccess_token(),userInfo.getUsername())); + String authKeyBody = new HttpRequestAdapter().get( + String.format(AUTHKEY_URI,token.getAccess_token(),userInfo.getUsername()),null); - HashMap authKey=JsonUtils.gson2Object(authkeyRestClient.execute().getBody(), HashMap.class); - _logger.debug("authKey : "+authKey); + LoginUrl loginUrl=JsonUtils.gson2Object(authKeyBody, LoginUrl.class); + _logger.debug("LoginUrl {} " , loginUrl); - String redirect_uri=authKey.get("login_url"); - _logger.debug("redirect_uri : "+redirect_uri); - modelAndView.addObject("redirect_uri", redirect_uri); + modelAndView.addObject("redirect_uri", loginUrl.getLogin_url()); return modelAndView; } + + class ExMailMsg{ + + protected long expires_in; + + protected String errmsg; + + protected long errcode; + + public ExMailMsg() { + } + + public long getExpires_in() { + return expires_in; + } + + public void setExpires_in(long expires_in) { + this.expires_in = expires_in; + } + + public String getErrmsg() { + return errmsg; + } + + public void setErrmsg(String errmsg) { + this.errmsg = errmsg; + } + + public long getErrcode() { + return errcode; + } + + public void setErrcode(long errcode) { + this.errcode = errcode; + } + + + } + + class Token extends ExMailMsg implements Serializable { + private static final long serialVersionUID = 275756585220635542L; + + /** + * access_token + */ + private String access_token; + + public String getAccess_token() { + return access_token; + } + + public void setAccess_token(String access_token) { + this.access_token = access_token; + } + + @Override + public String toString() { + StringBuilder builder = new StringBuilder(); + builder.append("Token [access_token="); + builder.append(access_token); + builder.append("]"); + return builder.toString(); + } + + } + + class LoginUrl extends ExMailMsg implements Serializable { + private static final long serialVersionUID = 3033047757268214198L; + private String login_url; + + public String getLogin_url() { + return login_url; + } + + public void setLogin_url(String login_url) { + this.login_url = login_url; + } + + public LoginUrl() { + } + + @Override + public String toString() { + StringBuilder builder = new StringBuilder(); + builder.append("LoginUrl [login_url="); + builder.append(login_url); + builder.append("]"); + return builder.toString(); + } + } } diff --git a/maxkey-synchronizers/maxkey-synchronizer-activedirectory/src/main/java/org/maxkey/synchronizer/activedirectory/ActiveDirectoryUsersService.java b/maxkey-synchronizers/maxkey-synchronizer-activedirectory/src/main/java/org/maxkey/synchronizer/activedirectory/ActiveDirectoryUsersService.java index 87b4fd7d..67f06e43 100644 --- a/maxkey-synchronizers/maxkey-synchronizer-activedirectory/src/main/java/org/maxkey/synchronizer/activedirectory/ActiveDirectoryUsersService.java +++ b/maxkey-synchronizers/maxkey-synchronizer-activedirectory/src/main/java/org/maxkey/synchronizer/activedirectory/ActiveDirectoryUsersService.java @@ -117,43 +117,44 @@ public class ActiveDirectoryUsersService extends AbstractSynchronizerService userInfo.setDepartmentId(deptOrg.getId()); try { userInfo.setId(userInfo.generateId()); - userInfo.setFormattedName(LdapUtils.getAttributeStringValue(ActiveDirectoryUser.CN,attributeMap));//閸忋劌鎮� - //鐠愶附鍩� - userInfo.setUsername(LdapUtils.getAttributeStringValue(ActiveDirectoryUser.SAMACCOUNTNAME,attributeMap));//鐠愶箑褰� - userInfo.setWindowsAccount(LdapUtils.getAttributeStringValue(ActiveDirectoryUser.USERPRINCIPALNAME,attributeMap));//閻ц缍� + userInfo.setFormattedName(LdapUtils.getAttributeStringValue(ActiveDirectoryUser.CN,attributeMap));//cn + // + userInfo.setUsername(LdapUtils.getAttributeStringValue(ActiveDirectoryUser.SAMACCOUNTNAME,attributeMap));//WindowsAccount + userInfo.setWindowsAccount(LdapUtils.getAttributeStringValue(ActiveDirectoryUser.SAMACCOUNTNAME,attributeMap)); + //userInfo.setWindowsAccount(LdapUtils.getAttributeStringValue(ActiveDirectoryUser.USERPRINCIPALNAME,attributeMap));// - //鐢瓕顫� - userInfo.setFamilyName(LdapUtils.getAttributeStringValue(ActiveDirectoryUser.SN,attributeMap));//婵拷 - userInfo.setGivenName(LdapUtils.getAttributeStringValue(ActiveDirectoryUser.GIVENNAME,attributeMap));//閸氾拷 - userInfo.setNickName(LdapUtils.getAttributeStringValue(ActiveDirectoryUser.INITIALS,attributeMap));//閺勭數袨 - userInfo.setNameZhShortSpell(LdapUtils.getAttributeStringValue(ActiveDirectoryUser.INITIALS,attributeMap));//閼昏鲸鏋冪紓鈺佸晸 - userInfo.setDisplayName(LdapUtils.getAttributeStringValue(ActiveDirectoryUser.DISPLAYNAME,attributeMap));//閺勫墽銇氶崥宥囆� - userInfo.setDescription(LdapUtils.getAttributeStringValue(ActiveDirectoryUser.DESCRIPTION,attributeMap));//閹诲繗鍫� - userInfo.setWorkPhoneNumber(LdapUtils.getAttributeStringValue(ActiveDirectoryUser.TELEPHONENUMBER,attributeMap));//閻絻鐦介崣椋庣垳 - userInfo.setWorkOfficeName(LdapUtils.getAttributeStringValue(ActiveDirectoryUser.PHYSICALDELIVERYOFFICENAME,attributeMap));//閸旂偛鍙曠�癸拷 - userInfo.setWorkEmail(LdapUtils.getAttributeStringValue(ActiveDirectoryUser.MAIL,attributeMap));//闁喕娆� - userInfo.setWebSite(LdapUtils.getAttributeStringValue(ActiveDirectoryUser.WWWHOMEPAGE,attributeMap));//缂冩垿銆� - //閸︽澘娼� - userInfo.setWorkCountry(LdapUtils.getAttributeStringValue(ActiveDirectoryUser.CO,attributeMap));//閸ヨ棄顔� - userInfo.setWorkRegion(LdapUtils.getAttributeStringValue(ActiveDirectoryUser.ST,attributeMap));//閻拷 - userInfo.setWorkLocality(LdapUtils.getAttributeStringValue(ActiveDirectoryUser.L,attributeMap));//閸橈拷 - userInfo.setWorkStreetAddress(LdapUtils.getAttributeStringValue(ActiveDirectoryUser.STREETADDRESS,attributeMap));//鐞涙浜� - userInfo.setWorkPostalCode(LdapUtils.getAttributeStringValue(ActiveDirectoryUser.POSTALCODE,attributeMap));//闁喚绱� - userInfo.setWorkAddressFormatted(LdapUtils.getAttributeStringValue(ActiveDirectoryUser.POSTOFFICEBOX,attributeMap));//闁喗鏂傞柇顔绢唸 + // + userInfo.setFamilyName(LdapUtils.getAttributeStringValue(ActiveDirectoryUser.SN,attributeMap));//Last Name/SurName + userInfo.setGivenName(LdapUtils.getAttributeStringValue(ActiveDirectoryUser.GIVENNAME,attributeMap));//First Name + userInfo.setNickName(LdapUtils.getAttributeStringValue(ActiveDirectoryUser.INITIALS,attributeMap));//Initials + userInfo.setNameZhShortSpell(LdapUtils.getAttributeStringValue(ActiveDirectoryUser.INITIALS,attributeMap));//Initials + userInfo.setDisplayName(LdapUtils.getAttributeStringValue(ActiveDirectoryUser.DISPLAYNAME,attributeMap));// + userInfo.setDescription(LdapUtils.getAttributeStringValue(ActiveDirectoryUser.DESCRIPTION,attributeMap));// + userInfo.setWorkPhoneNumber(LdapUtils.getAttributeStringValue(ActiveDirectoryUser.TELEPHONENUMBER,attributeMap));// + userInfo.setWorkOfficeName(LdapUtils.getAttributeStringValue(ActiveDirectoryUser.PHYSICALDELIVERYOFFICENAME,attributeMap));// + userInfo.setWorkEmail(LdapUtils.getAttributeStringValue(ActiveDirectoryUser.MAIL,attributeMap));// + userInfo.setWebSite(LdapUtils.getAttributeStringValue(ActiveDirectoryUser.WWWHOMEPAGE,attributeMap));// + // + userInfo.setWorkCountry(LdapUtils.getAttributeStringValue(ActiveDirectoryUser.CO,attributeMap));// + userInfo.setWorkRegion(LdapUtils.getAttributeStringValue(ActiveDirectoryUser.ST,attributeMap));// + userInfo.setWorkLocality(LdapUtils.getAttributeStringValue(ActiveDirectoryUser.L,attributeMap));// + userInfo.setWorkStreetAddress(LdapUtils.getAttributeStringValue(ActiveDirectoryUser.STREETADDRESS,attributeMap));// + userInfo.setWorkPostalCode(LdapUtils.getAttributeStringValue(ActiveDirectoryUser.POSTALCODE,attributeMap));// + userInfo.setWorkAddressFormatted(LdapUtils.getAttributeStringValue(ActiveDirectoryUser.POSTOFFICEBOX,attributeMap));// if(LdapUtils.getAttributeStringValue(ActiveDirectoryUser.MOBILE,attributeMap).equals("")) { userInfo.setMobile(userInfo.getId()); }else { - userInfo.setMobile(LdapUtils.getAttributeStringValue(ActiveDirectoryUser.MOBILE,attributeMap));//閹靛婧� + userInfo.setMobile(LdapUtils.getAttributeStringValue(ActiveDirectoryUser.MOBILE,attributeMap));// } - userInfo.setHomePhoneNumber(LdapUtils.getAttributeStringValue(ActiveDirectoryUser.HOMEPHONE,attributeMap));//鐎硅泛娑甸悽浣冪樈 - userInfo.setWorkFax(LdapUtils.getAttributeStringValue(ActiveDirectoryUser.FACSIMILETELEPHONENUMBER,attributeMap));//娴肩姷婀� - userInfo.setHomeAddressFormatted(LdapUtils.getAttributeStringValue(ActiveDirectoryUser.INFO,attributeMap));//閻絻鐦芥径鍥ㄦ暈 + userInfo.setHomePhoneNumber(LdapUtils.getAttributeStringValue(ActiveDirectoryUser.HOMEPHONE,attributeMap));// + userInfo.setWorkFax(LdapUtils.getAttributeStringValue(ActiveDirectoryUser.FACSIMILETELEPHONENUMBER,attributeMap));// + userInfo.setHomeAddressFormatted(LdapUtils.getAttributeStringValue(ActiveDirectoryUser.INFO,attributeMap));// - userInfo.setDivision(LdapUtils.getAttributeStringValue(ActiveDirectoryUser.COMPANY,attributeMap)); //閸忣剙寰� - //userInfo.setDepartment(LdapUtils.getAttributeStringValue(ActiveDirectoryUser.DEPARTMENT,attributeMap)); //闁劑妫� - //userInfo.setDepartmentId(LdapUtils.getAttributeStringValue(ActiveDirectoryUser.DEPARTMENT,attributeMap)); //闁劑妫紓鏍у娇 - userInfo.setJobTitle(LdapUtils.getAttributeStringValue(ActiveDirectoryUser.TITLE,attributeMap));//閼卞苯濮� + userInfo.setDivision(LdapUtils.getAttributeStringValue(ActiveDirectoryUser.COMPANY,attributeMap)); // + //userInfo.setDepartment(LdapUtils.getAttributeStringValue(ActiveDirectoryUser.DEPARTMENT,attributeMap)); // + //userInfo.setDepartmentId(LdapUtils.getAttributeStringValue(ActiveDirectoryUser.DEPARTMENT,attributeMap)); // + userInfo.setJobTitle(LdapUtils.getAttributeStringValue(ActiveDirectoryUser.TITLE,attributeMap));// userInfo.setUserState("RESIDENT"); userInfo.setUserType("EMPLOYEE"); userInfo.setTimeZone("Asia/Shanghai");