Browse Source

ukey失效踢掉所有用户

yin 6 months ago
parent
commit
d72a3027ad

+ 6 - 0
stmms-biz/src/main/java/cn/com/qmth/stmms/biz/config/ukey/UKeyJob.java

@@ -1,6 +1,7 @@
 package cn.com.qmth.stmms.biz.config.ukey;
 
 import cn.com.qmth.stmms.biz.config.service.impl.SystemCache;
+import cn.com.qmth.stmms.biz.user.service.UserService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.scheduling.annotation.Scheduled;
@@ -15,6 +16,9 @@ public class UKeyJob {
 	@Value("${qmth.ukey.license.id}")
 	private Long ukeyLicenseId;
 
+	@Autowired
+	private UserService userService;
+
 	@Scheduled(fixedDelay = 1 * 60 * 1000, initialDelay = 5 * 1000)
 	public void run() {
 		try {
@@ -23,6 +27,7 @@ public class UKeyJob {
 			UKeyHelper.UKEY_MESSAGE = UKeyHelper.UKEY_STATUS ? "U盾许可认证成功" : "U盾许可认证失败";
 			if(!UKeyHelper.UKEY_STATUS){
 				systemCache.reset();
+				userService.logoutAll();
 			}else{
 				systemCache.init();
 			}
@@ -30,6 +35,7 @@ public class UKeyJob {
 			UKeyHelper.UKEY_STATUS = false;
 			UKeyHelper.UKEY_MESSAGE = "U盾许可认证异常";
 			systemCache.reset();
+			userService.logoutAll();
 		} finally {
 			UKeyHelper.slmCleanupEasy();
 		}

+ 4 - 0
stmms-biz/src/main/java/cn/com/qmth/stmms/biz/user/dao/UserDao.java

@@ -5,6 +5,7 @@ import java.util.List;
 import cn.com.qmth.stmms.biz.user.model.User;
 
 import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
+import org.springframework.data.jpa.repository.Modifying;
 import org.springframework.data.jpa.repository.Query;
 import org.springframework.data.repository.PagingAndSortingRepository;
 
@@ -21,4 +22,7 @@ public interface UserDao extends PagingAndSortingRepository<User, Integer>, JpaS
     List<User> findStartWithLoginName(String loginName);
     @Query(value = "select u from User u where u.id in ?1")
     List<User> findByIdIn(List<Integer> ids);
+    @Modifying
+    @Query("update User u set u.accessToken=null")
+    void logoutAll();
 }

+ 2 - 0
stmms-biz/src/main/java/cn/com/qmth/stmms/biz/user/service/UserService.java

@@ -39,4 +39,6 @@ public interface UserService {
     public int findMaxNumberByLoginNameStart(String prefix);
 
     List<User> findByIdIn(List<Integer> userIds);
+
+    void logoutAll();
 }

+ 5 - 0
stmms-biz/src/main/java/cn/com/qmth/stmms/biz/user/service/impl/UserServiceImpl.java

@@ -442,5 +442,10 @@ public class UserServiceImpl implements UserService {
     public List<User> findByIdIn(List<Integer> ids) {
         return this.userDao.findByIdIn(ids);
     }
+    @Transactional
+    @Override
+    public void logoutAll() {
+        userDao.logoutAll();
+    }
 
 }