feat: There is no way the, welink 授权登录
This commit is contained in:
@@ -6,6 +6,8 @@ import com.adc.da.http.Result;
|
||||
import com.adc.da.login.util.IDMUtil;
|
||||
import com.adc.da.login.util.IpUtil;
|
||||
import com.adc.da.login.util.JwtUtils;
|
||||
import com.adc.da.login.util.WeLinkUtil;
|
||||
import com.adc.da.login.vo.WeLinkVO;
|
||||
import com.adc.da.sys.entity.LoginInfoEO;
|
||||
import com.adc.da.sys.entity.UserEO;
|
||||
import com.adc.da.sys.service.ILoginInfoEOService;
|
||||
@@ -31,7 +33,6 @@ import java.io.UnsupportedEncodingException;
|
||||
import java.net.*;
|
||||
import java.nio.charset.StandardCharsets;
|
||||
import java.util.Enumeration;
|
||||
import java.util.List;
|
||||
|
||||
|
||||
@Validated
|
||||
@@ -46,6 +47,8 @@ public class LoginRestController {
|
||||
@Autowired
|
||||
private IDMUtil idmUtil;
|
||||
@Autowired
|
||||
private WeLinkUtil weLinkUtil;
|
||||
@Autowired
|
||||
private JwtUtils jwtUtils;
|
||||
@Autowired
|
||||
private ILoginInfoEOService loginInfoEOService;
|
||||
@@ -120,6 +123,39 @@ public class LoginRestController {
|
||||
|
||||
}
|
||||
|
||||
@ApiOperation(value = "通过welink免登录授权码查询iftapp免登录授权码")
|
||||
@PostMapping(value = "/getTokenToWeLink")
|
||||
@ResponseBody
|
||||
public ResponseMessage getIftappCodeByWelinkCode(HttpServletRequest request, WeLinkVO linkVO) throws UnsupportedEncodingException {
|
||||
String account = weLinkUtil.getIftappCodeByWelinkCode(linkVO);
|
||||
if(StringUtils.isBlank(account)){
|
||||
return Result.error("r0011", "用户不存在");
|
||||
}
|
||||
UserEO userEO = userService.getUserByLoginNameNotDeleted(account);
|
||||
if (null == userEO) {
|
||||
return Result.error("r0011", "用户不存在");
|
||||
}
|
||||
if(userEO.getDisableFlag()==1){
|
||||
return Result.error("r0011", "帐号已禁用");
|
||||
}
|
||||
String position = userService.selectPositionByUserId(account);
|
||||
if(StringUtils.isBlank(position)){
|
||||
return Result.error("r0011", "无配置岗位");
|
||||
}
|
||||
String token = jwtUtils.generateToken(userEO.getUsid());
|
||||
userEO.setToken(token);
|
||||
// 加密重要信息
|
||||
BASE64Encoder encoder = new BASE64Encoder();
|
||||
String userStr = JSON.toJSONString(userEO);
|
||||
String userStr2 = URLEncoder.encode(userStr,"UTF-8");
|
||||
userStr = encoder.encode(userStr2.getBytes());
|
||||
LoginInfoEO loginInfoEO=new LoginInfoEO();
|
||||
loginInfoEO.setUserId(userEO.getUsid());
|
||||
loginInfoEO.setLoginAddress(IpUtil.getIpAddr(request));
|
||||
loginInfoEOService.saveBean(loginInfoEO);
|
||||
return Result.success(userStr);
|
||||
}
|
||||
|
||||
@ApiOperation(value = "登录")
|
||||
// @GetMapping(value = "/login")
|
||||
@GetMapping(value = "/checkPageNoEncryption")
|
||||
|
||||
@@ -31,6 +31,7 @@ public class WebMvcConfig implements WebMvcConfigurer {
|
||||
addInterceptor.excludePathPatterns("/api/loginIdm");
|
||||
addInterceptor.excludePathPatterns("/api/checkPage");
|
||||
addInterceptor.excludePathPatterns("/api/checkPageNoEncryption");
|
||||
addInterceptor.excludePathPatterns("/api/getTokenToWeLink");
|
||||
|
||||
/**
|
||||
* AWG 接口
|
||||
|
||||
@@ -0,0 +1,66 @@
|
||||
package com.adc.da.login.util;
|
||||
|
||||
import com.adc.da.login.vo.WeLinkVO;
|
||||
import com.adc.da.ocr.util.OkHttpUtil;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import net.sf.json.JSONObject;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
@Component
|
||||
@Slf4j
|
||||
public class WeLinkUtil {
|
||||
|
||||
@Autowired
|
||||
private OkHttpUtil okHttpUtil;
|
||||
|
||||
private final String access_url = "https://iftappwelink.foton.com.cn/devserver/welink/";
|
||||
|
||||
public String getIftappCodeByWelinkCode(WeLinkVO linkVO){
|
||||
try{
|
||||
String access_token = "";
|
||||
Map<String,String> param = new HashMap<>();
|
||||
param.put("code",linkVO.getCode());
|
||||
param.put("name",linkVO.getName().replace("%20"," "));
|
||||
if(StringUtils.isNotBlank(linkVO.getType())){
|
||||
param.put("type",linkVO.getType());
|
||||
}
|
||||
if(StringUtils.isNotBlank(linkVO.getCorpCode())){
|
||||
param.put("corpCode",linkVO.getCorpCode());
|
||||
}
|
||||
String access_token_str = okHttpUtil.post(access_url+"getIftappCodeByWelinkCode",param,new HashMap<>());
|
||||
JSONObject atJsonObj = JSONObject.fromObject(access_token_str);
|
||||
System.out.println("AccessTokenJSON:" + atJsonObj);
|
||||
if (atJsonObj.has("data")) {
|
||||
System.out.println("data:" + atJsonObj.get("data"));
|
||||
JSONObject obj = JSONObject.fromObject(atJsonObj.getOrDefault("data",""));
|
||||
|
||||
if(obj.has("access_token")){
|
||||
access_token = obj.getOrDefault("access_token","").toString();
|
||||
}
|
||||
}
|
||||
if(StringUtils.isBlank(access_token)){
|
||||
return "";
|
||||
}
|
||||
Map<String,String> param_p = new HashMap<>();
|
||||
param_p.put("code",access_token);
|
||||
String principal_json = okHttpUtil.get(access_url+"getUserInfoByAuthCode",param_p,new HashMap<>());
|
||||
JSONObject pfjsonObj = JSONObject.fromObject(principal_json);
|
||||
if (pfjsonObj.has("data")) {
|
||||
System.out.println("data:" + pfjsonObj.get("data"));
|
||||
JSONObject obj = JSONObject.fromObject(pfjsonObj.getOrDefault("data",""));
|
||||
|
||||
if(obj.has("username")){
|
||||
return obj.getOrDefault("username","").toString();
|
||||
}
|
||||
}
|
||||
}catch(Exception e){
|
||||
log.error("通过iftapp授权码查询用户信息失败");
|
||||
}
|
||||
return "";
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
package com.adc.da.login.vo;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class WeLinkVO {
|
||||
|
||||
private String code;
|
||||
private String name;
|
||||
private String type;
|
||||
private String corpCode;
|
||||
}
|
||||
Reference in New Issue
Block a user