parent
b2ac424563
commit
0de8911009
|
@ -2,7 +2,12 @@ package com.hzya.frame.webapp.entrance.controler;
|
|||
|
||||
import cn.hutool.extra.servlet.ServletUtil;
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.dingtalk.api.DefaultDingTalkClient;
|
||||
import com.dingtalk.api.DingTalkClient;
|
||||
import com.dingtalk.api.request.OapiUserGetuserinfoRequest;
|
||||
import com.dingtalk.api.response.OapiUserGetuserinfoResponse;
|
||||
import com.hzya.frame.bip.v3.v2207.service.IBipSsoService;
|
||||
import com.hzya.frame.dingtalk.util.DingTalkAccessToken;
|
||||
import com.hzya.frame.sysnew.application.service.ISysApplicationService;
|
||||
import com.hzya.frame.sys.entity.EsbReturnEntity;
|
||||
import com.hzya.frame.sys.file.download.entity.FileDownloadEntity;
|
||||
|
@ -13,6 +18,7 @@ import com.hzya.frame.web.entity.BaseResult;
|
|||
import com.hzya.frame.web.entity.JsonResultEntity;
|
||||
import com.hzya.frame.web.exception.BaseSystemException;
|
||||
import com.hzya.frame.webapp.entrance.service.IEntranceService;
|
||||
import com.taobao.api.ApiException;
|
||||
import org.apache.commons.io.FileUtils;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
@ -23,11 +29,7 @@ import org.springframework.http.HttpHeaders;
|
|||
import org.springframework.http.HttpStatus;
|
||||
import org.springframework.http.MediaType;
|
||||
import org.springframework.http.ResponseEntity;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMethod;
|
||||
import org.springframework.web.bind.annotation.ResponseBody;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
import org.springframework.web.bind.annotation.RestControllerAdvice;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import org.springframework.web.multipart.MultipartFile;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
|
@ -37,6 +39,8 @@ import javax.servlet.http.HttpServletRequest;
|
|||
import javax.servlet.http.HttpServletResponse;
|
||||
import java.io.IOException;
|
||||
import java.nio.charset.StandardCharsets;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* @Content程序唯一入口controller
|
||||
|
@ -197,4 +201,36 @@ public class EntranceController {
|
|||
// logger.info("servletResponse"+JSON.toJSONString(servletResponse));
|
||||
return BaseResult.getSuccessMessageEntity("调用成功"+oldbodys);
|
||||
}
|
||||
|
||||
/**
|
||||
* 免登
|
||||
* 钉钉通过免登码获取userid
|
||||
* @param requestAuthCode
|
||||
* @return
|
||||
* ServiceResult
|
||||
* 2020-11-3
|
||||
*/
|
||||
@RequestMapping(value = "/ddLogin", method = RequestMethod.GET)
|
||||
public JsonResultEntity ddLogin (@RequestParam("code") String requestAuthCode) {
|
||||
logger.info("dingTalk免登码:{}",requestAuthCode);
|
||||
// 获取用户信息
|
||||
DingTalkClient client = new DefaultDingTalkClient("https://oapi.dingtalk.com/user/getuserinfo");
|
||||
OapiUserGetuserinfoRequest request = new OapiUserGetuserinfoRequest();
|
||||
request.setCode(requestAuthCode);
|
||||
request.setHttpMethod("GET");
|
||||
OapiUserGetuserinfoResponse response;
|
||||
try {
|
||||
response = client.execute(request, DingTalkAccessToken.getAccessToken());
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
logger.error("dd免登失败:{}",e);
|
||||
return BaseResult.getFailureMessageEntity("失败");
|
||||
}
|
||||
// 查询得到当前用户的userId
|
||||
// 获得到userId之后应用应该处理应用自身的登录会话管理(session),避免后续的业务交互(前端到应用服务端)每次都要重新获取用户身份,提升用户体验
|
||||
String userId = response.getUserid();
|
||||
Map<String, Object> returnMap = new HashMap<String,Object>();
|
||||
returnMap.put("userId", userId);
|
||||
return BaseResult.getSuccessMessageEntity("成功",returnMap);
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue