diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/api/yt/YantaiApi.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/api/yt/YantaiApi.java index 84195d6711..3590186d68 100644 --- a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/api/yt/YantaiApi.java +++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/api/yt/YantaiApi.java @@ -10,6 +10,7 @@ import com.epmet.commons.tools.utils.Result; import com.fasterxml.jackson.core.JsonProcessingException; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; +import org.jetbrains.annotations.NotNull; import javax.crypto.BadPaddingException; import java.security.InvalidKeyException; @@ -28,9 +29,19 @@ import java.util.Map; @Slf4j public class YantaiApi { private static final String SSO_SERVER = "http://172.20.46.155:8080/sso/"; + /** + * 相当于 appKey + */ private static final String CLIENT_ID = "1000009"; + /** + * 相当于 appSecret 用于解密 他们重定向回来的code 解密他们的token 获取用户嘻嘻 + */ private static final String CLIENT_SECRET = "a1f9879119bc4080ab5575f832b7d98b"; - private static final String SSO_CLIENT_TOKEN = "PRm5Db96atozjPQsJOuwlA=="; + /** + * 调用sso后台api接口的 秘钥 + */ + private static final String SSO_API_TOKEN = "iJCDUgCBV/Zk5FkkaxLypA=="; + private static final String SSO_BACKGROUND_SERVER_URL = "http://172.20.46.155:8082/"; /** * desc:根据组织id获取下级组织 @@ -46,15 +57,24 @@ public class YantaiApi { //加密 String organizationIdEn = SM4UtilsForYanTai.dealEncryptData(organizationId); //pwd = URLEncoder.encode(pwd, "UTF-8"); - System.out.println("加密组织Id = " + organizationIdEn); - String url = "ouinfo/getChildOuInfoByGuid?organizationId=" + organizationIdEn; + String url = SSO_BACKGROUND_SERVER_URL + "person/ouinfo/getChildOuInfoByGuid"; - Map headerMap = new HashMap<>(); Map paramMap = new HashMap<>(); - log.info("getChildOuInfoByGuid request param: url:{},header:{}", url, headerMap); - Result result = HttpClientManager.getInstance().sendGet(url, paramMap, headerMap); + paramMap.put("organizationId",organizationIdEn); + + log.info("getChildOuInfoByGuid request param:{} url:{}",paramMap, url); + Result result = HttpClientManager.getInstance().sendGet(url, paramMap, getApiHeaderMap()); log.info("getChildOuInfoByGuid request result:{}", result); + if (!result.success()){ + return new ArrayList<>(); + } JSONObject jsonObject = JSONObject.parseObject(result.getData()); + String secondCode = jsonObject.getString("code"); + String secondMessage = jsonObject.getString("message"); + if (!"200".equals(secondCode)) { + log.warn("getChildOuInfoByGuid 接口错误"); + return new ArrayList<>(); + } //解密 String data = SM4UtilsForYanTai.dealDecryptData(jsonObject.getString("data")); List orgData = JSON.parseArray(data, OrgData.class); @@ -80,15 +100,24 @@ public class YantaiApi { //加密 String organizationIdEn = SM4UtilsForYanTai.dealEncryptData(organizationId); //pwd = URLEncoder.encode(pwd, "UTF-8"); - System.out.println("加密组织Id = " + organizationIdEn); - String url = SSO_SERVER + "ouinfo/getUserByOuGuid?organizationId=" + organizationIdEn; + String url = SSO_BACKGROUND_SERVER_URL + "person/serInfo/getUserByOuGuid"; + - Map headerMap = new HashMap<>(); Map paramMap = new HashMap<>(); - log.info("getUserByOuGuid request param: url:{},header:{}", url, headerMap); - Result result = HttpClientManager.getInstance().sendGet(url, paramMap, headerMap); + paramMap.put("organizationId",organizationIdEn); + log.info("getUserByOuGuid request param: url:{},param:{}", url, paramMap); + Result result = HttpClientManager.getInstance().sendGet(url, paramMap, getApiHeaderMap()); log.info("getUserByOuGuid request result:{}", result); + if (!result.success()){ + return new ArrayList<>(); + } JSONObject jsonObject = JSONObject.parseObject(result.getData()); + String secondCode = jsonObject.getString("code"); + String secondMessage = jsonObject.getString("message"); + if (!"200".equals(secondCode)) { + log.warn("getUserByOuGuid 接口错误"); + return new ArrayList<>(); + } //解密 String data = SM4UtilsForYanTai.dealDecryptData(jsonObject.getString("data")); List userData = JSON.parseArray(data, UserData.class); @@ -152,21 +181,15 @@ public class YantaiApi { public static String getUserInfoMobile(String userId) { try { - JSONObject token = new JSONObject(); - token.put("token", "iJCDUgCBV/Zk5FkkaxLypA=="); - // token.put("token","iJCDUgCBV/Zk5FkkaxLypA=="); - token.put("expiration", System.currentTimeMillis()); - String tokanStr = SM4UtilsForYanTai.dealEncryptData(token.toString()); String userIdEn = SM4UtilsForYanTai.dealEncryptData(userId); - System.out.println(tokanStr + "__" + userIdEn); - String serverUrl = "http://172.20.46.155:8082/person/userInfo/getUserByUserGuid"; + + String serverUrl = SSO_BACKGROUND_SERVER_URL + "person/userInfo/getUserByUserGuid"; //String serverUrl = "http://120.220.248.247:8081/person/userInfo/getUserByUserGuid"; Map param = new HashMap<>(); param.put("userGuid", userIdEn); - Map headerMap = new HashMap<>(); - headerMap.put("Authorization", "Bearer " + tokanStr); - Result result = HttpClientManager.getInstance().sendGet(serverUrl, param, headerMap); + + Result result = HttpClientManager.getInstance().sendGet(serverUrl, param, getApiHeaderMap()); System.out.println(JSON.toJSONString(result)); if (!result.success() || StringUtils.isBlank(result.getData())) { log.info("getUserInfoMobile fail result:{}", JSON.toJSONString(result)); @@ -190,36 +213,60 @@ public class YantaiApi { return null; } + @NotNull + private static Map getApiHeaderMap() { + Map headerMap = new HashMap<>(); + try { + JSONObject token = new JSONObject(); + token.put("token", SSO_API_TOKEN); + // token.put("token","iJCDUgCBV/Zk5FkkaxLypA=="); + token.put("expiration", System.currentTimeMillis()); + + String tokanStr = SM4UtilsForYanTai.dealEncryptData(token.toString()); + headerMap.put("Authorization", "Bearer " + tokanStr); + } catch (Exception e) { + log.error("getApiHeaderMap exception", e); + } + return headerMap; + } + public static void main(String[] args) throws BadPaddingException, InvalidKeyException, JsonProcessingException { -// JSONObject token = new JSONObject(); -// token.put("token", SSO_CLIENT_TOKEN); -// token.put("expiration", System.currentTimeMillis()); -// -// String tokanStr = SM4UtilsForYanTai.dealEncryptData(token.toString()); -// String testUserId = "0ffd76e2-27b5-4b33-be9a-186f9f878bf1"; -// String userId = SM4UtilsForYanTai.dealEncryptData(testUserId); -// System.out.println(tokanStr + "__" + userId); -// String serverUrl = "http://172.20.46.155:8082/person/userInfo/getUserByUserGuid"; -// //String serverUrl = "http://120.220.248.247:8081/person/userInfo/getUserByUserGuid"; -// Map param = new HashMap<>(); -// param.put("userGuid", userId); -// Map headerMap = new HashMap<>(); -// headerMap.put("Authorization", "Bearer " + tokanStr); -// Result stringResult = HttpClientManager.getInstance().sendGet(serverUrl, param, headerMap); -// System.out.println(JSON.toJSONString(stringResult)); -// -// String data = stringResult.getData(); -// JSONObject jsonObject = JSON.parseObject(data); -// String secondCode = jsonObject.getString("code"); -// String secondMessage = jsonObject.getString("message"); -// System.out.println(secondCode); -// System.out.println(secondMessage); -// String data1 = SM4UtilsForYanTai.dealDecryptData(jsonObject.getString("data")); -// System.out.println("======" + data1); - String s = SM4UtilsForYanTai.dealDecryptData("R5TbfdZPJ7QA9uo02EGT/uDWyUWapZTmTQZwwLYnX5ZChQhV8bYa17yJ+d+KC5vUm9P/O9J25pkpKSzUSaXEmJz3oniLQdj3OyhmZFghKAKVbK/By+3oyVQG3ApRUMwir64RkvnjpP7MjgUaXXongNRheMrsarV2fjr8ZYDzIH0bhsTDgo0/qNSSmFc+0sWmcvraDyeeI5nRNyjaBzybuBQzOCkqf3LtQAwnqWj8lCVPi5dH7KiTzM0pwZWzhfr21xzaw80fQkUMznBfkiJJM8nI2vqgZfa6TgtTH3h7JYLq8LDcu5UMJpMuVjbWwW41N41I+c9magDCUOJ9LkbmrUTvg2Y0asccP7U3jt9NNgwmRT5L/vxNmuapDaADjFR83P3ospRaclr3vo9OWMORSw=="); - System.out.println("sssssss:"+s); - - - getLoginToken("0d554bccfbac4be3846d643252daf92b"); + + //testGetUserByUserId(); + + //code只能用一次 + //getLoginToken("0d554bccfbac4be3846d643252daf92b"); + + String organizationId = "44e05de9-34fa-48f6-b89f-02838d792cf9"; + List childOuInfoByGuid = getChildOuInfoByGuid(organizationId); + System.out.println("childOuInfoByGuid:"+JSON.toJSONString(childOuInfoByGuid)); + List userByOuGuid = getUserByOuGuid(organizationId); + System.out.println("getUserByOuGuid:"+JSON.toJSONString(userByOuGuid)); + + Map apiHeaderMap = getApiHeaderMap(); + System.out.println(apiHeaderMap); + //testGetUserByUserId(); + } + + private static void testGetUserByUserId() throws JsonProcessingException, InvalidKeyException, BadPaddingException { + String testUserId = "0ffd76e2-27b5-4b33-be9a-186f9f878bf1"; + + String serverUrl = SSO_BACKGROUND_SERVER_URL +"person/userInfo/getUserByUserGuid"; + //String serverUrl = "http://120.220.248.247:8081/person/userInfo/getUserByUserGuid"; + Map param = new HashMap<>(); + param.put("userGuid", SM4UtilsForYanTai.dealEncryptData(testUserId)); + Result stringResult = HttpClientManager.getInstance().sendGet(serverUrl, param, getApiHeaderMap()); + System.out.println(JSON.toJSONString(stringResult)); + + String data = stringResult.getData(); + JSONObject jsonObject = JSON.parseObject(data); + String secondCode = jsonObject.getString("code"); + String secondMessage = jsonObject.getString("message"); + System.out.println(secondCode); + System.out.println(secondMessage); + String data1 = SM4UtilsForYanTai.dealDecryptData(jsonObject.getString("data")); + System.out.println("======" + data1); + String s = SM4UtilsForYanTai.dealDecryptData("EsOeQX+A8+GG26lzLnuKeuylkBDRFcTbF+gE/jURIzddlVI8RToQQhzK4EHy0WfpS/L4dSAJC93UyVLJhj+r/pup2RFq/GjpH7Md+1Mjg3dM+eyDuGql71bUrldQwJXYnHrQm3Mn7tk5m2eLhEVNkFvdELjuy3Kg8YihZXf2Sox+kxtmK4DSIn/gxhVCoUneWeL0cA6JGHI6jNuq97rzgcNK3Mwen8MxOoWP3n3r+kIpwZCwIlL70MrBjIZ6FHIhcxpqL82gpLSe1K0TFgeWw+9PMo1yv4cGZn7rU86TDlQFoDP86dVa1jrBoyUmW/vvLXrMKwfBaiv9/EUzcCLZWYxEwH93n0X/NYCYem3pfv4uXk5A7/D+Npgj9OKCEIz0ROn0UW5NiXI5Vibz0dywaq4sfsR/LiwjV81QOGY9tsHzN2+MnyTVpQg1l7looNnq1j+wwLneS0aDmbTqBLEn/baph/Hnr2L/9HYpWfXkhz93XRNAdsbxhXdG5ZIiJSwNasHinPR3e2Hmn/02GOsBPFUifbyNUtslt4RS/gwboonBoXz8wrmXi+PfzUXwN8f2CKdBNEHl72USp70NtBSJUPAkHdXZEQPgGRped63Z9GA="); + System.out.println("sssssss:" + s); } }