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 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 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 ""; } } }