123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154 |
- package cn.com.qmth.sdk.util;
- import java.io.UnsupportedEncodingException;
- import java.net.URLEncoder;
- import java.util.HashMap;
- import java.util.Map;
- /**
- * 启明泰和-接口安全工具
- *
- * @author WANGWEI
- * @date 2018年11月23日
- * @Copyright (c) 2018-2020 WANGWEI [QQ:522080330] All Rights Reserved.
- */
- public class QmthUtil {
- /**
- * 获取安全请求头信息
- *
- * @author WANGWEI
- * @return
- */
- public static Map<String, String> getSecurityHeaders() {
- long timestamp = System.currentTimeMillis();
- String rootOrgId = String.valueOf(getRootOrgId());
- String appId = PropertiesUtil.getString("qmth.appId");
- String secretKey = PropertiesUtil.getString("qmth.secretKey");
- StringBuilder sb = new StringBuilder();
- sb.append(rootOrgId).append(appId).append(timestamp).append(secretKey);
- byte[] bytes = SHA256.encode(sb.toString());
- String accessToken = ByteUtil.toHexAscii(bytes);
- Map<String, String> headers = new HashMap<String, String>();
- headers.put("rootOrgId", String.valueOf(rootOrgId));
- headers.put("timestamp", String.valueOf(timestamp));
- headers.put("appId", appId);
- headers.put("access_token", accessToken);
- return headers;
- }
- /**
- * 方法注释
- *
- * @author WANGWEI
- * @return
- */
- public static Long getRootOrgId() {
- Long rootOrgId = PropertiesUtil.getLong("qmth.rootOrgId", -1L);
- return rootOrgId;
- }
- /**
- * 方法注释
- *
- * @author WANGWEI
- * @param args
- */
- public static String buildCommonUserAccessUrl(String loginName) {
- String rootOrgId = String.valueOf(getRootOrgId());
- long timestamp = System.currentTimeMillis();
- String appId = PropertiesUtil.getString("qmth.appId");
- String secretKey = PropertiesUtil.getString("qmth.secretKey");
- String accessUrl = PropertiesUtil.getString("qmth.commonUserAccessUrl");
- StringBuilder sb = new StringBuilder();
- sb.append(loginName).append(rootOrgId).append(appId).append(timestamp).append(secretKey);
- byte[] bytes = SHA256.encode(sb.toString());
- String accessToken = ByteUtil.toHexAscii(bytes);
- StringBuilder params = new StringBuilder();
- params.append("loginName").append("=").append(urlEncode(loginName));
- params.append("&").append("orgId").append("=").append(rootOrgId);
- params.append("&").append("appId").append("=").append(appId);
- params.append("&").append("timestamp").append("=").append(timestamp);
- params.append("&").append("token").append("=").append(accessToken);
- return accessUrl + "?" + params.toString();
- }
- /**
- * 方法注释
- *
- * @author WANGWEI
- * @param args
- */
- public static String buildStudentAccessUrl(String accountType, String accountValue) {
- String rootOrgId = String.valueOf(getRootOrgId());
- long timestamp = System.currentTimeMillis();
- String appId = PropertiesUtil.getString("qmth.appId");
- String secretKey = PropertiesUtil.getString("qmth.secretKey");
- String accessUrl = PropertiesUtil.getString("qmth.studentAccessUrl");
- StringBuilder sb = new StringBuilder();
- sb.append(accountType).append(accountValue).append(rootOrgId).append(appId)
- .append(timestamp).append(secretKey);
- byte[] bytes = SHA256.encode(sb.toString());
- String accessToken = ByteUtil.toHexAscii(bytes);
- StringBuilder params = new StringBuilder();
- params.append("accountType").append("=").append(urlEncode(accountType));
- params.append("&").append("accountValue").append("=").append(urlEncode(accountValue));
- params.append("&").append("rootOrgId").append("=").append(rootOrgId);
- params.append("&").append("appId").append("=").append(appId);
- params.append("&").append("timestamp").append("=").append(timestamp);
- params.append("&").append("token").append("=").append(accessToken);
- return accessUrl + "?" + params.toString();
- }
- /**
- * 方法注释
- *
- * @author WANGWEI
- * @param s
- * @return
- */
- private static String urlEncode(String s) {
- try {
- return URLEncoder.encode(s, "UTF-8");
- } catch (UnsupportedEncodingException e) {
- throw new RuntimeException(e);
- }
- }
- /**
- * 构建URL
- *
- * @author WANGWEI
- * @param uri
- * @return
- */
- public static String buildUrl(String uri) {
- String host = PropertiesUtil.getString("qmth.server.host");
- String port = PropertiesUtil.getString("qmth.server.port");
- StringBuilder sb = new StringBuilder();
- sb.append("http://").append(host).append(":").append(port);
- if (!uri.startsWith("/")) {
- sb.append("/");
- }
- sb.append(uri);
- return sb.toString();
- }
- }
|