package com.olm.util; import cn.hutool.http.HttpUtil; import cn.hutool.json.JSONUtil; import com.alibaba.fastjson.JSONObject; import com.rkhd.platform.sdk.http.CommonData; import com.rkhd.platform.sdk.http.CommonHttpClient; import com.rkhd.platform.sdk.log.Logger; import com.rkhd.platform.sdk.log.LoggerFactory; import java.text.SimpleDateFormat; import java.util.Date; /** * ClassName:TokenTest Package:com.olm.util Date:2020/7/27 Auth:penghui@olm.com.cn */ public class TokenTest { // 租户域:AWS @SuppressWarnings("unused") private static final String RANT_DOMAIN = "https://api.xiaoshouyi.com"; // 连接器数据: private static final String CLIENT_ID = "c97fbd8aca50ba94068da6ded23905df"; private static final String CLIENT_SECRET = "7a4d178ebf1d55229fd28c5cb18703da"; private static final String REDIRECT_URL = "https://api.xiaoshouyi.com"; // 账号 private static final String USER_ACCOUNT = "lixuejin@olm.com.cn"; // 密码 private static final String USER_PASSWORD = "Lydia315"; // 安全令牌 private static final String SECURITY_CODE = "TSu53FnT"; private static final Logger logger = LoggerFactory.getLogger(); /** * 获取管理员TOKEN(CommonHttpClient获取) * @return String 管理员Token */ public static String getAccessTokenString() { CommonHttpClient client = CommonHttpClient.instance(); CommonData data = new CommonData(); String urlNameString = RANT_DOMAIN + "/oauth2/token.action?grant_type=password&client_id=" + CLIENT_ID + "&client_secret=" + CLIENT_SECRET + "&redirect_uri=" + REDIRECT_URL + "&username=" + USER_ACCOUNT + "&password=" + USER_PASSWORD + SECURITY_CODE; data.setCall_type("POST"); data.setCallString(urlNameString); client.setContentEncoding("UTF-8"); JSONObject result = JSONObject.parseObject(client.execute(data).getResult()); client.close(); long issuedAt = Long.parseLong(result.get("issued_at").toString()); SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Date date = new Date(issuedAt); String issuedAtStr = dateFormat.format(date); String token = result.get("access_token").toString(); String type = result.get("token_type").toString(); String accessToken = type + " " + token; logger.info("管理员token=>" + accessToken + "\t token生成时间:" + issuedAtStr); return accessToken; } /** * 获取新Token(HttpUtil获取) * @return String 新Token */ public static String getAccessToken(){ String token; String urlStr =RANT_DOMAIN + "/oauth2/token.action"; cn.hutool.json.JSONObject jsonReq = new cn.hutool.json.JSONObject(); jsonReq.putOpt("grant_type", "password"); jsonReq.putOpt("redirect_uri", REDIRECT_URL); jsonReq.putOpt("username", USER_ACCOUNT); jsonReq.putOpt("password", USER_PASSWORD + SECURITY_CODE); jsonReq.putOpt("client_id", CLIENT_ID); jsonReq.putOpt("client_secret", CLIENT_SECRET); cn.hutool.json.JSONObject jsonResp= JSONUtil.parseObj(HttpUtil.post(urlStr, jsonReq.toString())); String access_token = jsonResp.get("access_token").toString(); String token_type = jsonResp.get("token_type").toString(); token = token_type+ " " +access_token; logger.info("[String]新获取:"+ token); return token; } public static void main(String[] args) { //两种获取方式,结果一样,只是获取时使用的方法不一样; String accessToken1 = getAccessTokenString(); System.out.println("==>1、" + accessToken1); String accessToken = getAccessToken(); System.out.println("==>2、" + accessToken); } }