From 6439b54ffbe00f874d7cae8c77ff296c022b31ea Mon Sep 17 00:00:00 2001 From: "LAPTOP-SB56SG4Q\\86185" Date: Mon, 14 Mar 2022 15:53:31 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E5=BC=80=E6=BA=90=E4=BB=BB?= =?UTF-8?q?=E5=8A=A1=E6=9D=90=E6=96=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 5 +- lib/finekit-10.0.jar | Bin 0 -> 194150 bytes plugin.xml | 17 + .../jsdhiee/config/CustomDataConfig.java | 184 ++++++ .../config/DataConfigInitializeMonitor.java | 24 + .../SessionGlobalRequestFilterProvider.java | 554 ++++++++++++++++++ 6 files changed, 783 insertions(+), 1 deletion(-) create mode 100644 lib/finekit-10.0.jar create mode 100644 plugin.xml create mode 100644 src/main/java/com/fr/plugin/third/party/jsdhiee/config/CustomDataConfig.java create mode 100644 src/main/java/com/fr/plugin/third/party/jsdhiee/config/DataConfigInitializeMonitor.java create mode 100644 src/main/java/com/fr/plugin/third/party/jsdhiee/http/SessionGlobalRequestFilterProvider.java diff --git a/README.md b/README.md index fc5debe..a8fc9c1 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,6 @@ # open-JSD-7844 -JSD-7844 OAuth2 + 基于时间戳签名的单点 \ No newline at end of file +JSD-7844 OAuth2 + 基于时间戳签名的单点\ +免责说明:该源码为第三方爱好者提供,不保证源码和方案的可靠性,也不提供任何形式的源码教学指导和协助!\ +仅作为开发者学习参考使用!禁止用于任何商业用途!\ +为保护开发者隐私,开发者信息已隐去!若原开发者希望公开自己的信息,可联系hugh处理。 \ No newline at end of file diff --git a/lib/finekit-10.0.jar b/lib/finekit-10.0.jar new file mode 100644 index 0000000000000000000000000000000000000000..611c8f58c7f1a1f7b3fc0dcd923ffb1995097782 GIT binary patch literal 194150 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 o>@;|bOjfZ&tU4-z5qAB{_S7J + + com.fr.plugin.third.party.jsd7844 + + yes + 0.1 + 10.0 + 2019-01-01 + 追心 + + + + + + + + \ No newline at end of file diff --git a/src/main/java/com/fr/plugin/third/party/jsdhiee/config/CustomDataConfig.java b/src/main/java/com/fr/plugin/third/party/jsdhiee/config/CustomDataConfig.java new file mode 100644 index 0000000..2de39e1 --- /dev/null +++ b/src/main/java/com/fr/plugin/third/party/jsdhiee/config/CustomDataConfig.java @@ -0,0 +1,184 @@ +package com.fr.plugin.third.party.jsdhiee.config; + + +import com.fanruan.api.util.StringKit; +import com.fr.config.*; +import com.fr.config.holder.Conf; +import com.fr.config.holder.factory.Holders; + +import java.util.concurrent.ConcurrentHashMap; + +/** + * 配置数据保存 + */ +@Visualization(category = "融创集成登录配置") +public class CustomDataConfig extends DefaultConfiguration { + private static ConcurrentHashMap URL_MAP = new ConcurrentHashMap(); + + /** + * 添加链接 + * @param key + * @param url + */ + public static void addUrl(String key, String url) { + URL_MAP.put(key, url); + } + + /** + * 获取链接并销毁保存 + * @param key + * @return + */ + public static String getUrlAndDestroy(String key) { + String url = URL_MAP.get(key); + URL_MAP.remove(key); + return url; + } + + + private static volatile CustomDataConfig config = null; + + public static CustomDataConfig getInstance() { + if (config == null) { + config = ConfigContext.getConfigInstance(CustomDataConfig.class); + } + return config; + } + + @Identifier(value = "appValidityDuration", name = "移动端有效期时长(分钟)", description = "单位:分钟", status = Status.SHOW) + private Conf appValidityDuration = Holders.simple(720); + + + @Identifier(value = "appSecurityKey", name = "移动端密钥(securityKey)", description = "", status = Status.SHOW) + private Conf appSecurityKey = Holders.simple(StringKit.EMPTY); + + + @Identifier(value = "idmClientId", name = "IDM系统应用唯一标识(client_id)", description = "", status = Status.SHOW) + private Conf idmClientId = Holders.simple("49e24f65da354dae8ed3a7e55633aaf3"); + + + @Identifier(value = "idmClientSecret", name = "IDM系统应用密钥(client_secret)", description = "", status = Status.SHOW) + private Conf idmClientSecret = Holders.simple("ZZTFCvXcLkdCUH"); + + + @Identifier(value = "frUrl", name = "报表地址(redirect_uri)", description = "", status = Status.SHOW) + private Conf frUrl = Holders.simple("http://10.199.201.108/webroot/decision"); + + + @Identifier(value = "oAuthCodeUrl", name = "获取OAuth Code地址", description = "", status = Status.SHOW) + private Conf oAuthCodeUrl = Holders.simple("http://oamdev.sunac.com.cn/ms_oauth/oauth2/endpoints/oauthservice/authorize"); + + + @Identifier(value = "accessTokenUrl", name = "获取Access Token地址", description = "", status = Status.SHOW) + private Conf accessTokenUrl = Holders.simple("http://oamdev.sunac.com.cn/ms_oauth/oauth2/endpoints/oauthservice/tokens"); + + + @Identifier(value = "userUrl", name = "获取用户信息地址", description = "", status = Status.SHOW) + private Conf userUrl = Holders.simple("http://oamdev.sunac.com.cn/ms_oauth/resources/userprofile/me"); + + + @Identifier(value = "loginTypeNameParameter", name = "登录类型参数名称", description = "", status = Status.SHOW) + private Conf loginTypeNameParameter = Holders.simple("loginType"); + + + @Identifier(value = "loginTypeValue", name = "登录类型值", description = "", status = Status.SHOW) + private Conf loginTypeValue = Holders.simple("IDM_OAUTH"); + + + public int getAppValidityDuration() { + return appValidityDuration.get(); + } + + public void setAppValidityDuration(int appValidityDuration) { + this.appValidityDuration.set(appValidityDuration); + } + + public String getAppSecurityKey() { + return appSecurityKey.get(); + } + + public void setAppSecurityKey(String appSecurityKey) { + this.appSecurityKey.set(appSecurityKey); + } + + + public String getIdmClientId() { + return idmClientId.get(); + } + + public void setIdmClientId(String idmClientId) { + this.idmClientId.set(idmClientId); + } + + public String getIdmClientSecret() { + return idmClientSecret.get(); + } + + public void setIdmClientSecret(String idmClientSecret) { + this.idmClientSecret.set(idmClientSecret); + } + + public String getFrUrl() { + return frUrl.get(); + } + + public void setFrUrl(String frUrl) { + this.frUrl.set(frUrl); + } + + public String getoAuthCodeUrl() { + return oAuthCodeUrl.get(); + } + + public void setoAuthCodeUrl(String oAuthCodeUrl) { + this.oAuthCodeUrl.set(oAuthCodeUrl); + } + + public String getAccessTokenUrl() { + return accessTokenUrl.get(); + } + + public void setAccessTokenUrl(String accessTokenUrl) { + this.accessTokenUrl.set(accessTokenUrl); + } + + public String getUserUrl() { + return userUrl.get(); + } + + public void setUserUrl(String userUrl) { + this.userUrl.set(userUrl); + } + + public String getLoginTypeNameParameter() { + return loginTypeNameParameter.get(); + } + + public void setLoginTypeNameParameter(String loginTypeNameParameter) { + this.loginTypeNameParameter.set(loginTypeNameParameter); + } + + public String getLoginTypeValue() { + return loginTypeValue.get(); + } + + public void setLoginTypeValue(String loginTypeValue) { + this.loginTypeValue.set(loginTypeValue); + } + + @Override + public Object clone() throws CloneNotSupportedException { + CustomDataConfig cloned = (CustomDataConfig) super.clone(); + cloned.appValidityDuration = (Conf) appValidityDuration.clone(); + cloned.appSecurityKey = (Conf) appSecurityKey.clone(); + cloned.idmClientId = (Conf) idmClientId.clone(); + cloned.idmClientSecret = (Conf) idmClientSecret.clone(); + cloned.frUrl = (Conf) frUrl.clone(); + cloned.oAuthCodeUrl = (Conf) oAuthCodeUrl.clone(); + cloned.accessTokenUrl = (Conf) accessTokenUrl.clone(); + cloned.userUrl = (Conf) userUrl.clone(); + cloned.loginTypeNameParameter = (Conf) loginTypeNameParameter.clone(); + cloned.loginTypeValue = (Conf) loginTypeValue.clone(); + return cloned; + } +} diff --git a/src/main/java/com/fr/plugin/third/party/jsdhiee/config/DataConfigInitializeMonitor.java b/src/main/java/com/fr/plugin/third/party/jsdhiee/config/DataConfigInitializeMonitor.java new file mode 100644 index 0000000..fd97700 --- /dev/null +++ b/src/main/java/com/fr/plugin/third/party/jsdhiee/config/DataConfigInitializeMonitor.java @@ -0,0 +1,24 @@ +package com.fr.plugin.third.party.jsdhiee.config; + +import com.fr.intelli.record.Focus; +import com.fr.intelli.record.Original; +import com.fr.plugin.context.PluginContext; +import com.fr.plugin.observer.inner.AbstractPluginLifecycleMonitor; +import com.fr.record.analyzer.EnableMetrics; + +/** + * 配置信息初始化 + */ +@EnableMetrics +public class DataConfigInitializeMonitor extends AbstractPluginLifecycleMonitor { + @Override + @Focus(id = "com.fr.plugin.third.party.jsd7844", text = "plugin-jsd-7844", source = Original.PLUGIN) + public void afterRun(PluginContext pluginContext) { + CustomDataConfig.getInstance(); + } + + @Override + public void beforeStop(PluginContext pluginContext) { + + } +} \ No newline at end of file diff --git a/src/main/java/com/fr/plugin/third/party/jsdhiee/http/SessionGlobalRequestFilterProvider.java b/src/main/java/com/fr/plugin/third/party/jsdhiee/http/SessionGlobalRequestFilterProvider.java new file mode 100644 index 0000000..bd582fb --- /dev/null +++ b/src/main/java/com/fr/plugin/third/party/jsdhiee/http/SessionGlobalRequestFilterProvider.java @@ -0,0 +1,554 @@ +package com.fr.plugin.third.party.jsdhiee.http; + +import com.fanruan.api.log.LogKit; +import com.fanruan.api.util.StringKit; +import com.fr.data.NetworkHelper; +import com.fr.decision.authority.AuthorityContext; +import com.fr.decision.authority.data.User; +import com.fr.decision.fun.impl.AbstractGlobalRequestFilterProvider; +import com.fr.decision.mobile.terminal.TerminalHandler; +import com.fr.decision.webservice.v10.login.LoginService; +import com.fr.decision.webservice.v10.login.TokenResource; +import com.fr.decision.webservice.v10.user.UserService; +import com.fr.general.ComparatorUtils; +import com.fr.json.JSONObject; +import com.fr.log.FineLoggerFactory; +import com.fr.plugin.third.party.jsdhiee.config.CustomDataConfig; +import com.fr.stable.StringUtils; +import com.fr.stable.query.QueryFactory; +import com.fr.third.org.apache.commons.codec.digest.DigestUtils; +import com.fr.third.org.apache.http.HttpEntity; +import com.fr.third.org.apache.http.HttpHeaders; +import com.fr.third.org.apache.http.HttpStatus; +import com.fr.third.org.apache.http.NameValuePair; +import com.fr.third.org.apache.http.client.config.RequestConfig; +import com.fr.third.org.apache.http.client.entity.UrlEncodedFormEntity; +import com.fr.third.org.apache.http.client.methods.CloseableHttpResponse; +import com.fr.third.org.apache.http.client.methods.HttpGet; +import com.fr.third.org.apache.http.client.methods.HttpPost; +import com.fr.third.org.apache.http.impl.client.CloseableHttpClient; +import com.fr.third.org.apache.http.impl.client.HttpClients; +import com.fr.third.org.apache.http.message.BasicNameValuePair; +import com.fr.third.org.apache.http.util.EntityUtils; +import com.fr.web.utils.WebUtils; + +import javax.servlet.FilterChain; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.util.*; + + +public class SessionGlobalRequestFilterProvider extends AbstractGlobalRequestFilterProvider { + private static CloseableHttpClient httpClient = HttpClients.createDefault(); + private static String DEFAULT_USER_AGENT = "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.61 Safari/537.36"; + + @Override + public String filterName() { + return "com.fr.plugin.third.party.jsd7844"; + } + + @Override + public String[] urlPatterns() { + return new String[]{"/decision", "/decision/*"}; + } + + @Override + public void doFilter(HttpServletRequest req, HttpServletResponse res, FilterChain filterChain) { + try { + String fullUrl = req.getRequestURL().toString(); + String queryUrl = req.getQueryString(); + if ("null".equalsIgnoreCase(queryUrl)) { + queryUrl = ""; + } else { + queryUrl = "?" + queryUrl; + } + + String fullUrl1 = fullUrl + queryUrl; + String method = req.getMethod(); + LogKit.info("集成登录,记录访问地址:" + method + " " + fullUrl1); + if (fullUrl.indexOf("/remote/") >= 0) { + filterChain.doFilter(req, res); + return; + } + + if (!"GET".equalsIgnoreCase(method)) { + filterChain.doFilter(req, res); + return; + } + + // boolean option = isLogged(req); + // if (option) { + // filterChain.doFilter(req, res); + // return; + //} + if (isAllowIdmOAuthLogin(req)) { + String state = getUuid(); + String requestUrl = getRequestUrl(req); + LogKit.info("集成登录,访问地址," + requestUrl); + CustomDataConfig.addUrl(state, requestUrl); + String locationUrl = getOAuthCodeUrl(state); + res.sendRedirect(locationUrl); + return; + } + + String loginUsername = getIdmOAuthUsername(req); + boolean pcOption = false; + if (StringKit.isNotEmpty(loginUsername)) { + pcOption = true; + LogKit.info("集成登录,IDM OAuth 用户名:" + loginUsername); + } + if (StringKit.isEmpty(loginUsername)) { + filterChain.doFilter(req, res); + return; + } + loginUsername = loginUsername.toUpperCase(); + User user = UserService.getInstance().getUserByUserName(loginUsername); + boolean tipsOption = false; + String tipsContent = ""; + if (user == null) { + tipsOption = true; + LogKit.info("集成登录,用户名:" + loginUsername + "在报表平台不存在"); + tipsContent = "在报表服务器上不存在"; + } else if (!user.isEnable()) { + tipsOption = true; + LogKit.info("集成登录,用户名:" + loginUsername + "在报表平台上被禁用"); + tipsContent = "在报表平台上被禁用"; + } + + if (tipsOption) { + String jumpContent = "\n" + + "\n" + + " \n" + + " 提示\n" + + "\n" + + "\n" + + " \n" + + "

