Merge branch 'fiveStage' into fourthStage
This commit is contained in:
@@ -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"); //获取加密串
|
||||
|
||||
+31
@@ -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);
|
||||
}
|
||||
}
|
||||
+72
@@ -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;
|
||||
}
|
||||
}
|
||||
+51
@@ -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">
|
||||
|
||||
Reference in New Issue
Block a user