From 47b2796c27015b65e52ffc3aca394ed0923c183c Mon Sep 17 00:00:00 2001
From: dnslin <1636988859@qq.com>
Date: Fri, 29 Oct 2021 23:36:33 +0800
Subject: [PATCH] =?UTF-8?q?1.=E5=A2=9E=E5=8A=A0=E5=BC=82=E5=B8=B8=E6=9E=9A?=
=?UTF-8?q?=E4=B8=BE=202.=E5=AE=8C=E5=96=84Access=5FToken=E7=9A=84?=
=?UTF-8?q?=E8=8E=B7=E5=8F=96=E6=8E=A5=E5=8F=A3=E4=BB=A3=E7=A0=81?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
pom.xml | 56 +++++++++----------
.../dnslin/onemanager/logic/AuthToken.java | 5 +-
.../onemanager/logic/impl/AuthTokenImpl.java | 26 +++++++--
.../onemanager/result/ResponseEnum.java | 3 +-
4 files changed, 53 insertions(+), 37 deletions(-)
diff --git a/pom.xml b/pom.xml
index c6290a8..721cb44 100644
--- a/pom.xml
+++ b/pom.xml
@@ -61,36 +61,36 @@
2.9.2
-
- com.google.code.gson
- gson
- 2.8.5
-
+
+
+
+
+
-
-
- com.sun.mail
- javax.mail
- 1.6.2
-
-
-
-
- com.fasterxml.jackson.core
- jackson-databind
- 2.9.4
-
+
+
+
+
+
+
+
+
+
+
+
+
+
-
- com.fasterxml.jackson.core
- jackson-annotations
- 2.9.4
-
-
- com.fasterxml.jackson.core
- jackson-core
- 2.9.4
-
+
+
+
+
+
+
+
+
+
+
org.slf4j
diff --git a/src/main/java/com/dnslin/onemanager/logic/AuthToken.java b/src/main/java/com/dnslin/onemanager/logic/AuthToken.java
index ca59ad7..428f7fb 100644
--- a/src/main/java/com/dnslin/onemanager/logic/AuthToken.java
+++ b/src/main/java/com/dnslin/onemanager/logic/AuthToken.java
@@ -9,13 +9,14 @@ package com.dnslin.onemanager.logic;
*/
public interface AuthToken {
/**
- * 功能描述
+ * 获取AccessToken
* @author dnslin
* @date 10/25
* @param clientId
* @param redirectUri
+ * @param clientSecret
* @return
*/
- String getAccessToken(String clientId, String redirectUri);
+ void getAccessToken(String clientId, String redirectUri,String clientSecret);
String getRefreshToken();
}
diff --git a/src/main/java/com/dnslin/onemanager/logic/impl/AuthTokenImpl.java b/src/main/java/com/dnslin/onemanager/logic/impl/AuthTokenImpl.java
index f3f7137..f316ea6 100644
--- a/src/main/java/com/dnslin/onemanager/logic/impl/AuthTokenImpl.java
+++ b/src/main/java/com/dnslin/onemanager/logic/impl/AuthTokenImpl.java
@@ -1,5 +1,7 @@
package com.dnslin.onemanager.logic.impl;
+import cn.hutool.core.lang.Console;
+import com.alibaba.fastjson.JSONObject;
import com.dnslin.onemanager.exception.AppException;
import com.dnslin.onemanager.logic.AuthToken;
import com.dnslin.onemanager.result.ResponseEnum;
@@ -24,14 +26,26 @@ public class AuthTokenImpl extends HttpServlet implements AuthToken {
private final ServletContext context = this.getServletContext();
@Override
- public String getAccessToken(String clientId, String redirectUri) {
- String code = (String)context.getAttribute("code");
- if (code == null || code.isEmpty()){
- throw new AppException(ResponseEnum.SYSTEM_ERROR);
+ public void getAccessToken(String clientId, String redirectUri, String clientSecret) {
+ String code = (String) context.getAttribute("code");
+ if (code == null || code.isEmpty()) {
+ throw new AppException(ResponseEnum.AUTH_CODE_ISNULL);
}
Map param = new HashMap();
- HttpClientUtils.doPost("",param);
- return null;
+ param.put("client_id", clientId);
+ param.put("scope", "files.readwrite.all files.readwrite offline_access");
+ param.put("code", code);
+ param.put("redirect_uri", redirectUri);
+ param.put("grant_type", "authorization_code");
+ param.put("client_secret", clientSecret);
+ String accessJson = HttpClientUtils.doPost("https://login.microsoftonline.com/common/oauth2/v2.0/token", param).getContent();
+ if (accessJson == null || accessJson.isEmpty()) {
+ throw new AppException(ResponseEnum.THE_RESULT_SET_IS_EMPTY);
+ }
+ Console.log("结果集accessJson:==>" + accessJson);
+ String access_token = JSONObject.parseObject(accessJson).getString("access_token");
+ Console.log("Access_token:==>" + access_token);
+ context.setAttribute("access_token",access_token);
}
@Override
diff --git a/src/main/java/com/dnslin/onemanager/result/ResponseEnum.java b/src/main/java/com/dnslin/onemanager/result/ResponseEnum.java
index a9e6ee7..b2b9451 100644
--- a/src/main/java/com/dnslin/onemanager/result/ResponseEnum.java
+++ b/src/main/java/com/dnslin/onemanager/result/ResponseEnum.java
@@ -10,7 +10,8 @@ public enum ResponseEnum {
Cookie_not_found("4004","Cookie获取失败"),
Token_invalid("4005","Token失效"),
PARAMETERS_ARE_MISSING("4006","参数缺失"),
- AUTH_CODE_ISNULL("4007","Auth Code 为空");
+ AUTH_CODE_ISNULL("4007","Auth Code 为空"),
+ THE_RESULT_SET_IS_EMPTY("4008","请求结果集为Null,请联系管理员");
private String code;