diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/RemoteMmpService.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/RemoteMmpService.java new file mode 100644 index 00000000..010b214e --- /dev/null +++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/RemoteMmpService.java @@ -0,0 +1,15 @@ +package com.ruoyi.system.api; + +import com.ruoyi.common.core.constant.ServiceNameConstants; +import com.ruoyi.common.core.web.domain.GenericsAjaxResult; +import com.ruoyi.system.api.factory.RemoteMmpFallbackFactory; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestParam; + +@FeignClient(contextId = "remoteMmpService", value = ServiceNameConstants.MANAGEMENT_SERVICE, fallbackFactory = RemoteMmpFallbackFactory.class) +public interface RemoteMmpService { + @GetMapping("/gitLink/login") + public GenericsAjaxResult gitLinkLogin(@RequestParam("ci4sUsername") String ci4sUsername, @RequestParam("username") String username, @RequestParam("password") String password); + +} diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteMmpFallbackFactory.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteMmpFallbackFactory.java new file mode 100644 index 00000000..439fad57 --- /dev/null +++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteMmpFallbackFactory.java @@ -0,0 +1,25 @@ +package com.ruoyi.system.api.factory; + +import com.ruoyi.common.core.web.domain.GenericsAjaxResult; +import com.ruoyi.system.api.RemoteMmpService; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.cloud.openfeign.FallbackFactory; +import org.springframework.stereotype.Component; + +@Component +public class RemoteMmpFallbackFactory implements FallbackFactory { + + private static final Logger log = LoggerFactory.getLogger(RemoteMmpFallbackFactory.class); + + @Override + public RemoteMmpService create(Throwable throwable) { + log.error("管理平台服务调用失败:{}", throwable.getMessage()); + return new RemoteMmpService() { + @Override + public GenericsAjaxResult gitLinkLogin(String ci4sUsername, String username, String password) { + return GenericsAjaxResult.error("刷新gitLink登录信息失败"); + } + }; + } +} diff --git a/ruoyi-api/ruoyi-api-system/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/ruoyi-api/ruoyi-api-system/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports index 0a60da5e..e7663eba 100644 --- a/ruoyi-api/ruoyi-api-system/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports +++ b/ruoyi-api/ruoyi-api-system/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports @@ -1,3 +1,4 @@ com.ruoyi.system.api.factory.RemoteUserFallbackFactory com.ruoyi.system.api.factory.RemoteLogFallbackFactory com.ruoyi.system.api.factory.RemoteFileFallbackFactory +com.ruoyi.system.api.factory.RemoteMmpFallbackFactory diff --git a/ruoyi-auth/src/main/java/com/ruoyi/auth/service/SysLoginService.java b/ruoyi-auth/src/main/java/com/ruoyi/auth/service/SysLoginService.java index 2e1a57e8..e4ba31f0 100644 --- a/ruoyi-auth/src/main/java/com/ruoyi/auth/service/SysLoginService.java +++ b/ruoyi-auth/src/main/java/com/ruoyi/auth/service/SysLoginService.java @@ -1,6 +1,7 @@ package com.ruoyi.auth.service; import com.ruoyi.auth.form.AccessTokenVo; +import com.ruoyi.system.api.RemoteMmpService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import com.ruoyi.common.core.constant.CacheConstants; @@ -39,6 +40,8 @@ public class SysLoginService @Autowired private RedisService redisService; + @Autowired + private RemoteMmpService remoteMmpService; /** * 登录 */ @@ -99,6 +102,7 @@ public class SysLoginService } passwordService.validate(user, password); recordLogService.recordLogininfor(username, Constants.LOGIN_SUCCESS, "登录成功"); + remoteMmpService.gitLinkLogin(username, user.getGitLinkUsername(),user.getGitLinkPassword()); return userInfo; } diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/constant/ServiceNameConstants.java b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/constant/ServiceNameConstants.java index 421a3226..32f01374 100644 --- a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/constant/ServiceNameConstants.java +++ b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/constant/ServiceNameConstants.java @@ -21,4 +21,6 @@ public class ServiceNameConstants * 文件服务的serviceid */ public static final String FILE_SERVICE = "ruoyi-file"; + + public static final String MANAGEMENT_SERVICE = "management-platform"; } diff --git a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/controller/git/GitLinkController.java b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/controller/git/GitLinkController.java new file mode 100644 index 00000000..b7e8da76 --- /dev/null +++ b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/controller/git/GitLinkController.java @@ -0,0 +1,28 @@ +package com.ruoyi.platform.controller.git; + +import com.ruoyi.common.core.web.controller.BaseController; +import com.ruoyi.common.core.web.domain.GenericsAjaxResult; +import com.ruoyi.platform.service.GitService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + +import javax.annotation.Resource; + +@RestController +@RequestMapping("gitLink") +@Api("gitLink") +public class GitLinkController extends BaseController { + + @Resource + private GitService gitService; + + @GetMapping("/login") + @ApiOperation("刷新giotLink用户信息") + public GenericsAjaxResult gitLinkLogin(@RequestParam("ci4sUsername") String ci4sUsername, @RequestParam("username") String username, @RequestParam("password") String password) { + return genericsSuccess(gitService.login(ci4sUsername, username, password)); + } +} diff --git a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/GitService.java b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/GitService.java index 85eea493..3b4210ce 100644 --- a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/GitService.java +++ b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/GitService.java @@ -8,7 +8,7 @@ import java.util.Map; public interface GitService { //登录方法,返回token - String login(String username, String password); + String login(String ci4sUsername, String username, String password); String checkoutToken(); diff --git a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/GitServiceImpl.java b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/GitServiceImpl.java index f7059773..ea6d5f6c 100644 --- a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/GitServiceImpl.java +++ b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/GitServiceImpl.java @@ -39,12 +39,12 @@ public class GitServiceImpl implements GitService { private static final Logger log = LoggerFactory.getLogger(GitServiceImpl.class); @Override - public String login(String username, String password) { + public String login(String ci4sUsername, String username, String password) { // 构建请求参数 Map params = new HashMap<>(); params.put("grant_type", "password"); params.put("username", username); - params.put("password", password); + params.put("password", decrypt(password)); params.put("client_id", "jEdGwrIJixCUIJM9vj2MwA6zmoTVhUdXxiSAaaCiXwA"); params.put("client_secret", "L3wBKTNnRo-wPen7bxR3F1myCvtVDgpWa6MnpfyWeJE"); try { @@ -65,8 +65,6 @@ public class GitServiceImpl implements GitService { if (StringUtils.isEmpty(userReq)) { throw new RuntimeException("gitlink用户信息出错"); } - LoginUser loginUser = SecurityUtils.getLoginUser(); - String ci4sUsername = loginUser.getUsername(); // 将access_token存入Redis Jedis jedis = new Jedis(redisHost, redisPort); jedis.set(ci4sUsername + "_gitToken", accessToken); @@ -83,16 +81,16 @@ public class GitServiceImpl implements GitService { String ci4sUsername = loginUser.getUsername(); String token = jedis.get(ci4sUsername + "_gitToken"); String gitLinkUsername = loginUser.getSysUser().getGitLinkUsername(); - String gitLinkPassword = decrypt(loginUser.getSysUser().getGitLinkPassword()); + String gitLinkPassword = loginUser.getSysUser().getGitLinkPassword(); if (StringUtils.isEmpty(token)) { - login(gitLinkUsername, gitLinkPassword); + login(ci4sUsername, gitLinkUsername, gitLinkPassword); token = jedis.get(ci4sUsername + "_gitToken"); } else { try { Map userInfo = getUserInfo(token); if (userInfo == null || (userInfo.get("status") != null && 401 == (Integer) userInfo.get("status"))) { - login(gitLinkUsername, gitLinkPassword); + login(ci4sUsername, gitLinkUsername, gitLinkPassword); token = jedis.get(ci4sUsername + "_gitToken"); } } catch (Exception e) { diff --git a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/ModelsServiceImpl.java b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/ModelsServiceImpl.java index 42871aa7..501c792a 100644 --- a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/ModelsServiceImpl.java +++ b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/ModelsServiceImpl.java @@ -561,7 +561,7 @@ public class ModelsServiceImpl implements ModelsService { LoginUser loginUser = SecurityUtils.getLoginUser(); String ci4sUsername = loginUser.getUsername(); String gitLinkUsername = loginUser.getSysUser().getGitLinkUsername(); - String gitLinkPassword = decrypt(loginUser.getSysUser().getGitLinkPassword()); + String gitLinkPassword = loginUser.getSysUser().getGitLinkPassword(); Map userInfo = getUserInfo(ci4sUsername, gitLinkUsername, gitLinkPassword); Integer userId = (Integer) userInfo.get("user_id"); @@ -687,7 +687,7 @@ public class ModelsServiceImpl implements ModelsService { LoginUser loginUser = SecurityUtils.getLoginUser(); String ci4sUsername = loginUser.getUsername(); String gitLinkUsername = loginUser.getSysUser().getGitLinkUsername(); - String gitLinkPassword = decrypt(loginUser.getSysUser().getGitLinkPassword()); + String gitLinkPassword = loginUser.getSysUser().getGitLinkPassword(); Map userInfo = getUserInfo(ci4sUsername, gitLinkUsername, gitLinkPassword); ci4sUsername = Boolean.TRUE.equals(modelsVo.getIsPublic()) ? Constant.Item_Public : loginUser.getUsername(); @@ -922,7 +922,7 @@ public class ModelsServiceImpl implements ModelsService { LoginUser loginUser = SecurityUtils.getLoginUser(); String ci4sUsername = loginUser.getUsername(); String gitLinkUsername = loginUser.getSysUser().getGitLinkUsername(); - String gitLinkPassword = decrypt(loginUser.getSysUser().getGitLinkPassword()); + String gitLinkPassword = loginUser.getSysUser().getGitLinkPassword(); Map userInfo = getUserInfo(ci4sUsername, gitLinkUsername, gitLinkPassword); String token = (String) userInfo.get("token"); @@ -952,7 +952,7 @@ public class ModelsServiceImpl implements ModelsService { LoginUser loginUser = SecurityUtils.getLoginUser(); String ci4sUsername = loginUser.getUsername(); String gitLinkUsername = loginUser.getSysUser().getGitLinkUsername(); - String gitLinkPassword = decrypt(loginUser.getSysUser().getGitLinkPassword()); + String gitLinkPassword = loginUser.getSysUser().getGitLinkPassword(); Map userInfo = getUserInfo(ci4sUsername, gitLinkUsername, gitLinkPassword); String token = (String) userInfo.get("token"); @@ -1326,7 +1326,7 @@ public class ModelsServiceImpl implements ModelsService { Jedis jedis = new Jedis(redisHost, redisPort); String userReq = jedis.get(ci4sUsername + "_gitUserInfo"); if (userReq == null) { - gitService.login(gitLinkUsername, gitLinkPassword); + gitService.login(ci4sUsername, gitLinkUsername, gitLinkPassword); userReq = jedis.get(ci4sUsername + "_gitUserInfo"); } Map userInfo = JsonUtils.jsonToMap(userReq);