\n" + + " \n" + + "
\n" + + "\n" + + ""; + res.setContentType("text/html;charset=UTF-8"); + WebUtils.printAsString(res, jumpContent); + res.setStatus(200); + return; + } + + loginUsername = user.getUserName(); + LogKit.info("集成登录,报表平台用户名:" + loginUsername); + + String loginToken = LoginService.getInstance().login(req, res, loginUsername); + req.setAttribute("fine_auth_token", loginToken); + if (pcOption) { + String state = WebUtils.getHTTPRequestParameter(req, "state"); + String url = CustomDataConfig.getUrlAndDestroy(state); + LogKit.info("集成登录,用户名:" + loginUsername + "在报表平台,state url:" + url); + url = changeUrlScheme(url); + if (StringKit.isNotEmpty(url)) { + LogKit.info("集成登录,用户名:" + loginUsername + "在报表平台," + url); + res.sendRedirect(url); + return; + } + } + filterChain.doFilter(req, res); + } catch (Exception e) { + FineLoggerFactory.getLogger().error("融创集成登录出错," + e.getMessage(), e); + } + } + + private String changeUrlScheme(String url) { + if (StringKit.isEmpty(url)) { + return ""; + } + if ((!url.startsWith("http://")) && (!url.startsWith("https://"))) { + return url; + } + + String frUrl = CustomDataConfig.getInstance().getFrUrl(); + if (StringKit.isEmpty(frUrl)) { + return url; + } + + if ((url.startsWith("http://")) && (frUrl.startsWith("http://"))) { + return url; + } + if ((url.startsWith("https://")) && (frUrl.startsWith("https://"))) { + return url; + } + String tempUrl = url; + if ((url.startsWith("http://")) && (frUrl.startsWith("https://"))) { + tempUrl = "https://" + url.substring(7); + } + + if ((url.startsWith("https://")) && (frUrl.startsWith("http://"))) { + tempUrl = "http://" + url.substring(8); + } + return tempUrl; + } + + + public boolean isLogged(HttpServletRequest req) { + boolean logged = true; + + try { + String token = TokenResource.COOKIE.getToken(req); + LoginService.getInstance().loginStatusValid(token, TerminalHandler.getTerminal(req, NetworkHelper.getDevice(req))); + } catch (Exception var4) { + logged = false; + } + + return logged; + } + + private String getOAuthCodeUrl(String state) { + String url = CustomDataConfig.getInstance().getoAuthCodeUrl() + "?client_id=" + CustomDataConfig.getInstance().getIdmClientId() + "&response_type=code&redirect_uri=" + CustomDataConfig.getInstance().getFrUrl() + "&scope=UserProfile.me&state=" + state; + return url; + } + + private String getUuid() { + String uuid = UUID.randomUUID().toString().replace("-", ""); + return uuid; + } + + + /** + * 判断app是否允许登录IDM OAuth + * + * @param req + * @return + */ + private boolean isAllowIdmOAuthLogin(HttpServletRequest req) { + if (req == null) { + return false; + } + String loginTypeNameParameter = CustomDataConfig.getInstance().getLoginTypeNameParameter(); + String loginTypeConfigValue = CustomDataConfig.getInstance().getLoginTypeValue(); + if (StringKit.isEmpty(loginTypeNameParameter) || StringKit.isEmpty(loginTypeConfigValue)) { + return false; + } + String loginTypeValue = WebUtils.getHTTPRequestParameter(req, loginTypeNameParameter); + return ComparatorUtils.equals(loginTypeConfigValue, loginTypeValue); + } + + /** + * 判断app是否允许登录 + * + * @param req + * @return + */ + private boolean isAllowAppLogin(HttpServletRequest req) { + if (req == null) { + return false; + } + + String appUsername = WebUtils.getHTTPRequestParameter(req, "uid"); + LogKit.debug("集成登录,移动端uid:" + appUsername); + if (StringKit.isEmpty(appUsername)) { + return false; + } + + String appTimestamp = WebUtils.getHTTPRequestParameter(req, "timestamp"); + LogKit.debug("集成登录,移动端timestamp:" + appTimestamp); + if (StringKit.isEmpty(appTimestamp)) { + return false; + } + + String appToken = WebUtils.getHTTPRequestParameter(req, "token"); + LogKit.debug("集成登录,移动端token:" + appToken); + if (StringKit.isEmpty(appToken)) { + return false; + } + return isAllowAppLogin(appUsername, appTimestamp, appToken); + } + + + /** + * 判断app是否允许登录 + * + * @param timestamp + * @param token + * @return + */ + private boolean isAllowAppLogin(String username, String timestamp, String token) { + if (StringKit.isEmpty(timestamp) || StringKit.isEmpty(token)) { + return false; + } + if (!isNumeric(timestamp)) { + LogKit.debug("集成登录,移动端timestamp:不是数字"); + return false; + } + long timestampValue = Long.valueOf(timestamp); + if (!isValidAppTimestamp(timestampValue)) { + LogKit.debug("集成登录,移动端timestamp:失效"); + return false; + } + + if (!isValidAppToken(username, timestamp, token)) { + LogKit.debug("集成登录,移动端token:无效"); + return false; + } + + return true; + } + + private boolean isValidAppTimestamp(long timestamp) { + if (timestamp <= 0) { + return false; + } + long currentTimestamp = System.currentTimeMillis(); + long endTimestamp = timestamp + CustomDataConfig.getInstance().getAppValidityDuration() * 6060 * 1000L; + if (endTimestamp >= currentTimestamp) { + return true; + } + return false; + } + + private boolean isValidAppToken(String username, String timestamp, String token) { + String tempToken = createToken(username, timestamp); + boolean option = ComparatorUtils.equals(tempToken, token); + return option; + } + + + private String createToken(String username, String timestamp) { + //=Base64(MD5(uid+timestamp+securityKey)) + if (StringKit.isEmpty(username)) { + username = ""; + } + + if (StringKit.isEmpty(timestamp)) { + timestamp = ""; + } + + String securityKey = CustomDataConfig.getInstance().getAppSecurityKey(); + if (StringKit.isEmpty(securityKey)) { + securityKey = ""; + } + + String tempValue = username + timestamp + securityKey; + String md5Value = DigestUtils.md5Hex(tempValue); + String token = Base64.getEncoder().encodeToString(md5Value.getBytes()); + return token; + } + + /** + * 判断字符串是否全是数字 + * + * @param str + * @return + */ + public static boolean isNumeric(String str) { + if (StringKit.isEmpty(str)) { + return false; + } + for (int i = str.length(); --i >= 0; ) { + if (!Character.isDigit(str.charAt(i))) { + + return false; + + } + } + return true; + } + + + /** + * 获取IDM OAuth 用户名 + * + * @param req + * @return + */ + private String getIdmOAuthUsername(HttpServletRequest req) { + try { + if (req == null) { + return ""; + } + String oAuthCode = WebUtils.getHTTPRequestParameter(req, "code"); + if (StringKit.isEmpty(oAuthCode)) { + return ""; + } + LogKit.info("集成登录,OAuth Code:" + oAuthCode); + + RequestConfig requestConfig = RequestConfig.custom() + .setConnectionRequestTimeout(10000) + .setSocketTimeout(10000) // 服务端相应超时 + .setConnectTimeout(10000) // 建立socket链接超时时间 + .build(); + + //获取Access Token + String accessTokenUrl = CustomDataConfig.getInstance().getAccessTokenUrl(); + HttpPost httpPost = new HttpPost(accessTokenUrl); + httpPost.addHeader("User-Agent", DEFAULT_USER_AGENT); + List params = new ArrayList(); + NameValuePair redirectUriNameValuePair = new BasicNameValuePair("redirect_uri", CustomDataConfig.getInstance().getFrUrl()); + NameValuePair codeNameValuePair = new BasicNameValuePair("code", oAuthCode); + NameValuePair grantTypeNameValuePair = new BasicNameValuePair("grant_type", "authorization_code"); + params.add(redirectUriNameValuePair); + params.add(codeNameValuePair); + params.add(grantTypeNameValuePair); + httpPost.setEntity(new UrlEncodedFormEntity(params, "UTF-8")); + httpPost.setHeader("Content-type", "application/x-www-form-urlencoded"); + + String auth = CustomDataConfig.getInstance().getIdmClientId() + ":" + CustomDataConfig.getInstance().getIdmClientSecret(); + String tempAuthValue = Base64.getEncoder().encodeToString(auth.getBytes()); + String authValue = "Basic " + tempAuthValue; + httpPost.setHeader(HttpHeaders.AUTHORIZATION, authValue); + httpPost.setConfig(requestConfig); + CloseableHttpResponse response = httpClient.execute(httpPost); + int statusCode = response.getStatusLine().getStatusCode(); + if (statusCode != HttpStatus.SC_OK) { + response.close(); + LogKit.info("集成登录,获取Access Token请求出错,http status:" + statusCode); + return ""; + } + + HttpEntity httpEntity = response.getEntity(); + if (httpEntity == null) { + response.close(); + LogKit.info("集成登录,获取Access Token请求出错,http响应内容为空"); + return ""; + } + String responseContent = EntityUtils.toString(httpEntity, "UTF-8"); + response.close(); + if (StringKit.isEmpty(responseContent)) { + LogKit.info("集成登录,获取Access Token请求出错,http响应内容为空1"); + return ""; + } + LogKit.info("集成登录,获取Access Token请求,http响应内容\n" + responseContent); + + JSONObject jsonObject = new JSONObject(responseContent); + String accessToken = jsonObject.getString("access_token"); + if (StringKit.isEmpty(accessToken)) { + LogKit.info("集成登录,获取Access Token请求出错,access_token为空"); + return ""; + } + LogKit.info("集成登录,Access Token:" + accessToken); + + String userUrl = CustomDataConfig.getInstance().getUserUrl(); + HttpGet httpGet = new HttpGet(userUrl); + httpGet.setHeader(HttpHeaders.AUTHORIZATION, accessToken); + httpGet.setConfig(requestConfig); + response = httpClient.execute(httpGet); + statusCode = response.getStatusLine().getStatusCode(); + if (statusCode != HttpStatus.SC_OK) { + response.close(); + LogKit.info("集成登录,获取用户信息请求出错,http status:" + statusCode); + return ""; + } + + httpEntity = response.getEntity(); + if (httpEntity == null) { + response.close(); + LogKit.info("集成登录,获取用户信息请求出错,http响应内容为空"); + return ""; + } + responseContent = EntityUtils.toString(httpEntity, "UTF-8"); + response.close(); + if (StringKit.isEmpty(responseContent)) { + LogKit.info("集成登录,获取用户信息请求出错,http响应内容为空1"); + return ""; + } + LogKit.info("集成登录,获取用户信息请求,http响应内容\n" + responseContent); + jsonObject = new JSONObject(responseContent); + String uid = jsonObject.getString("uid"); + if (StringKit.isEmpty(uid)) { + LogKit.info("集成登录,,获取用户信息请求出错,uid为空"); + return ""; + } + LogKit.info("集成登录,uid:" + uid); + + return uid; + } catch (Exception e) { + FineLoggerFactory.getLogger().error("集成登录获取用户名出错," + e.getMessage(), e); + } + return ""; + } + + + private String getRequestUrl(HttpServletRequest req) { + String fullUrl = req.getRequestURL().toString(); + Map paraMap = req.getParameterMap(); + String paraName; + String[] paraValues; + String loginTypeParaName = CustomDataConfig.getInstance().getLoginTypeNameParameter(); + String queryStr = ""; + for (Map.Entry entry : paraMap.entrySet()) { + paraName = entry.getKey(); + if (ComparatorUtils.equals(paraName, loginTypeParaName)) { + continue; + } + paraValues = entry.getValue(); + queryStr = addParaToQuery(queryStr, paraName, paraValues); + } + if (StringKit.isEmpty(queryStr)) { + return fullUrl; + } + fullUrl = fullUrl + "?" + queryStr; + return fullUrl; + } + + private String addParaToQuery(String query, String paraName, String[] paraValues) { + if (StringKit.isEmpty(paraName)) { + return query; + } + String fullQuery = query; + if ((paraValues == null) || (paraValues.length <= 0)) { + if (StringKit.isNotEmpty(fullQuery)) { + fullQuery = fullQuery + "&"; + } + fullQuery = paraName + "="; + return fullQuery; + } + for (int i = 0, max = paraValues.length - 1; i <= max; i++) { + if (StringKit.isNotEmpty(fullQuery)) { + fullQuery = fullQuery + "&"; + } + fullQuery = fullQuery + paraName + "=" + paraValues[i]; + } + return fullQuery; + } + + + /** + * 根据用户名获取用户忽略大小写 + * + * @param username + * @return + * @throws Exception + */ + public User getUserByUserNameIgnoreCase(String username) throws Exception { + if (StringUtils.isEmpty(username)) { + return null; + } + List users = AuthorityContext.getInstance().getUserController().find(QueryFactory.create()); + if ((users == null) || (users.size() <= 0)) { + return null; + } + User tempUser; + for (int i = 0, max = users.size() - 1; i <= max; i++) { + tempUser = users.get(i); + if (!username.equalsIgnoreCase(tempUser.getUserName())) { + continue; + } + + if (UserService.getInstance().isAdmin(tempUser.getId())) { + LogKit.info("集成登录,用户名:" + tempUser.getUserName() + "是管理员用户,不允许登录"); + return null; + } + return tempUser; + } + return null; + } + +}