From 9715a018bb15b6ad3df53eb638ffbd55e688a52b Mon Sep 17 00:00:00 2001
From: yinzuomei <576302893@qq.com>
Date: Thu, 21 May 2020 19:13:01 +0800
Subject: [PATCH] =?UTF-8?q?=E8=BF=90=E8=90=A5=E7=AB=AFlogout=E6=8E=A5?=
=?UTF-8?q?=E5=8F=A3=E4=BF=AE=E6=94=B9?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
epmet-auth/pom.xml | 6 +++++
.../com/epmet/controller/LoginController.java | 1 -
.../epmet/service/impl/LoginServiceImpl.java | 22 ++++++++++++----
epmet-gateway/pom.xml | 5 ++--
.../epmet/feign/OperAccessFeignClient.java | 26 +++++++++++++++++++
.../OperAccessFeignClientFallback.java | 22 ++++++++++++++++
.../epmet/controller/OperMenuController.java | 12 +++++++++
.../com/epmet/service/OperMenuService.java | 2 ++
.../service/impl/OperMenuServiceImpl.java | 11 +++++++-
9 files changed, 98 insertions(+), 9 deletions(-)
create mode 100644 epmet-module/oper-access/oper-access-client/src/main/java/com/epmet/feign/OperAccessFeignClient.java
create mode 100644 epmet-module/oper-access/oper-access-client/src/main/java/com/epmet/feign/fallback/OperAccessFeignClientFallback.java
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