From 254dc4d9b8d903246483297ed0799290f856f0de Mon Sep 17 00:00:00 2001
From: zhanzhiqin <895896009@qq.com>
Date: 星期四, 28 七月 2022 17:28:43 +0800
Subject: [PATCH] 便捷登录
---
ximon-admin/src/main/java/com/sandu/ximon/admin/service/ClientService.java | 42 ++++++++++++++++++++++++++++++++++++++++++
1 files changed, 42 insertions(+), 0 deletions(-)
diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/service/ClientService.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/service/ClientService.java
index 3e9aecd..84f1cd8 100644
--- a/ximon-admin/src/main/java/com/sandu/ximon/admin/service/ClientService.java
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/service/ClientService.java
@@ -5,7 +5,11 @@
import com.sandu.common.enums.RoleLevelStatus;
import com.sandu.common.execption.BusinessException;
import com.sandu.common.object.BaseConditionVO;
+import com.sandu.common.redis.RedisService;
+import com.sandu.common.security.LoginUserInfo;
+import com.sandu.common.security.token.TokenProvider;
import com.sandu.common.service.impl.BaseServiceImpl;
+import com.sandu.common.util.IpUtil;
import com.sandu.common.util.SpringContextHolder;
import com.sandu.ximon.admin.param.AddClientPrarm;
import com.sandu.ximon.admin.param.PwdParam;
@@ -13,17 +17,21 @@
import com.sandu.ximon.admin.param.UserPwsParm;
import com.sandu.ximon.admin.security.SecurityUtils;
import com.sandu.ximon.admin.utils.StoreOperationRecordsUtils;
+import com.sandu.ximon.admin.utils.StringUtil;
import com.sandu.ximon.dao.bo.MenuNode;
import com.sandu.ximon.dao.domain.*;
import com.sandu.ximon.dao.enums.AdministratorEnums;
import com.sandu.ximon.dao.mapper.ClientMapper;
import lombok.AllArgsConstructor;
+import org.springframework.security.core.GrantedAuthority;
import org.springframework.security.crypto.password.PasswordEncoder;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList;
+import java.util.Collection;
import java.util.List;
+import java.util.stream.Collectors;
@Service
@AllArgsConstructor
@@ -33,6 +41,7 @@
private final PasswordEncoder passwordEncoder;
private final ClientRoleRelationService clientRoleRelationService;
private final RoleService roleService;
+ private final TokenProvider tokenProvider;
public boolean addClient(AddClientPrarm addClientPrarm) {
@@ -378,4 +387,37 @@
List<MenuNode> resultList = SpringContextHolder.getBean(MenuService.class).getUserPermissionListById(menuIds);
return resultList;
}
+
+ /**
+ * 鐢熸垚渚挎嵎鐧诲綍KEY
+ */
+ public String creatKeyByLogin(String keyValue) {
+ if (keyValue == null) {
+ throw new BusinessException("key涓嶈兘涓虹┖锛�");
+ }
+
+ Object object = SpringContextHolder.getBean(RedisService.class).get(keyValue);
+
+ if (object != null) {
+ return object.toString();
+ } else {
+ Client client = getOne(Wrappers.lambdaQuery(Client.class).eq(Client::getUserKey, keyValue));
+ if (client == null) {
+ throw new BusinessException("鐢ㄦ埛涓嶅瓨鍦紝鑾峰彇淇℃伅寮傚父锛�");
+ }
+
+ Collection<GrantedAuthority> grantedAuthorities = roleService.mapToGrantedAuthorities(client.getId(), false);
+
+ LoginUserInfo loginUserInfo = new LoginUserInfo();
+ loginUserInfo.setUserId(client.getId());
+ loginUserInfo.setAccount(client.getClientName());
+ loginUserInfo.setIp(IpUtil.getRealIp());
+ loginUserInfo.setAdministratorType(AdministratorEnums.NORMAL.getCode());
+ loginUserInfo.setPermission(grantedAuthorities.stream().map(GrantedAuthority::getAuthority).collect(Collectors.joining(",")));
+
+ // 鐢熸垚浠ょ墝
+ String token = tokenProvider.createToken(loginUserInfo);
+ return token;
+ }
+ }
}
--
Gitblit v1.9.3