Merge branch 'fiveStage' into fourthStage

This commit is contained in:
lijiarao
2024-03-04 17:24:30 +08:00
6 changed files with 159 additions and 1 deletions
@@ -81,6 +81,7 @@ public class ShiroConfig {
filterChainDefinitionMap.put("/iam/loginByOauth2", "anon"); //单点登录接口排除
filterChainDefinitionMap.put("/sys/mLogin", "anon"); //登录接口排除
filterChainDefinitionMap.put("/oa/login", "anon"); //oa单点登录接口排除
filterChainDefinitionMap.put("/hiwork/login", "anon"); //hiwork单点登录接口排除
filterChainDefinitionMap.put("/sys/logout", "anon"); //登出接口排除
filterChainDefinitionMap.put("/sys/thirdLogin/**", "anon"); //第三方登录
filterChainDefinitionMap.put("/sys/getEncryptedString", "anon"); //获取加密串
@@ -0,0 +1,31 @@
package com.jero.modules.docking.hiwork.controller;
import com.alibaba.fastjson.JSONObject;
import com.jero.common.api.vo.Result;
import com.jero.modules.docking.hiwork.service.impl.HiworkService;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
/**
* @author liJiaRao
* @date 2024-03-01 14:01
*/
@RestController
@RequestMapping("/hiwork")
@Slf4j
public class HiworkLoginController {
@Resource
private HiworkService hiworkService;
@ApiOperation("hiwork单点登录")
@PostMapping("/login")
public Result<JSONObject> login(@RequestBody JSONObject jsonObject){
return hiworkService.login(jsonObject);
}
}
@@ -0,0 +1,72 @@
package com.jero.modules.docking.hiwork.entity;
import com.alibaba.fastjson.annotation.JSONField;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* @author liJiaRao
* @date 2024-03-01 14:26
*/
@NoArgsConstructor
@Data
public class HiworkUserInfo {
/**
* errcode
*/
@JSONField(name = "errcode")
private Integer errcode;
/**
* result
*/
@JSONField(name = "result")
private ResultDTO result;
/**
* errmsg
*/
@JSONField(name = "errmsg")
private String errmsg;
/**
* ResultDTO
*/
@NoArgsConstructor
@Data
public static class ResultDTO {
/**
* associatedUnionid
*/
@JSONField(name = "associated_unionid")
private String associatedUnionid;
/**
* unionid
*/
@JSONField(name = "unionid")
private String unionid;
/**
* deviceId
*/
@JSONField(name = "device_id")
private String deviceId;
/**
* sysLevel
*/
@JSONField(name = "sys_level")
private Integer sysLevel;
/**
* name
*/
@JSONField(name = "name")
private String name;
/**
* sys
*/
@JSONField(name = "sys")
private Boolean sys;
/**
* userid
*/
@JSONField(name = "userid")
private String userid;
}
}
@@ -0,0 +1,51 @@
package com.jero.modules.docking.hiwork.service.impl;
import cn.hutool.http.HttpRequest;
import com.alibaba.fastjson.JSONObject;
import com.jero.common.api.vo.Result;
import com.jero.modules.docking.hiwork.entity.HiworkUserInfo;
import com.jero.modules.system.service.ILoginService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
/**
* @author liJiaRao
* @date 2024-03-01 14:02
*/
@Slf4j
@Service
public class HiworkService {
@Resource
private ILoginService loginService;
@Value("${hiwork.appkey}")
private String appkey;
@Value("${hiwork.appsecret}")
private String appsecret;
public Result<JSONObject> login(JSONObject jsonObject) {
//根据appkey和appsecret获取accessToken
String url1 = "https://oapi.dingtalk.com/gettoken?appkey=" + appkey + "&appsecret=" + appsecret;
log.info("url:"+url1);
String body = HttpRequest.get(url1)
.execute().body();
JSONObject responseJson = JSONObject.parseObject(body);
log.info("responseJson:"+responseJson.toJSONString());
String accessToken = responseJson.getString("access_token");
//根据accessToken和前端传过来的jsonObject获得用户信息
String url2 = "https://oapi.dingtalk.com/topapi/v2/user/getuserinfo?access_token=" + accessToken;
log.info("url:"+url2);
String body1 = HttpRequest.post(url2)
//jsonObject中有code
.body(jsonObject.toJSONString())
.execute().body();
HiworkUserInfo hiworkUserInfo = JSONObject.parseObject(body1, HiworkUserInfo.class);
log.info("response:"+hiworkUserInfo.toString());
String userid = hiworkUserInfo.getResult().getUserid();
log.info("userid:"+userid);
return loginService.loginByUserName(userid);
}
}
@@ -411,6 +411,9 @@ hiwork:
url: https://iam-uat.sinotruk.com:7011/idp/oauth2/authorize?&state=123&client_id=SRMS&response_type=code&redirect_uri=
fontUrl: http://localhost:3334{url}?projectId={projectId}&taskName={taskName}&taskId={taskId}&processInstanceId={processInstanceId}&nodeId={nodeId}
fontAppUrl: http://localhost:3334/mobile{url}?projectId={projectId}&taskName={taskName}&taskId={taskId}&processInstanceId={processInstanceId}&nodeId={nodeId}
#hiwork单点登录
appkey: dingshfclphtivrd0r7k
appsecret: dqhom_17n6BC8pmLeaf5wNp4aV_4XSt_aYn-dNBo8z__-79NjVvZhDJ_M2REdxRc
# 汽车标准数字化平台ASMS
asms:
@@ -26,7 +26,7 @@
<!--日志文件输出的文件名 -->
<FileNamePattern>${LOG_HOME}/${PROJECT_NAME}/${LOG_HOME_SYSTEM}/${PROJECT_NAME}-%d{yyyy-MM-dd}.%i.log</FileNamePattern>
<!--日志文件保留天数 -->
<MaxHistory>30</MaxHistory>
<MaxHistory>200</MaxHistory>
<maxFileSize>10MB</maxFileSize>
</rollingPolicy>
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">