yili-apps/SynUser/src/com/yili/test/App.java
2023-05-06 16:41:58 +08:00

100 lines
7.3 KiB
Java
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

package com.yili.test;
import java.io.UnsupportedEncodingException;
import java.util.HashMap;
import org.apache.commons.codec.binary.Base64;
public class App {
// Basic testClient:qwertyuio0987654rfg :: Basic ???
static String clientId = "testClient";
static String clientSecret = "1234567890";
static String redirect_uri = "http://10.119.254.49:33018/";
public static void main(String[] args) {
// System.out.println("--startup--------");
// [1] 第一个网址放在浏览器中打开登录然后拿url中的code
// String firstURL="http://cs.idm.yili.com:7777/ms_oauth/oauth2/endpoints/oauthservice/authorize?client_id="+clientId+"&redirect_uri="+redirect_uri+"&response_type=code&scope=UserProfile.me";
// System.out.println(firstURL);
// [2] code拿来调用第二个接口
// =======================================================================
//String code = "eyJhbGciOiJSUzUxMiIsInR5cCI6IkpXVCIsIng1dCI6IkNEanJCRy03d0hKZnZpNURzTm9OeGQ1TE5iWSIsImtpZCI6Im9yYWtleSJ9.eyJvcmFjbGUub2F1dGgucmVkaXJlY3QtdXJpIjoiaHR0cDovLzEwLjExOS4yMS4yMzE6MzE4NjIvZWNzLWNvbnNvbGUiLCJzdWIiOm51bGwsIm9yYWNsZS5vYXV0aC51c2VyX29yaWdpbl9pZF90eXBlIjoiTERBUF9VSUQiLCJvcmFjbGUub2F1dGgudXNlcl9vcmlnaW5faWQiOiIwMDMxODY5NiIsImlzcyI6Ind3dy5vcmFjbGUuZXhhbXBsZS5jb20iLCJvcmFjbGUub2F1dGguc3ZjX3BfbiI6Ik9BdXRoU2VydmljZVByb2ZpbGUiLCJpYXQiOjE2Mzk0OTMwMTgsIm9yYWNsZS5vYXV0aC50a19jb250ZXh0IjoiYXpjIiwiZXhwIjoxNjM5NDkzOTE4LCJwcm4iOm51bGwsImp0aSI6IjEwMzU0YjYxLTczZmYtNDAzMy04Y2U4LTcyZTFjYjFkYTg3YSIsIm9yYWNsZS5vYXV0aC5zY29wZSI6IlVzZXJQcm9maWxlLm1lIiwib3JhY2xlLm9hdXRoLmNsaWVudF9vcmlnaW5faWQiOiJNQU1DQ2xpZW50IiwidXNlci50ZW5hbnQubmFtZSI6IkRlZmF1bHREb21haW4iLCJvcmFjbGUub2F1dGguaWRfZF9pZCI6IjEyMzQ1Njc4LTEyMzQtMTIzNC0xMjM0LTEyMzQ1Njc4OTAxMiJ9.WYCIAKUIJS1LcWzDn4tfOCts78-grCHpCye4PL_gTTXamm1r2nnOdJKAZieCOdLeBhTbjyDRFldrruRFIkiqnU9Tp3RRkFXOB7vfintBK2VDpBz9_VJX3FgzoQRCGUOcX6nZu9_vBmgKu1yjJMaz6Vq13WHPFG1XLj1ttKlEBBY";
String code = "eyJhbGciOiJSUzUxMiIsInR5cCI6IkpXVCIsIng1dCI6IkNEanJCRy03d0hKZnZpNURzTm9OeGQ1TE5iWSIsImtpZCI6Im9yYWtleSJ9.eyJvcmFjbGUub2F1dGgucmVkaXJlY3QtdXJpIjoiaHR0cDovLzEwLjExOS4yNTQuNDk6MzMwMTgvIiwic3ViIjpudWxsLCJvcmFjbGUub2F1dGgudXNlcl9vcmlnaW5faWRfdHlwZSI6IkxEQVBfVUlEIiwib3JhY2xlLm9hdXRoLnVzZXJfb3JpZ2luX2lkIjoiMDAzMTg2OTYiLCJpc3MiOiJ3d3cub3JhY2xlLmV4YW1wbGUuY29tIiwib3JhY2xlLm9hdXRoLnN2Y19wX24iOiJPQXV0aFNlcnZpY2VQcm9maWxlIiwiaWF0IjoxNjU3Nzc4NjkxLCJvcmFjbGUub2F1dGgudGtfY29udGV4dCI6ImF6YyIsImV4cCI6MTY1Nzc3OTU5MSwicHJuIjpudWxsLCJqdGkiOiI2N2UyMDgwNy0xZGFiLTRhNmEtOTM4My0yZjY4YWU1ZTM3MzciLCJvcmFjbGUub2F1dGguc2NvcGUiOiJVc2VyUHJvZmlsZS5tZSIsIm9yYWNsZS5vYXV0aC5jbGllbnRfb3JpZ2luX2lkIjoiZTQ4M2MwZTVmODEyNDU2MzliOWIwYzk0MGNhODFlODAiLCJ1c2VyLnRlbmFudC5uYW1lIjoiRGVmYXVsdERvbWFpbiIsIm9yYWNsZS5vYXV0aC5pZF9kX2lkIjoiMTIzNDU2NzgtMTIzNC0xMjM0LTEyMzQtMTIzNDU2Nzg5MDEyIn0.UFt7tPu-DL3fh1WhbjwuxwjkuvOpA1bDDLAiGXHx9-32JV-fv6ExeQ6GWXCjbgIVWxmnSzhGdqQuXIixsY6rN-VjXwloOoSE4tVsbxbO4imbHvaOGAjyvrWiKI3cLTokTK1In-kWr1FkkYq4_PcOgTi6PC8GYdH2_zY6_KBY1WIvyqhcVffBVLAN7yKtvjb4iT9ILYxSYq8LfZdyKJ9nwgoDH4qeOsmqsELXvny0";
getTokens(redirect_uri, code);
// [2] - 的结果
/*
* {"expires_in":3600,"token_type":"Bearer",
* "access_token":"eyJhbGciOiJSUzUxMiIsInR5cCI6IkpXVCIsIng1dCI6IkNEanJCRy03d0hKZnZpNURzTm9OeGQ1TE5iWSIsImtpZCI6Im9yYWtleSJ9.eyJzdWIiOiIwMDMxODY5NiIsIm9yYWNsZS5vYXV0aC51c2VyX29yaWdpbl9pZF90eXBlIjoiTERBUF9VSUQiLCJvcmFjbGUub2F1dGgudXNlcl9vcmlnaW5faWQiOiIwMDMxODY5NiIsImlzcyI6Ind3dy5vcmFjbGUuZXhhbXBsZS5jb20iLCJvcmFjbGUub2F1dGguc3ZjX3BfbiI6Ik9BdXRoU2VydmljZVByb2ZpbGUiLCJpYXQiOjE2Mzk0OTMwNjgsIm9yYWNsZS5vYXV0aC5wcm4uaWRfdHlwZSI6IkxEQVBfVUlEIiwib3JhY2xlLm9hdXRoLnRrX2NvbnRleHQiOiJyZXNvdXJjZV9hY2Nlc3NfdGsiLCJleHAiOjE2Mzk0OTY2NjgsInBybiI6IjAwMzE4Njk2IiwianRpIjoiODQ2NWUwNGYtZmUwOS00M2ZjLTkwNzYtY2YyZTg5NWY3YjUzIiwib3JhY2xlLm9hdXRoLmNsaWVudF9vcmlnaW5faWQiOiJNQU1DQ2xpZW50Iiwib3JhY2xlLm9hdXRoLnNjb3BlIjoiVXNlclByb2ZpbGUubWUiLCJ1c2VyLnRlbmFudC5uYW1lIjoiRGVmYXVsdERvbWFpbiIsIm9yYWNsZS5vYXV0aC5pZF9kX2lkIjoiMTIzNDU2NzgtMTIzNC0xMjM0LTEyMzQtMTIzNDU2Nzg5MDEyIn0.hXSM1SSVcgqrldfCUK0tEz_TwbbeMvyE1qTXz8qHV3CWMuvVPbVTdaywr-fLcJxM115X3a2LMLFGdSZegS1EjVlsuIIpX0Nknfp3zrXNe_uzaJU_YeubnSMum-GER4Wlh9Yu64e8GfjZdmD9IOVr_dl4Z8R-moXF7a4VV4fgPxA"}
* */
//======================================================================
// [4] 获取上面 access_token 传给第4个接口
//String token = "eyJhbGciOiJSUzUxMiIsInR5cCI6IkpXVCIsIng1dCI6IkNEanJCRy03d0hKZnZpNURzTm9OeGQ1TE5iWSIsImtpZCI6Im9yYWtleSJ9.eyJzdWIiOiIwMDMxODY5NiIsIm9yYWNsZS5vYXV0aC51c2VyX29yaWdpbl9pZF90eXBlIjoiTERBUF9VSUQiLCJvcmFjbGUub2F1dGgudXNlcl9vcmlnaW5faWQiOiIwMDMxODY5NiIsImlzcyI6Ind3dy5vcmFjbGUuZXhhbXBsZS5jb20iLCJvcmFjbGUub2F1dGguc3ZjX3BfbiI6Ik9BdXRoU2VydmljZVByb2ZpbGUiLCJpYXQiOjE2Mzk0OTMwNjgsIm9yYWNsZS5vYXV0aC5wcm4uaWRfdHlwZSI6IkxEQVBfVUlEIiwib3JhY2xlLm9hdXRoLnRrX2NvbnRleHQiOiJyZXNvdXJjZV9hY2Nlc3NfdGsiLCJleHAiOjE2Mzk0OTY2NjgsInBybiI6IjAwMzE4Njk2IiwianRpIjoiODQ2NWUwNGYtZmUwOS00M2ZjLTkwNzYtY2YyZTg5NWY3YjUzIiwib3JhY2xlLm9hdXRoLmNsaWVudF9vcmlnaW5faWQiOiJNQU1DQ2xpZW50Iiwib3JhY2xlLm9hdXRoLnNjb3BlIjoiVXNlclByb2ZpbGUubWUiLCJ1c2VyLnRlbmFudC5uYW1lIjoiRGVmYXVsdERvbWFpbiIsIm9yYWNsZS5vYXV0aC5pZF9kX2lkIjoiMTIzNDU2NzgtMTIzNC0xMjM0LTEyMzQtMTIzNDU2Nzg5MDEyIn0.hXSM1SSVcgqrldfCUK0tEz_TwbbeMvyE1qTXz8qHV3CWMuvVPbVTdaywr-fLcJxM115X3a2LMLFGdSZegS1EjVlsuIIpX0Nknfp3zrXNe_uzaJU_YeubnSMum-GER4Wlh9Yu64e8GfjZdmD9IOVr_dl4Z8R-moXF7a4VV4fgPxA";
//getUserInfo(token);
/* // [4] 的结果
* {"uid":"00318696","mail":"A00318696@yili.com","employeenumber":"00318696","lastname":"王超",
* "commonname":"王超","uri":"\/ms_oauth\/resources\/userprofile\/me\/00318696"}
*/
}
// http://cs.idm.yili.com:7777/ms_oauth/oauth2/endpoints/oauthservice/tokens?redirect_uri=http://192.168.88.100:8080/ecs-console/&grant_type=authorization_code&code=
// 获取授权Token接口(authorization_code模式)
public static String getTokens(String redirect_uri, String code) {
String tokenJson = "";
String url = "http://cs.idm.yili.com:7777/ms_oauth/oauth2/endpoints/oauthservice/tokens?" + "redirect_uri="
+ redirect_uri + "&grant_type=authorization_code&code=" + code;
String authoStr = geAuthorization(clientId, clientSecret);
HashMap<String, String> HeaderMap = new HashMap();
HeaderMap.put("Content-Type", "application/x-www-form-urlencoded");
HeaderMap.put("Authorization", authoStr);
HeaderMap.put("accept", "*/*");
HeaderMap.put("connection", "Keep-Alive");
// do request
tokenJson = HttpJavaUtil.sendPost(url, "", HeaderMap);
System.out.println(tokenJson);
return tokenJson;
}
public static String getUserInfo(String token) {
String userInfoJson = "";
String url = "http://cs.idm.yili.com:7777/ms_oauth/resources/userprofile/me";
String authoStr = token;
HashMap<String, String> HeaderMap = new HashMap();
HeaderMap.put("Content-Type", "application/x-www-form-urlencoded");
HeaderMap.put("Authorization", authoStr);
HeaderMap.put("accept", "*/*");
HeaderMap.put("connection", "Keep-Alive");
// do request get
userInfoJson = HttpJavaUtil.doGet(url, HeaderMap);
System.out.println(userInfoJson);
return userInfoJson;
}
public static String geAuthorization(String clientId, String clientSecret) {
try {
byte[] key = (clientId + ":" + clientSecret).getBytes("utf-8");
String cc = new String(Base64.encodeBase64(key), "utf-8");
// String cc = new String(java.util.Base64.getEncoder().encode(key), "utf-8");
return "Basic " + cc;
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
return "";
}
}
}