|
@@ -1,14 +1,12 @@
|
|
package com.css.simulation.oauth.client.controller;
|
|
package com.css.simulation.oauth.client.controller;
|
|
|
|
|
|
-import api.common.pojo.common.ResponseBodyVO;
|
|
|
|
-import api.common.pojo.common.SimulationTokenVO;
|
|
|
|
import api.common.pojo.po.UserPO;
|
|
import api.common.pojo.po.UserPO;
|
|
import api.common.util.EncryptUtil;
|
|
import api.common.util.EncryptUtil;
|
|
import api.common.util.HttpUtil;
|
|
import api.common.util.HttpUtil;
|
|
-import api.common.util.JsonUtil;
|
|
|
|
import com.css.simulation.oauth.client.configuration.oauth.OauthParameter;
|
|
import com.css.simulation.oauth.client.configuration.oauth.OauthParameter;
|
|
import com.css.simulation.oauth.client.mapper.UserMapper;
|
|
import com.css.simulation.oauth.client.mapper.UserMapper;
|
|
import lombok.SneakyThrows;
|
|
import lombok.SneakyThrows;
|
|
|
|
+import lombok.extern.slf4j.Slf4j;
|
|
import org.apache.http.client.config.RequestConfig;
|
|
import org.apache.http.client.config.RequestConfig;
|
|
import org.apache.http.impl.client.CloseableHttpClient;
|
|
import org.apache.http.impl.client.CloseableHttpClient;
|
|
import org.springframework.boot.configurationprocessor.json.JSONObject;
|
|
import org.springframework.boot.configurationprocessor.json.JSONObject;
|
|
@@ -18,9 +16,12 @@ import org.springframework.web.bind.annotation.RequestParam;
|
|
import org.springframework.web.bind.annotation.ResponseBody;
|
|
import org.springframework.web.bind.annotation.ResponseBody;
|
|
|
|
|
|
import javax.annotation.Resource;
|
|
import javax.annotation.Resource;
|
|
|
|
+import javax.servlet.http.Cookie;
|
|
|
|
+import javax.servlet.http.HttpServletResponse;
|
|
|
|
|
|
@Controller
|
|
@Controller
|
|
@RequestMapping("/sign")
|
|
@RequestMapping("/sign")
|
|
|
|
+@Slf4j
|
|
public class SignController {
|
|
public class SignController {
|
|
|
|
|
|
@Resource
|
|
@Resource
|
|
@@ -49,25 +50,24 @@ public class SignController {
|
|
*/
|
|
*/
|
|
@RequestMapping("/entry")
|
|
@RequestMapping("/entry")
|
|
public String entry(@RequestParam("ticket") String ticket) {
|
|
public String entry(@RequestParam("ticket") String ticket) {
|
|
- System.out.println(oauthParameter);
|
|
|
|
|
|
+ log.info(oauthParameter.toString());
|
|
String zoogooyAuthorizeUrl = oauthParameter.getZoogooyAuthorizeUri() +
|
|
String zoogooyAuthorizeUrl = oauthParameter.getZoogooyAuthorizeUri() +
|
|
"?appid=" + oauthParameter.getZoogooyAppid() +
|
|
"?appid=" + oauthParameter.getZoogooyAppid() +
|
|
"&redirect_uri=" + oauthParameter.getZoogooyRedirectUri() +
|
|
"&redirect_uri=" + oauthParameter.getZoogooyRedirectUri() +
|
|
"&ticket=" + ticket +
|
|
"&ticket=" + ticket +
|
|
"&response_type=code" +
|
|
"&response_type=code" +
|
|
"&scope=snsapi_userinfo";
|
|
"&scope=snsapi_userinfo";
|
|
- return "redirect:" +zoogooyAuthorizeUrl;
|
|
|
|
|
|
+ return "redirect:" + zoogooyAuthorizeUrl;
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
/**
|
|
- * 登录接口首页,将 code 返回给前端
|
|
|
|
|
|
+ * 重定向到登录页,并将 token 放在 cookie 中传给前端
|
|
*
|
|
*
|
|
* @return token 信息
|
|
* @return token 信息
|
|
*/
|
|
*/
|
|
@RequestMapping("/home")
|
|
@RequestMapping("/home")
|
|
@SneakyThrows
|
|
@SneakyThrows
|
|
- @ResponseBody
|
|
|
|
- public ResponseBodyVO<SimulationTokenVO> home(@RequestParam("code") String code, @RequestParam("ticket") String ticket) {
|
|
|
|
|
|
+ public String home(@RequestParam("code") String code, @RequestParam("ticket") String ticket, HttpServletResponse response) {
|
|
//1 根据统一凭条 code 获取统一平台 access_token
|
|
//1 根据统一凭条 code 获取统一平台 access_token
|
|
/*
|
|
/*
|
|
响应体
|
|
响应体
|
|
@@ -79,15 +79,14 @@ public class SignController {
|
|
"appid":"{APPID}"
|
|
"appid":"{APPID}"
|
|
}
|
|
}
|
|
*/
|
|
*/
|
|
- JSONObject zoogooyToken = HttpUtil.post(closeableHttpClient, requestConfig,
|
|
|
|
- oauthParameter.getZoogooyTokenUri() + "?appid=" + oauthParameter.getZoogooyAppid() +
|
|
|
|
- "&secret=" + oauthParameter.getZoogooyAppSecret() +
|
|
|
|
- "&code=" + code +
|
|
|
|
- "&grant_type=authorization_code",
|
|
|
|
- null, null);
|
|
|
|
|
|
+ String zoogooyTokenUrl = oauthParameter.getZoogooyTokenUri() + "?appid=" + oauthParameter.getZoogooyAppid() +
|
|
|
|
+ "&secret=" + oauthParameter.getZoogooyAppSecret() +
|
|
|
|
+ "&code=" + code +
|
|
|
|
+ "&grant_type=authorization_code";
|
|
|
|
+ JSONObject zoogooyToken = HttpUtil.post(closeableHttpClient, requestConfig, zoogooyTokenUrl, null, null);
|
|
String accessToken = zoogooyToken.optString("access_token");
|
|
String accessToken = zoogooyToken.optString("access_token");
|
|
String openid = zoogooyToken.optString("openid");
|
|
String openid = zoogooyToken.optString("openid");
|
|
- System.out.println("------- 统一平台令牌信息为:" + zoogooyToken);
|
|
|
|
|
|
+ log.info("------- 统一平台令牌信息为:" + zoogooyToken);
|
|
|
|
|
|
//2 根据统一平台 access_token、openid、ticket 获取统一平台用户信息
|
|
//2 根据统一平台 access_token、openid、ticket 获取统一平台用户信息
|
|
/*
|
|
/*
|
|
@@ -107,7 +106,7 @@ public class SignController {
|
|
|
|
|
|
String unionid = userInfo.optString("unionid");
|
|
String unionid = userInfo.optString("unionid");
|
|
String nickname = userInfo.optString("nickname");
|
|
String nickname = userInfo.optString("nickname");
|
|
- System.out.println("------- 统一平台用户信息为:" + userInfo);
|
|
|
|
|
|
+ log.info("------- 统一平台用户信息为:" + userInfo);
|
|
|
|
|
|
//3 使用 union_id 查询数据库,是否已在仿真平台存在该用户
|
|
//3 使用 union_id 查询数据库,是否已在仿真平台存在该用户
|
|
String username;
|
|
String username;
|
|
@@ -140,11 +139,11 @@ public class SignController {
|
|
"&client_secret=" + oauthParameter.getSimulationClientSecret() +
|
|
"&client_secret=" + oauthParameter.getSimulationClientSecret() +
|
|
"&username=" + username +
|
|
"&username=" + username +
|
|
"&password=" + password;
|
|
"&password=" + password;
|
|
- SimulationTokenVO simulationToken = JsonUtil.jsonObjectToBean(HttpUtil.post(closeableHttpClient, requestConfig, simulationTokenUrl, null, null), SimulationTokenVO.class);
|
|
|
|
- System.out.println("------- 仿真平台令牌信息为:"+simulationToken);
|
|
|
|
-
|
|
|
|
|
|
+ String simulationToken = HttpUtil.post(closeableHttpClient, requestConfig, simulationTokenUrl, null, null).toString();
|
|
|
|
+ System.out.println("------- 仿真平台令牌信息为:" + simulationToken);
|
|
|
|
|
|
- return new ResponseBodyVO<>(ResponseBodyVO.Response.SUCCESS, "请求成功!", simulationToken);
|
|
|
|
|
|
+ response.addCookie(new Cookie("token", simulationToken));
|
|
|
|
+ return "redirect:" + oauthParameter.getSimulationHome();
|
|
}
|
|
}
|
|
|
|
|
|
}
|
|
}
|