mirror of
https://gitee.com/dromara/MaxKey.git
synced 2025-12-07 01:18:27 +08:00
optimize
This commit is contained in:
parent
d88dc90b6f
commit
61673b4b07
@ -28,7 +28,7 @@ public class InMemoryRemeberMeService extends AbstractRemeberMeService {
|
|||||||
|
|
||||||
protected static final Cache<String, RemeberMe> remeberMeStore =
|
protected static final Cache<String, RemeberMe> remeberMeStore =
|
||||||
Caffeine.newBuilder()
|
Caffeine.newBuilder()
|
||||||
.expireAfterWrite(ConstsTimeInterval.TWO_WEEK, TimeUnit.MINUTES)
|
.expireAfterWrite(ConstsTimeInterval.TWO_WEEK, TimeUnit.SECONDS)
|
||||||
.build();
|
.build();
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@ -31,7 +31,8 @@ public class HttpsTrusts {
|
|||||||
sc.init(null, trustAllCerts, null);
|
sc.init(null, trustAllCerts, null);
|
||||||
javax.net.ssl.HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory());
|
javax.net.ssl.HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory());
|
||||||
}
|
}
|
||||||
/*
|
|
||||||
|
/**
|
||||||
* https ssl auto trust
|
* https ssl auto trust
|
||||||
*/
|
*/
|
||||||
public static void beforeConnection() {
|
public static void beforeConnection() {
|
||||||
|
|||||||
@ -20,7 +20,6 @@ package org.maxkey.util;
|
|||||||
import java.util.Locale;
|
import java.util.Locale;
|
||||||
import java.util.regex.Pattern;
|
import java.util.regex.Pattern;
|
||||||
|
|
||||||
import org.maxkey.client.oauth.model.OAuthConstants;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Utils for checking preconditions and invariants
|
* Utils for checking preconditions and invariants
|
||||||
@ -31,6 +30,8 @@ public abstract class Preconditions {
|
|||||||
|
|
||||||
// scheme = alpha *( alpha | digit | "+" | "-" | "." )
|
// scheme = alpha *( alpha | digit | "+" | "-" | "." )
|
||||||
private static final String URL_REGEXP = "^[a-zA-Z][a-zA-Z0-9+.-]*://\\S+";
|
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.
|
* Checks that an object is not null.
|
||||||
@ -75,7 +76,7 @@ public abstract class Preconditions {
|
|||||||
*/
|
*/
|
||||||
public static void checkValidOAuthCallback(String url, String errorMsg) {
|
public static void checkValidOAuthCallback(String url, String errorMsg) {
|
||||||
checkEmptyString(url, 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);
|
check(isUrl(url), errorMsg);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -20,7 +20,8 @@ package org.maxkey.util;
|
|||||||
import java.security.Provider;
|
import java.security.Provider;
|
||||||
import java.security.Security;
|
import java.security.Security;
|
||||||
|
|
||||||
import org.maxkey.client.crypto.ReciprocalUtils;
|
import org.maxkey.crypto.password.PasswordReciprocal;
|
||||||
|
|
||||||
|
|
||||||
public class InstanceTest {
|
public class InstanceTest {
|
||||||
|
|
||||||
@ -28,9 +29,9 @@ public class InstanceTest {
|
|||||||
if(System.getProperty("java.version").startsWith("1.8")) {
|
if(System.getProperty("java.version").startsWith("1.8")) {
|
||||||
System.out.println("1.8");
|
System.out.println("1.8");
|
||||||
Security.addProvider((Provider)Instance.newInstance("com.sun.crypto.provider.SunJCE"));
|
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 {
|
}else {
|
||||||
System.out.println("other");
|
System.out.println("other");
|
||||||
}
|
}
|
||||||
|
|||||||
@ -48,5 +48,11 @@ public final class ConstsStatus {
|
|||||||
public static final int APPROVED = 14;
|
public static final int APPROVED = 14;
|
||||||
|
|
||||||
public static final int QUITED = 15;
|
public static final int QUITED = 15;
|
||||||
|
|
||||||
|
public static final String NONE = "NONE";
|
||||||
|
|
||||||
|
public static final String YES = "YES";
|
||||||
|
|
||||||
|
public static final String NO = "NO";
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -121,7 +121,13 @@ public class ActiveDirectoryUser {
|
|||||||
public static final String NAME = "name";
|
public static final String NAME = "name";
|
||||||
public static final String UID = "uid";
|
public static final String UID = "uid";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* First Name
|
||||||
|
*/
|
||||||
public static final String GIVENNAME = "givenName";
|
public static final String GIVENNAME = "givenName";
|
||||||
|
/**
|
||||||
|
* Last Name/SurName
|
||||||
|
*/
|
||||||
public static final String SN = "sn";
|
public static final String SN = "sn";
|
||||||
public static final String INITIALS = "initials";
|
public static final String INITIALS = "initials";
|
||||||
public static final String DESCRIPTION = "description";
|
public static final String DESCRIPTION = "description";
|
||||||
@ -143,8 +149,13 @@ public class ActiveDirectoryUser {
|
|||||||
public static final String INFO = "info";
|
public static final String INFO = "info";
|
||||||
public static final String HOMEPHONE = "homePhone";
|
public static final String HOMEPHONE = "homePhone";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* admin@maxkey.top
|
||||||
|
*/
|
||||||
public static final String USERPRINCIPALNAME = "userPrincipalName";
|
public static final String USERPRINCIPALNAME = "userPrincipalName";
|
||||||
|
/**
|
||||||
|
* maxkey\admin
|
||||||
|
*/
|
||||||
public static final String SAMACCOUNTNAME = "sAMAccountname";
|
public static final String SAMACCOUNTNAME = "sAMAccountname";
|
||||||
public static final String LOGONHOURS = "logonHours";
|
public static final String LOGONHOURS = "logonHours";
|
||||||
public static final String LOGONWORKSTATION = "logonWorkstation";
|
public static final String LOGONWORKSTATION = "logonWorkstation";
|
||||||
|
|||||||
@ -19,7 +19,6 @@ package org.maxkey.entity;
|
|||||||
|
|
||||||
import com.fasterxml.jackson.annotation.JsonIgnore;
|
import com.fasterxml.jackson.annotation.JsonIgnore;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.util.Arrays;
|
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@ -271,80 +270,80 @@ public class UserInfo extends JpaBaseEntity {
|
|||||||
|
|
||||||
public static class ONLINE {
|
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 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 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 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 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证书
|
// usb证书
|
||||||
public static final int USBKEY = 10;
|
public static final int USBKEY = 10;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public static class EMPLOYMENTSTATUS {
|
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(gender);
|
||||||
builder.append(", birthDate=");
|
builder.append(", birthDate=");
|
||||||
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(idType);
|
builder.append(idType);
|
||||||
builder.append(", idCardNo=");
|
builder.append(", idCardNo=");
|
||||||
|
|||||||
Binary file not shown.
@ -20,14 +20,13 @@ package org.maxkey.authz.exapi.endpoint.adapter;
|
|||||||
import java.time.Instant;
|
import java.time.Instant;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import org.maxkey.authz.endpoint.adapter.AbstractAuthorizeAdapter;
|
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.crypto.DigestUtils;
|
||||||
import org.maxkey.entity.Accounts;
|
import org.maxkey.entity.Accounts;
|
||||||
import org.maxkey.entity.ExtraAttrs;
|
import org.maxkey.entity.ExtraAttrs;
|
||||||
import org.maxkey.entity.apps.Apps;
|
import org.maxkey.entity.apps.Apps;
|
||||||
import org.maxkey.util.HttpsTrusts;
|
import org.maxkey.util.HttpsTrusts;
|
||||||
import org.maxkey.util.JsonUtils;
|
import org.maxkey.util.JsonUtils;
|
||||||
|
import org.maxkey.web.HttpRequestAdapter;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
import org.springframework.web.servlet.ModelAndView;
|
import org.springframework.web.servlet.ModelAndView;
|
||||||
@ -88,7 +87,7 @@ public class ExtendApiCndnsApiMailAdapter extends AbstractAuthorizeAdapter {
|
|||||||
String timestamp = ""+Instant.now().getEpochSecond();
|
String timestamp = ""+Instant.now().getEpochSecond();
|
||||||
|
|
||||||
String tokenMd5 =DigestUtils.md5Hex(details.getCredentials());
|
String tokenMd5 =DigestUtils.md5Hex(details.getCredentials());
|
||||||
HashMap<String,String > requestParamenter =new HashMap<String,String >();
|
HashMap<String,Object > requestParamenter =new HashMap<String,Object >();
|
||||||
String redirect_uri = "";
|
String redirect_uri = "";
|
||||||
if(action.equalsIgnoreCase("getDomailUrl")) {
|
if(action.equalsIgnoreCase("getDomailUrl")) {
|
||||||
String sign =DigestUtils.md5Hex
|
String sign =DigestUtils.md5Hex
|
||||||
@ -96,12 +95,11 @@ public class ExtendApiCndnsApiMailAdapter extends AbstractAuthorizeAdapter {
|
|||||||
SIGN_STRING,
|
SIGN_STRING,
|
||||||
details.getPrincipal(),timestamp,tokenMd5));
|
details.getPrincipal(),timestamp,tokenMd5));
|
||||||
requestParamenter.put("domain", domain);
|
requestParamenter.put("domain", domain);
|
||||||
OAuthClient authkeyRestClient=new OAuthClient(
|
String responseBody = new HttpRequestAdapter().post(
|
||||||
String.format(ADMIN_AUTHKEY_URI,details.getPrincipal(),sign,timestamp),HttpVerb.POST);
|
String.format(ADMIN_AUTHKEY_URI,details.getPrincipal(),sign,timestamp),requestParamenter);
|
||||||
authkeyRestClient.addRestObject(requestParamenter);
|
|
||||||
|
|
||||||
HashMap<String, String> authKey=JsonUtils.gson2Object(authkeyRestClient.execute().getBody(), HashMap.class);
|
HashMap<String, String> authKey=JsonUtils.gson2Object(responseBody, HashMap.class);
|
||||||
redirect_uri=authKey.get("adminUrl");
|
redirect_uri = authKey.get("adminUrl");
|
||||||
|
|
||||||
}else {
|
}else {
|
||||||
String sign =DigestUtils.md5Hex
|
String sign =DigestUtils.md5Hex
|
||||||
@ -109,11 +107,10 @@ public class ExtendApiCndnsApiMailAdapter extends AbstractAuthorizeAdapter {
|
|||||||
SIGN_EMAIL_STRING,
|
SIGN_EMAIL_STRING,
|
||||||
details.getPrincipal(),userInfo.getEmail(),timestamp,tokenMd5));
|
details.getPrincipal(),userInfo.getEmail(),timestamp,tokenMd5));
|
||||||
requestParamenter.put("email", userInfo.getWorkEmail());
|
requestParamenter.put("email", userInfo.getWorkEmail());
|
||||||
OAuthClient authkeyRestClient=new OAuthClient(
|
String responseBody = new HttpRequestAdapter().post(
|
||||||
String.format(AUTHKEY_URI,details.getPrincipal(),sign,timestamp),HttpVerb.POST);
|
String.format(AUTHKEY_URI,details.getPrincipal(),sign,timestamp),requestParamenter);
|
||||||
authkeyRestClient.addRestObject(requestParamenter);
|
|
||||||
|
|
||||||
HashMap<String, String> authKey=JsonUtils.gson2Object(authkeyRestClient.execute().getBody(), HashMap.class);
|
HashMap<String, String> authKey=JsonUtils.gson2Object(responseBody, HashMap.class);
|
||||||
redirect_uri=authKey.get("webmailUrl");
|
redirect_uri=authKey.get("webmailUrl");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -17,15 +17,15 @@
|
|||||||
|
|
||||||
package org.maxkey.authz.exapi.endpoint.adapter;
|
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.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.Accounts;
|
||||||
import org.maxkey.entity.ExtraAttrs;
|
import org.maxkey.entity.ExtraAttrs;
|
||||||
import org.maxkey.entity.apps.Apps;
|
import org.maxkey.entity.apps.Apps;
|
||||||
import org.maxkey.util.HttpsTrusts;
|
import org.maxkey.util.HttpsTrusts;
|
||||||
import org.maxkey.util.JsonUtils;
|
import org.maxkey.util.JsonUtils;
|
||||||
|
import org.maxkey.web.HttpRequestAdapter;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
import org.springframework.web.servlet.ModelAndView;
|
import org.springframework.web.servlet.ModelAndView;
|
||||||
@ -38,9 +38,9 @@ import org.springframework.web.servlet.ModelAndView;
|
|||||||
public class ExtendApiQQExmailAdapter extends AbstractAuthorizeAdapter {
|
public class ExtendApiQQExmailAdapter extends AbstractAuthorizeAdapter {
|
||||||
final static Logger _logger = LoggerFactory.getLogger(ExtendApiQQExmailAdapter.class);
|
final static Logger _logger = LoggerFactory.getLogger(ExtendApiQQExmailAdapter.class);
|
||||||
//https://exmail.qq.com/qy_mng_logic/doc#10003
|
//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
|
//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;
|
Accounts account;
|
||||||
|
|
||||||
@ -49,8 +49,6 @@ public class ExtendApiQQExmailAdapter extends AbstractAuthorizeAdapter {
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@SuppressWarnings("unchecked")
|
|
||||||
@Override
|
@Override
|
||||||
public ModelAndView authorize(ModelAndView modelAndView) {
|
public ModelAndView authorize(ModelAndView modelAndView) {
|
||||||
HttpsTrusts.beforeConnection();
|
HttpsTrusts.beforeConnection();
|
||||||
@ -62,23 +60,111 @@ public class ExtendApiQQExmailAdapter extends AbstractAuthorizeAdapter {
|
|||||||
extraAttrs=new ExtraAttrs(details.getExtendAttr());
|
extraAttrs=new ExtraAttrs(details.getExtendAttr());
|
||||||
}
|
}
|
||||||
_logger.debug("Extra Attrs "+extraAttrs);
|
_logger.debug("Extra Attrs "+extraAttrs);
|
||||||
OAuthClient tokenRestClient=new OAuthClient(
|
String responseBody = new HttpRequestAdapter().get(
|
||||||
String.format(TOKEN_URI,details.getPrincipal(),details.getCredentials()));
|
String.format(TOKEN_URI,details.getPrincipal(),details.getCredentials()),null);
|
||||||
Token token =tokenRestClient.requestAccessToken();
|
Token token =JsonUtils.gson2Object(responseBody,Token.class);
|
||||||
_logger.debug(""+token);
|
_logger.debug("token {}" , token);
|
||||||
|
|
||||||
OAuthClient authkeyRestClient=new OAuthClient(
|
String authKeyBody = new HttpRequestAdapter().get(
|
||||||
String.format(AUTHKEY_URI,token.getAccess_token(),userInfo.getUsername()));
|
String.format(AUTHKEY_URI,token.getAccess_token(),userInfo.getUsername()),null);
|
||||||
|
|
||||||
HashMap<String, String> authKey=JsonUtils.gson2Object(authkeyRestClient.execute().getBody(), HashMap.class);
|
LoginUrl loginUrl=JsonUtils.gson2Object(authKeyBody, LoginUrl.class);
|
||||||
_logger.debug("authKey : "+authKey);
|
_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;
|
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();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -117,43 +117,44 @@ public class ActiveDirectoryUsersService extends AbstractSynchronizerService
|
|||||||
userInfo.setDepartmentId(deptOrg.getId());
|
userInfo.setDepartmentId(deptOrg.getId());
|
||||||
try {
|
try {
|
||||||
userInfo.setId(userInfo.generateId());
|
userInfo.setId(userInfo.generateId());
|
||||||
userInfo.setFormattedName(LdapUtils.getAttributeStringValue(ActiveDirectoryUser.CN,attributeMap));//閸忋劌鎮<EFBFBD>
|
userInfo.setFormattedName(LdapUtils.getAttributeStringValue(ActiveDirectoryUser.CN,attributeMap));//cn
|
||||||
//鐠愶附鍩<EFBFBD>
|
//
|
||||||
userInfo.setUsername(LdapUtils.getAttributeStringValue(ActiveDirectoryUser.SAMACCOUNTNAME,attributeMap));//鐠愶箑褰<EFBFBD>
|
userInfo.setUsername(LdapUtils.getAttributeStringValue(ActiveDirectoryUser.SAMACCOUNTNAME,attributeMap));//WindowsAccount
|
||||||
userInfo.setWindowsAccount(LdapUtils.getAttributeStringValue(ActiveDirectoryUser.USERPRINCIPALNAME,attributeMap));//閻ц缍<EFBFBD>
|
userInfo.setWindowsAccount(LdapUtils.getAttributeStringValue(ActiveDirectoryUser.SAMACCOUNTNAME,attributeMap));
|
||||||
|
//userInfo.setWindowsAccount(LdapUtils.getAttributeStringValue(ActiveDirectoryUser.USERPRINCIPALNAME,attributeMap));//
|
||||||
|
|
||||||
//鐢瓕顫<EFBFBD>
|
//
|
||||||
userInfo.setFamilyName(LdapUtils.getAttributeStringValue(ActiveDirectoryUser.SN,attributeMap));//婵拷
|
userInfo.setFamilyName(LdapUtils.getAttributeStringValue(ActiveDirectoryUser.SN,attributeMap));//Last Name/SurName
|
||||||
userInfo.setGivenName(LdapUtils.getAttributeStringValue(ActiveDirectoryUser.GIVENNAME,attributeMap));//閸氾拷
|
userInfo.setGivenName(LdapUtils.getAttributeStringValue(ActiveDirectoryUser.GIVENNAME,attributeMap));//First Name
|
||||||
userInfo.setNickName(LdapUtils.getAttributeStringValue(ActiveDirectoryUser.INITIALS,attributeMap));//閺勭數袨
|
userInfo.setNickName(LdapUtils.getAttributeStringValue(ActiveDirectoryUser.INITIALS,attributeMap));//Initials
|
||||||
userInfo.setNameZhShortSpell(LdapUtils.getAttributeStringValue(ActiveDirectoryUser.INITIALS,attributeMap));//閼昏鲸鏋冪紓鈺佸晸
|
userInfo.setNameZhShortSpell(LdapUtils.getAttributeStringValue(ActiveDirectoryUser.INITIALS,attributeMap));//Initials
|
||||||
userInfo.setDisplayName(LdapUtils.getAttributeStringValue(ActiveDirectoryUser.DISPLAYNAME,attributeMap));//閺勫墽銇氶崥宥囆<EFBFBD>
|
userInfo.setDisplayName(LdapUtils.getAttributeStringValue(ActiveDirectoryUser.DISPLAYNAME,attributeMap));//
|
||||||
userInfo.setDescription(LdapUtils.getAttributeStringValue(ActiveDirectoryUser.DESCRIPTION,attributeMap));//閹诲繗鍫<EFBFBD>
|
userInfo.setDescription(LdapUtils.getAttributeStringValue(ActiveDirectoryUser.DESCRIPTION,attributeMap));//
|
||||||
userInfo.setWorkPhoneNumber(LdapUtils.getAttributeStringValue(ActiveDirectoryUser.TELEPHONENUMBER,attributeMap));//閻絻鐦介崣椋庣垳
|
userInfo.setWorkPhoneNumber(LdapUtils.getAttributeStringValue(ActiveDirectoryUser.TELEPHONENUMBER,attributeMap));//
|
||||||
userInfo.setWorkOfficeName(LdapUtils.getAttributeStringValue(ActiveDirectoryUser.PHYSICALDELIVERYOFFICENAME,attributeMap));//閸旂偛鍙曠<EFBFBD>癸拷
|
userInfo.setWorkOfficeName(LdapUtils.getAttributeStringValue(ActiveDirectoryUser.PHYSICALDELIVERYOFFICENAME,attributeMap));//
|
||||||
userInfo.setWorkEmail(LdapUtils.getAttributeStringValue(ActiveDirectoryUser.MAIL,attributeMap));//闁喕娆<EFBFBD>
|
userInfo.setWorkEmail(LdapUtils.getAttributeStringValue(ActiveDirectoryUser.MAIL,attributeMap));//
|
||||||
userInfo.setWebSite(LdapUtils.getAttributeStringValue(ActiveDirectoryUser.WWWHOMEPAGE,attributeMap));//缂冩垿銆<EFBFBD>
|
userInfo.setWebSite(LdapUtils.getAttributeStringValue(ActiveDirectoryUser.WWWHOMEPAGE,attributeMap));//
|
||||||
//閸︽澘娼<EFBFBD>
|
//
|
||||||
userInfo.setWorkCountry(LdapUtils.getAttributeStringValue(ActiveDirectoryUser.CO,attributeMap));//閸ヨ棄顔<EFBFBD>
|
userInfo.setWorkCountry(LdapUtils.getAttributeStringValue(ActiveDirectoryUser.CO,attributeMap));//
|
||||||
userInfo.setWorkRegion(LdapUtils.getAttributeStringValue(ActiveDirectoryUser.ST,attributeMap));//閻拷
|
userInfo.setWorkRegion(LdapUtils.getAttributeStringValue(ActiveDirectoryUser.ST,attributeMap));//
|
||||||
userInfo.setWorkLocality(LdapUtils.getAttributeStringValue(ActiveDirectoryUser.L,attributeMap));//閸橈拷
|
userInfo.setWorkLocality(LdapUtils.getAttributeStringValue(ActiveDirectoryUser.L,attributeMap));//
|
||||||
userInfo.setWorkStreetAddress(LdapUtils.getAttributeStringValue(ActiveDirectoryUser.STREETADDRESS,attributeMap));//鐞涙浜<EFBFBD>
|
userInfo.setWorkStreetAddress(LdapUtils.getAttributeStringValue(ActiveDirectoryUser.STREETADDRESS,attributeMap));//
|
||||||
userInfo.setWorkPostalCode(LdapUtils.getAttributeStringValue(ActiveDirectoryUser.POSTALCODE,attributeMap));//闁喚绱<EFBFBD>
|
userInfo.setWorkPostalCode(LdapUtils.getAttributeStringValue(ActiveDirectoryUser.POSTALCODE,attributeMap));//
|
||||||
userInfo.setWorkAddressFormatted(LdapUtils.getAttributeStringValue(ActiveDirectoryUser.POSTOFFICEBOX,attributeMap));//闁喗鏂傞柇顔绢唸
|
userInfo.setWorkAddressFormatted(LdapUtils.getAttributeStringValue(ActiveDirectoryUser.POSTOFFICEBOX,attributeMap));//
|
||||||
|
|
||||||
if(LdapUtils.getAttributeStringValue(ActiveDirectoryUser.MOBILE,attributeMap).equals("")) {
|
if(LdapUtils.getAttributeStringValue(ActiveDirectoryUser.MOBILE,attributeMap).equals("")) {
|
||||||
userInfo.setMobile(userInfo.getId());
|
userInfo.setMobile(userInfo.getId());
|
||||||
}else {
|
}else {
|
||||||
userInfo.setMobile(LdapUtils.getAttributeStringValue(ActiveDirectoryUser.MOBILE,attributeMap));//閹靛婧<EFBFBD>
|
userInfo.setMobile(LdapUtils.getAttributeStringValue(ActiveDirectoryUser.MOBILE,attributeMap));//
|
||||||
}
|
}
|
||||||
userInfo.setHomePhoneNumber(LdapUtils.getAttributeStringValue(ActiveDirectoryUser.HOMEPHONE,attributeMap));//鐎硅泛娑甸悽浣冪樈
|
userInfo.setHomePhoneNumber(LdapUtils.getAttributeStringValue(ActiveDirectoryUser.HOMEPHONE,attributeMap));//
|
||||||
userInfo.setWorkFax(LdapUtils.getAttributeStringValue(ActiveDirectoryUser.FACSIMILETELEPHONENUMBER,attributeMap));//娴肩姷婀<EFBFBD>
|
userInfo.setWorkFax(LdapUtils.getAttributeStringValue(ActiveDirectoryUser.FACSIMILETELEPHONENUMBER,attributeMap));//
|
||||||
userInfo.setHomeAddressFormatted(LdapUtils.getAttributeStringValue(ActiveDirectoryUser.INFO,attributeMap));//閻絻鐦芥径鍥ㄦ暈
|
userInfo.setHomeAddressFormatted(LdapUtils.getAttributeStringValue(ActiveDirectoryUser.INFO,attributeMap));//
|
||||||
|
|
||||||
userInfo.setDivision(LdapUtils.getAttributeStringValue(ActiveDirectoryUser.COMPANY,attributeMap)); //閸忣剙寰<EFBFBD>
|
userInfo.setDivision(LdapUtils.getAttributeStringValue(ActiveDirectoryUser.COMPANY,attributeMap)); //
|
||||||
//userInfo.setDepartment(LdapUtils.getAttributeStringValue(ActiveDirectoryUser.DEPARTMENT,attributeMap)); //闁劑妫<EFBFBD>
|
//userInfo.setDepartment(LdapUtils.getAttributeStringValue(ActiveDirectoryUser.DEPARTMENT,attributeMap)); //
|
||||||
//userInfo.setDepartmentId(LdapUtils.getAttributeStringValue(ActiveDirectoryUser.DEPARTMENT,attributeMap)); //闁劑妫紓鏍у娇
|
//userInfo.setDepartmentId(LdapUtils.getAttributeStringValue(ActiveDirectoryUser.DEPARTMENT,attributeMap)); //
|
||||||
userInfo.setJobTitle(LdapUtils.getAttributeStringValue(ActiveDirectoryUser.TITLE,attributeMap));//閼卞苯濮<EFBFBD>
|
userInfo.setJobTitle(LdapUtils.getAttributeStringValue(ActiveDirectoryUser.TITLE,attributeMap));//
|
||||||
userInfo.setUserState("RESIDENT");
|
userInfo.setUserState("RESIDENT");
|
||||||
userInfo.setUserType("EMPLOYEE");
|
userInfo.setUserType("EMPLOYEE");
|
||||||
userInfo.setTimeZone("Asia/Shanghai");
|
userInfo.setTimeZone("Asia/Shanghai");
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user