parent
b2ac424563
commit
0de8911009
|
@ -2,7 +2,12 @@ package com.hzya.frame.webapp.entrance.controler;
|
||||||
|
|
||||||
import cn.hutool.extra.servlet.ServletUtil;
|
import cn.hutool.extra.servlet.ServletUtil;
|
||||||
import com.alibaba.fastjson.JSON;
|
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.bip.v3.v2207.service.IBipSsoService;
|
||||||
|
import com.hzya.frame.dingtalk.util.DingTalkAccessToken;
|
||||||
import com.hzya.frame.sysnew.application.service.ISysApplicationService;
|
import com.hzya.frame.sysnew.application.service.ISysApplicationService;
|
||||||
import com.hzya.frame.sys.entity.EsbReturnEntity;
|
import com.hzya.frame.sys.entity.EsbReturnEntity;
|
||||||
import com.hzya.frame.sys.file.download.entity.FileDownloadEntity;
|
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.entity.JsonResultEntity;
|
||||||
import com.hzya.frame.web.exception.BaseSystemException;
|
import com.hzya.frame.web.exception.BaseSystemException;
|
||||||
import com.hzya.frame.webapp.entrance.service.IEntranceService;
|
import com.hzya.frame.webapp.entrance.service.IEntranceService;
|
||||||
|
import com.taobao.api.ApiException;
|
||||||
import org.apache.commons.io.FileUtils;
|
import org.apache.commons.io.FileUtils;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
|
@ -23,11 +29,7 @@ import org.springframework.http.HttpHeaders;
|
||||||
import org.springframework.http.HttpStatus;
|
import org.springframework.http.HttpStatus;
|
||||||
import org.springframework.http.MediaType;
|
import org.springframework.http.MediaType;
|
||||||
import org.springframework.http.ResponseEntity;
|
import org.springframework.http.ResponseEntity;
|
||||||
import org.springframework.web.bind.annotation.RequestMapping;
|
import org.springframework.web.bind.annotation.*;
|
||||||
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.multipart.MultipartFile;
|
import org.springframework.web.multipart.MultipartFile;
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
|
@ -37,6 +39,8 @@ import javax.servlet.http.HttpServletRequest;
|
||||||
import javax.servlet.http.HttpServletResponse;
|
import javax.servlet.http.HttpServletResponse;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.nio.charset.StandardCharsets;
|
import java.nio.charset.StandardCharsets;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @Content程序唯一入口controller
|
* @Content程序唯一入口controller
|
||||||
|
@ -197,4 +201,36 @@ public class EntranceController {
|
||||||
// logger.info("servletResponse"+JSON.toJSONString(servletResponse));
|
// logger.info("servletResponse"+JSON.toJSONString(servletResponse));
|
||||||
return BaseResult.getSuccessMessageEntity("调用成功"+oldbodys);
|
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