doc/运维文档.md | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
ruoyi-admin/pom.xml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
ruoyi-admin/src/main/java/org/dromara/web/controller/AuthController.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
ruoyi-admin/src/main/java/org/dromara/web/utils/RZTHttpUtils.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
ruoyi-admin/src/main/resources/application-dev.yml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
ruoyi-admin/src/main/resources/application-prod.yml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
doc/ÔËάÎĵµ.md
@@ -33,12 +33,18 @@ å¯ç ï¼QyqkwwjtbxtWersdf01 ``` è¿æ¥ä¸VPNåï¼è¾å ¥ https://192.168.50.17 å ¡åæºè´¦å·å¯ç ï¼å³è¿ç»´å®¢æ·ç«¯ç»å½è´¦å·å¯ç ï¼ï¼ ``` è´¦å·ï¼qyqkwwjtbxt01 å¯ç ï¼QyqkwwjtbxtWersdf@02 å¯ç ï¼QyqkwwjtbxtWersdf@06 ``` ## ææ @@ -170,6 +176,16 @@ ## å端æå¡ # æå ç产ç¯å¢ mvn clean package -Pprod # å¯å¨æå¡ systemctl stop java-server systemctl start java-server ```bash nohup java -jar & ``` ruoyi-admin/pom.xml
@@ -126,6 +126,14 @@ </execution> </executions> </plugin> <!-- è·³è¿Testæµè¯æå --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <configuration> <skip>true</skip> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> ruoyi-admin/src/main/java/org/dromara/web/controller/AuthController.java
@@ -3,7 +3,9 @@ import cn.dev33.satoken.annotation.SaIgnore; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.aliyun.dingtalkcontact_1_0.models.GetUserHeaders; import com.aliyun.dingtalkcontact_1_0.models.GetUserResponseBody; import com.aliyun.dingtalkoauth2_1_0.models.GetUserTokenRequest; @@ -14,9 +16,7 @@ import com.dingtalk.api.DingTalkClient; import com.dingtalk.api.request.*; import com.dingtalk.api.response.OapiUserGetbyunionidResponse; import com.dingtalk.api.response.OapiUserGetuserinfoResponse; import com.dingtalk.api.response.OapiV2UserGetResponse; import com.dingtalk.api.response.OapiV2UserGetuserinfoResponse; import com.taobao.api.ApiException; import jakarta.servlet.http.HttpServletRequest; import lombok.RequiredArgsConstructor; @@ -33,6 +33,7 @@ import org.dromara.common.core.utils.MessageUtils; import org.dromara.common.core.utils.StreamUtils; import org.dromara.common.core.utils.StringUtils; import org.dromara.common.redis.utils.RedisUtils; import org.dromara.common.social.config.properties.SocialLoginConfigProperties; import org.dromara.common.social.config.properties.SocialProperties; import org.dromara.common.social.utils.SocialUtils; @@ -50,12 +51,16 @@ import org.dromara.web.service.IAuthStrategy; import org.dromara.web.service.SysLoginService; import org.dromara.web.service.SysRegisterService; import org.dromara.web.utils.RZTHttpUtils; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import com.aliyun.teaopenapi.models.Config; import java.net.URL; import java.time.Duration; import java.util.HashMap; import java.util.List; import java.util.Map; /** * è®¤è¯ @@ -79,6 +84,7 @@ private final ISysClientService clientService; private final ISysUserService userService; private final SysUserMapper userMapper; private final RZTHttpUtils rzthttpUtils; /** @@ -315,4 +321,55 @@ return rsp.getResult(); } final String redisKey = "RZT_TOKEN"; @RequestMapping(value = "/rztLogin", method = RequestMethod.GET) public String getRztAccessToken(@RequestParam(value = "code") String code) { try { log.info("codeå¼ï¼{}", code); String accessToken = getRztToken(); if (StrUtil.isNotBlank(accessToken)) { Map<String, String> hashMap = new HashMap<>(); hashMap.put("code", code); hashMap.put("token", accessToken); String userJson = rzthttpUtils.sendGetRequest("/login/info", hashMap); log.info("ç¨æ·ä¿¡æ¯ï¼{}", userJson); JSONObject userObject = JSON.parseObject(userJson); if (userObject.getIntValue("errcode") == 0) { return userObject.getString("userid"); } else { log.error("è·åç¨æ·ä¿¡æ¯å¤±è´¥ï¼{}", userObject.getString("errmsg")); } } } catch (Exception e) { log.error("è·åç¨æ·ä¿¡æ¯å¼å¸¸ï¼{}", e.getMessage()); } return ""; } private String getRztToken() throws Exception { String token = RedisUtils.getCacheObject(redisKey); if (StrUtil.isEmpty(token)) { String corpId = "ww9904fd98c1b0df9e"; String corpSecret = "mZdTP-ULDWHEPgFCpl62OwudbP3bODgqN9lC-rUtNSA"; String accessJson = rzthttpUtils.sendGetRequest("/gettoken?corpId=" + corpId + "&corpsecret=" + corpSecret, null); JSONObject jsonObject = JSON.parseObject(accessJson); if (jsonObject.getIntValue("errcode") == 0) { String accessToken = jsonObject.getString("access_token"); Integer expiresIn = jsonObject.getIntValue("expires_in"); RedisUtils.setCacheObject(redisKey, accessToken, Duration.ofSeconds(expiresIn)); return accessToken; } else { log.error("è·åtoken失败ï¼{},{}", jsonObject.getIntValue("errcode"), jsonObject.getString("errmsg")); return null; } } else { return token; } } } ruoyi-admin/src/main/java/org/dromara/web/utils/RZTHttpUtils.java
New file @@ -0,0 +1,57 @@ package org.dromara.web.utils; import cn.hutool.core.util.StrUtil; import cn.hutool.http.HttpRequest; import lombok.extern.slf4j.Slf4j; import me.zhyd.oauth.utils.RandomUtil; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Component; import java.security.MessageDigest; import java.util.Map; @Component @Slf4j public class RZTHttpUtils { @Value("${rzt.url}") private String url; @Value("${rzt.paasid}") private String paasid; @Value("${rzt.paastoken}") private String paastoken; public String sendGetRequest(String urlPath, Map<String, String> params) throws Exception { //è·åæ¶é´æ³ï¼ String timestamp = String.valueOf(System.currentTimeMillis() / 1000); String nonce = RandomUtil.randomString(20); //è·åç¾åï¼ MessageDigest digest = MessageDigest.getInstance("SHA-256"); byte[] hash = digest.digest((timestamp + paastoken + nonce + timestamp).getBytes()); StringBuffer hexString = new StringBuffer(); for (int i = 0; i < hash.length; i++) { String hex = Integer.toHexString(0xff & hash[i]); if (hex.length() == 1) { hexString.append('0'); } hexString.append(hex); } String signature = hexString.toString().toUpperCase(); HttpRequest request = HttpRequest.get(url + urlPath) .header("x-rio-paasid", paasid) .header("x-rio-timestamp", timestamp) .header("x-rio-nonce", nonce) .header("x-rio-signature", signature); if (params != null) { request.formStr(params); } log.info(request.toString()); return request.execute().body(); } } ruoyi-admin/src/main/resources/application-dev.yml
@@ -43,9 +43,9 @@ driverClassName: com.mysql.cj.jdbc.Driver # jdbc ææåæ°é ç½®åè https://lionli.blog.csdn.net/article/details/122018562 # rewriteBatchedStatements=true æ¹å¤çä¼å å¤§å¹ æåæ¹éæå ¥æ´æ°å 餿§è½(å¯¹æ°æ®åºææ§è½æè ä½¿ç¨æ¹éæä½åºèèæ§è½é®é¢) url: jdbc:mysql://127.0.0.1:3306/qysp?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&autoReconnect=true&rewriteBatchedStatements=true&allowPublicKeyRetrieval=true url: jdbc:mysql://42.193.1.25:3306/qysp?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&autoReconnect=true&rewriteBatchedStatements=true&allowPublicKeyRetrieval=true username: root password: 123456 password: 321$YcYl@1970! # ä»åºæ°æ®æº slave: lazy: true @@ -95,11 +95,10 @@ --- # redis åæºé ç½®(åæºä¸é群åªè½å¼å¯ä¸ä¸ªå¦ä¸ä¸ªéè¦æ³¨éæ) spring.data: redis: # å°å host: 127.0.0.1 # 端å£ï¼é»è®¤ä¸º6379 host: 42.193.1.25 port: 6379 # password: 234#Wersdf! password: ycl2018 # password: 234#Wersdf! # æ°æ®åºç´¢å¼ database: 0 # å¯ç (妿²¡æå¯ç 请注éæ) @@ -250,3 +249,8 @@ client-id: 10**********6 client-secret: 1f7d08**********5b7**********29e redirect-uri: ${justauth.address}/social-callback?source=gitlab rzt: url: https://rio.rztcd.com:10443/ebus/dzptcs paasid: dzptcs paastoken: 69b986d3c2450454c22d99a9653c97d2 ruoyi-admin/src/main/resources/application-prod.yml
@@ -272,3 +272,8 @@ username: admin #æ¬æºï¼ftpup passwd: 234#Wersdf! path: / rzt: url: https://rio.rztcd.com:10443/ebus/dzpt paasid: dzpt paastoken: 69b986d3c2450454c22d99a9653c97d2