100 lines
7.3 KiB
Java
100 lines
7.3 KiB
Java
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 "";
|
||
}
|
||
}
|
||
|
||
|
||
|
||
}
|