diff --git a/epmet-auth/pom.xml b/epmet-auth/pom.xml index d8bc464fbe..49ae39be2d 100644 --- a/epmet-auth/pom.xml +++ b/epmet-auth/pom.xml @@ -98,6 +98,12 @@ 2.0.0 compile + + com.epmet + oper-access-client + 2.0.0 + compile + diff --git a/epmet-auth/src/main/java/com/epmet/controller/LoginController.java b/epmet-auth/src/main/java/com/epmet/controller/LoginController.java index 12f697188a..54b415344b 100644 --- a/epmet-auth/src/main/java/com/epmet/controller/LoginController.java +++ b/epmet-auth/src/main/java/com/epmet/controller/LoginController.java @@ -94,7 +94,6 @@ public class LoginController { **/ @PostMapping(value = "logout") public Result logout(@LoginUser TokenDto tokenDto, HttpServletRequest request) { - //String token = request.getParameter(Constant.TOKEN_HEADER); return loginService.logoutByToken(tokenDto); } } diff --git a/epmet-auth/src/main/java/com/epmet/service/impl/LoginServiceImpl.java b/epmet-auth/src/main/java/com/epmet/service/impl/LoginServiceImpl.java index ed7176c8d4..728ca2d1ef 100644 --- a/epmet-auth/src/main/java/com/epmet/service/impl/LoginServiceImpl.java +++ b/epmet-auth/src/main/java/com/epmet/service/impl/LoginServiceImpl.java @@ -17,6 +17,7 @@ import com.epmet.dto.form.*; import com.epmet.dto.result.PasswordLoginUserInfoResultDTO; import com.epmet.dto.result.UserTokenResultDTO; import com.epmet.feign.EpmetUserFeignClient; +import com.epmet.feign.OperAccessFeignClient; import com.epmet.jwt.JwtTokenProperties; import com.epmet.jwt.JwtTokenUtils; import com.epmet.service.CaptchaService; @@ -61,6 +62,9 @@ public class LoginServiceImpl implements LoginService { @Autowired private CaptchaService captchaService; + @Autowired + private OperAccessFeignClient operAccessFeignClient; + /** * 居民端微信小程序登录 * @@ -249,7 +253,9 @@ public class LoginServiceImpl implements LoginService { //1、验证码是否正确 boolean flag = captchaService.validate(formDTO.getUuid(), formDTO.getCaptcha()); if (!flag) { - return new Result().error(EpmetErrorCode.ERR10019.getCode()); + logger.error(String.format("用户%s登录,验证码输入错误,暂时放行",formDTO.getPhone())); + //2020-05-21去除验证码校验 TODO + //return new Result().error(EpmetErrorCode.ERR10019.getCode()); } //2、账号是否存在 //获取用户信息 @@ -308,12 +314,18 @@ public class LoginServiceImpl implements LoginService { public Result logoutByToken(TokenDto tokenDto) { //记录登出日志 //删除redis - if(null == tokenDto){ - logger.error("账号不存在"); - throw new RenException("当前用户信息获取失败"); + if (null == tokenDto) { + logger.error("运营端用户退出系统错误:账号不存在,接口继续执行返回成功"); + return new Result(); } - cpUserDetailRedis.logout(tokenDto.getApp() , tokenDto.getClient() , tokenDto.getUserId()); + cpUserDetailRedis.logout(tokenDto.getApp(), tokenDto.getClient(), tokenDto.getUserId()); //web端清空菜单栏和权限 + Result operAccessResult = operAccessFeignClient.clearOperUserAccess(); + if (operAccessResult.success()) { + logger.info(String.format("运营人员%s退出成功,清空菜单和权限redis成功", tokenDto.getUserId())); + } else { + logger.error(String.format("运营人员%s退出成功,清空菜单和权限redis异常", tokenDto.getUserId())); + } return new Result(); } diff --git a/epmet-gateway/pom.xml b/epmet-gateway/pom.xml index 769a43145e..634052a451 100644 --- a/epmet-gateway/pom.xml +++ b/epmet-gateway/pom.xml @@ -108,8 +108,8 @@ - - lb://epmet-auth-server + http://localhost:8081 + lb://epmet-admin-server @@ -135,6 +135,7 @@ lb://gov-org-server + lb://oper-access-server diff --git a/epmet-module/oper-access/oper-access-client/src/main/java/com/epmet/feign/OperAccessFeignClient.java b/epmet-module/oper-access/oper-access-client/src/main/java/com/epmet/feign/OperAccessFeignClient.java new file mode 100644 index 0000000000..202b2c152d --- /dev/null +++ b/epmet-module/oper-access/oper-access-client/src/main/java/com/epmet/feign/OperAccessFeignClient.java @@ -0,0 +1,26 @@ +package com.epmet.feign; + +import com.epmet.commons.tools.constant.ServiceConstant; +import com.epmet.commons.tools.utils.Result; +import com.epmet.feign.fallback.OperAccessFeignClientFallback; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.GetMapping; + +/** + * @Description 运营端权限模块 + * @Author yinzuomei + * @Date 2020/5/21 15:17 + */ +//, url = "http://localhost:8093" +@FeignClient(name = ServiceConstant.OPER_ACCESS_SERVER, fallback = OperAccessFeignClientFallback.class) +public interface OperAccessFeignClient { + /** + * @param + * @return com.epmet.commons.tools.utils.Result + * @Author yinzuomei + * @Description 清空运营人员权限信息、菜单信息 + * @Date 2020/5/21 17:08 + **/ + @GetMapping("/oper/access/menu/clearoperuseraccess") + Result clearOperUserAccess(); +} diff --git a/epmet-module/oper-access/oper-access-client/src/main/java/com/epmet/feign/fallback/OperAccessFeignClientFallback.java b/epmet-module/oper-access/oper-access-client/src/main/java/com/epmet/feign/fallback/OperAccessFeignClientFallback.java new file mode 100644 index 0000000000..1cd7d7915d --- /dev/null +++ b/epmet-module/oper-access/oper-access-client/src/main/java/com/epmet/feign/fallback/OperAccessFeignClientFallback.java @@ -0,0 +1,22 @@ +package com.epmet.feign.fallback; + +import com.epmet.commons.tools.constant.ServiceConstant; +import com.epmet.commons.tools.utils.ModuleUtils; +import com.epmet.commons.tools.utils.Result; +import com.epmet.feign.OperAccessFeignClient; +import org.springframework.stereotype.Component; + +/** + * @Description 运营端权限模块 + * @Author yinzuomei + * @Date 2020/5/21 15:47 + */ +@Component +public class OperAccessFeignClientFallback implements OperAccessFeignClient { + @Override + public Result clearOperUserAccess() { + return ModuleUtils.feignConError(ServiceConstant.OPER_ACCESS_SERVER, "clearOperUserAccess"); + + } +} + diff --git a/epmet-module/oper-access/oper-access-server/src/main/java/com/epmet/controller/OperMenuController.java b/epmet-module/oper-access/oper-access-server/src/main/java/com/epmet/controller/OperMenuController.java index 80f82dff81..63fc7d61df 100644 --- a/epmet-module/oper-access/oper-access-server/src/main/java/com/epmet/controller/OperMenuController.java +++ b/epmet-module/oper-access/oper-access-server/src/main/java/com/epmet/controller/OperMenuController.java @@ -149,4 +149,16 @@ public class OperMenuController { return new Result>().ok(list); } + /** + * @param tokenDto + * @return com.epmet.commons.tools.utils.Result + * @Author yinzuomei + * @Description 运营端用户退出系统,清空菜单和操作权限 + * @Date 2020/5/21 18:07 + **/ + @GetMapping("clearoperuseraccess") + public Result clearOperUserAccess(@LoginUser TokenDto tokenDto) { + operMenuService.clearOperUserAccess(tokenDto.getApp(), tokenDto.getClient(), tokenDto.getUserId()); + return new Result(); + } } diff --git a/epmet-module/oper-access/oper-access-server/src/main/java/com/epmet/service/OperMenuService.java b/epmet-module/oper-access/oper-access-server/src/main/java/com/epmet/service/OperMenuService.java index 9025ce4dd5..fd62682467 100644 --- a/epmet-module/oper-access/oper-access-server/src/main/java/com/epmet/service/OperMenuService.java +++ b/epmet-module/oper-access/oper-access-server/src/main/java/com/epmet/service/OperMenuService.java @@ -141,4 +141,6 @@ public interface OperMenuService extends BaseService { * @param pid 父菜单ID */ List getListPid(String pid); + + void clearOperUserAccess(String app, String client, String userId); } \ No newline at end of file diff --git a/epmet-module/oper-access/oper-access-server/src/main/java/com/epmet/service/impl/OperMenuServiceImpl.java b/epmet-module/oper-access/oper-access-server/src/main/java/com/epmet/service/impl/OperMenuServiceImpl.java index da2786ecaf..8c7354a086 100644 --- a/epmet-module/oper-access/oper-access-server/src/main/java/com/epmet/service/impl/OperMenuServiceImpl.java +++ b/epmet-module/oper-access/oper-access-server/src/main/java/com/epmet/service/impl/OperMenuServiceImpl.java @@ -45,6 +45,8 @@ import com.epmet.service.OperMenuService; import com.epmet.service.OperResourceService; import com.epmet.service.OperRoleMenuService; import org.apache.commons.lang3.StringUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -59,7 +61,7 @@ import java.util.*; */ @Service public class OperMenuServiceImpl extends BaseServiceImpl implements OperMenuService { - + protected Logger logger = LoggerFactory.getLogger(getClass()); @Autowired private OperMenuRedis operMenuRedis; @Autowired @@ -236,6 +238,13 @@ public class OperMenuServiceImpl extends BaseServiceImpl