|
@@ -1,5 +1,6 @@
|
|
package com.qmth.xjtu.api;
|
|
package com.qmth.xjtu.api;
|
|
|
|
|
|
|
|
+import com.alibaba.fastjson.JSONObject;
|
|
import com.qmth.boot.api.annotation.Aac;
|
|
import com.qmth.boot.api.annotation.Aac;
|
|
import com.qmth.boot.api.annotation.BOOL;
|
|
import com.qmth.boot.api.annotation.BOOL;
|
|
import com.qmth.boot.api.constant.ApiConstant;
|
|
import com.qmth.boot.api.constant.ApiConstant;
|
|
@@ -8,7 +9,6 @@ import com.qmth.teachcloud.exchange.common.service.CommonService;
|
|
import com.qmth.teachcloud.exchange.common.util.HttpUtil;
|
|
import com.qmth.teachcloud.exchange.common.util.HttpUtil;
|
|
import com.qmth.teachcloud.exchange.common.util.JacksonUtil;
|
|
import com.qmth.teachcloud.exchange.common.util.JacksonUtil;
|
|
import com.qmth.teachcloud.exchange.common.util.Result;
|
|
import com.qmth.teachcloud.exchange.common.util.Result;
|
|
-import com.qmth.teachcloud.exchange.common.util.ServletUtil;
|
|
|
|
import io.swagger.annotations.*;
|
|
import io.swagger.annotations.*;
|
|
import org.slf4j.Logger;
|
|
import org.slf4j.Logger;
|
|
import org.slf4j.LoggerFactory;
|
|
import org.slf4j.LoggerFactory;
|
|
@@ -19,8 +19,6 @@ import org.springframework.web.bind.annotation.RequestParam;
|
|
import org.springframework.web.bind.annotation.RestController;
|
|
import org.springframework.web.bind.annotation.RestController;
|
|
|
|
|
|
import javax.annotation.Resource;
|
|
import javax.annotation.Resource;
|
|
-import javax.servlet.http.HttpServletRequest;
|
|
|
|
-import javax.servlet.http.HttpServletResponse;
|
|
|
|
import java.io.IOException;
|
|
import java.io.IOException;
|
|
import java.util.LinkedHashMap;
|
|
import java.util.LinkedHashMap;
|
|
import java.util.Map;
|
|
import java.util.Map;
|
|
@@ -40,6 +38,9 @@ import java.util.Objects;
|
|
@Validated
|
|
@Validated
|
|
public class OpenApiController {
|
|
public class OpenApiController {
|
|
private static final Logger log = LoggerFactory.getLogger(OpenApiController.class);
|
|
private static final Logger log = LoggerFactory.getLogger(OpenApiController.class);
|
|
|
|
+ private static final String ACCESS_TOKEN_URL = "https://org.xjtu.edu.cn/openplatform/oauth/getAccessToken";
|
|
|
|
+ private static final String USER_INFO_URL = "https://org.xjtu.edu.cn/openplatform/oauth/open/getUserInfo";
|
|
|
|
+ private static final String LOGOUT_URL = "http://org.xjtu.edu.cn/openplatform/oauth/logout";
|
|
|
|
|
|
@Resource
|
|
@Resource
|
|
CommonService commonService;
|
|
CommonService commonService;
|
|
@@ -53,39 +54,47 @@ public class OpenApiController {
|
|
@ApiParam(value = "用户类型") @RequestParam(required = false) String userType,
|
|
@ApiParam(value = "用户类型") @RequestParam(required = false) String userType,
|
|
@ApiParam(value = "员工工号") @RequestParam(required = false) String employeeNo,
|
|
@ApiParam(value = "员工工号") @RequestParam(required = false) String employeeNo,
|
|
@ApiParam(value = "返回url") @RequestParam(required = false) String returnUrl) throws IOException {
|
|
@ApiParam(value = "返回url") @RequestParam(required = false) String returnUrl) throws IOException {
|
|
- HttpServletRequest request = ServletUtil.getRequest();
|
|
|
|
- HttpServletResponse response = ServletUtil.getResponse();
|
|
|
|
String schoolCode = "test-school-2";
|
|
String schoolCode = "test-school-2";
|
|
|
|
|
|
-// String authenticationUrl = "https://org.xjtu.edu.cn/openplatform/oauth/authorize?appId=1548&redirectUri=https://org.xjtu.edu.cn/dologin/&responseType=code&scope=user_info&state=1234";
|
|
|
|
-// String authenticationUrl = "https://org.xjtu.edu.cn/openplatform/oauth/authorize";
|
|
|
|
-// Map<String, Object> params = new LinkedHashMap<>();
|
|
|
|
-// params.put("appId", 1548);
|
|
|
|
-// params.put("redirectUri", "https://org.xjtu.edu.cn/dologin/");
|
|
|
|
-// params.put("responseType", "code");
|
|
|
|
-// params.put("scope", "user_info");
|
|
|
|
-// params.put("state", "1234");
|
|
|
|
-
|
|
|
|
-// String result = HttpUtil.post(authenticationUrl, null);
|
|
|
|
-// String result = HttpUtil.post(authenticationUrl, params);
|
|
|
|
-
|
|
|
|
- String accessTokenUrl = "https://org.xjtu.edu.cn/openplatform/oauth/getAccessToken";
|
|
|
|
Map<String, Object> accessTokenParams = new LinkedHashMap<>();
|
|
Map<String, Object> accessTokenParams = new LinkedHashMap<>();
|
|
accessTokenParams.put("code", code);
|
|
accessTokenParams.put("code", code);
|
|
- String accessTokenResult = HttpUtil.post(accessTokenUrl, accessTokenParams, null);
|
|
|
|
|
|
+ String accessTokenResult = HttpUtil.post(ACCESS_TOKEN_URL, accessTokenParams, null);
|
|
|
|
+ String accessToken = null, gsessionId = null;
|
|
|
|
+
|
|
|
|
+ //获取accessToken
|
|
if (Objects.nonNull(accessTokenResult)) {
|
|
if (Objects.nonNull(accessTokenResult)) {
|
|
log.info("accessTokenResult:{}", JacksonUtil.parseJson(accessTokenResult));
|
|
log.info("accessTokenResult:{}", JacksonUtil.parseJson(accessTokenResult));
|
|
|
|
+ JSONObject jsonObject = JSONObject.parseObject(accessTokenResult);
|
|
|
|
+ JSONObject object = jsonObject.getJSONObject("data");
|
|
|
|
+ String message = jsonObject.getString("message");
|
|
|
|
+ if (Objects.nonNull(object) && Objects.equals(message, "成功")) {
|
|
|
|
+ accessToken = object.getString("accessToken");
|
|
|
|
+ gsessionId = object.getString("gsessionId");
|
|
|
|
+ }
|
|
}
|
|
}
|
|
- String userInfoUrl = "https://org.xjtu.edu.cn/openplatform/oauth/open/getUserInfo";
|
|
|
|
- String userInfoResult = HttpUtil.post(userInfoUrl, null, "123");
|
|
|
|
- if (Objects.nonNull(userInfoResult)) {
|
|
|
|
- log.info("userInfoResult:{}", JacksonUtil.parseJson(userInfoResult));
|
|
|
|
|
|
+
|
|
|
|
+ //获取用户信息
|
|
|
|
+ if (Objects.nonNull(accessToken)) {
|
|
|
|
+ String userInfoResult = HttpUtil.post(USER_INFO_URL, null, accessToken);
|
|
|
|
+ if (Objects.nonNull(userInfoResult)) {
|
|
|
|
+ log.info("userInfoResult:{}", JacksonUtil.parseJson(userInfoResult));
|
|
|
|
+ }
|
|
}
|
|
}
|
|
|
|
|
|
//todo 学校业务逻辑待完善
|
|
//todo 学校业务逻辑待完善
|
|
OpenParams openParams = new OpenParams();
|
|
OpenParams openParams = new OpenParams();
|
|
openParams.setName("test1");
|
|
openParams.setName("test1");
|
|
|
|
|
|
|
|
+ //登出
|
|
|
|
+ if (Objects.nonNull(gsessionId)) {
|
|
|
|
+ Map<String, Object> logoutParams = new LinkedHashMap<>();
|
|
|
|
+ logoutParams.put("gsessionId", gsessionId);
|
|
|
|
+ String logoutResult = HttpUtil.post(LOGOUT_URL, logoutParams, null);
|
|
|
|
+ if (Objects.nonNull(logoutResult)) {
|
|
|
|
+ log.info("logoutResult:{}", JacksonUtil.parseJson(logoutResult));
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
commonService.redirectLogic(code, schoolCode, returnUrl, Objects.nonNull(openParams) ? JacksonUtil.parseJson(openParams) : null);
|
|
commonService.redirectLogic(code, schoolCode, returnUrl, Objects.nonNull(openParams) ? JacksonUtil.parseJson(openParams) : null);
|
|
}
|
|
}
|
|
}
|
|
}
|