From 3e194c0902c307b0cfa2ec14bf303310eb1fb6e9 Mon Sep 17 00:00:00 2001
From: wl <173@qq.com>
Date: 星期三, 26 十月 2022 16:52:35 +0800
Subject: [PATCH] 解决用户权限问题
---
ycl-common/src/main/java/com/ycl/service/user/impl/UmsAdminServiceImpl.java | 18 ++++-----
ycl-common/src/main/java/com/ycl/service/user/UmsAdminService.java | 3 +
ycl-common/src/main/java/com/ycl/service/user/UmsAdminCacheService.java | 5 +-
ycl-platform/src/main/java/com/ycl/config/YclSecurityConfig.java | 10 +++--
ycl-common/src/main/java/com/ycl/bo/AdminUserDetails.java | 11 +++--
ycl-common/src/main/java/com/ycl/service/user/impl/UmsAdminCacheServiceImpl.java | 9 ++--
ycl-platform/src/main/resources/application.yml | 2
ycl-platform/src/main/resources/mapper/caseHandler/DisposeRecordMapper.xml | 4 +-
8 files changed, 33 insertions(+), 29 deletions(-)
diff --git a/ycl-common/src/main/java/com/ycl/bo/AdminUserDetails.java b/ycl-common/src/main/java/com/ycl/bo/AdminUserDetails.java
index b1a6671..4f8975b 100644
--- a/ycl-common/src/main/java/com/ycl/bo/AdminUserDetails.java
+++ b/ycl-common/src/main/java/com/ycl/bo/AdminUserDetails.java
@@ -1,7 +1,7 @@
package com.ycl.bo;
import com.ycl.entity.user.UmsAdmin;
-import com.ycl.entity.user.UmsResource;
+import com.ycl.entity.user.UmsMenu;
import org.springframework.security.core.GrantedAuthority;
import org.springframework.security.core.authority.SimpleGrantedAuthority;
import org.springframework.security.core.userdetails.UserDetails;
@@ -15,8 +15,9 @@
*/
public class AdminUserDetails implements UserDetails {
private UmsAdmin umsAdmin;
- private List<UmsResource> resourceList;
- public AdminUserDetails(UmsAdmin umsAdmin, List<UmsResource> resourceList) {
+ private List<UmsMenu> resourceList;
+
+ public AdminUserDetails(UmsAdmin umsAdmin, List<UmsMenu> resourceList) {
this.umsAdmin = umsAdmin;
this.resourceList = resourceList;
}
@@ -25,7 +26,7 @@
public Collection<? extends GrantedAuthority> getAuthorities() {
//杩斿洖褰撳墠鐢ㄦ埛鐨勮鑹�
return resourceList.stream()
- .map(role ->new SimpleGrantedAuthority(role.getId()+":"+role.getName()))
+ .map(role -> new SimpleGrantedAuthority(role.getId() + ":" + role.getTitle()))
.collect(Collectors.toList());
}
@@ -59,7 +60,7 @@
return umsAdmin.getStatus().equals(1);
}
- public Long getUserId(){
+ public Long getUserId() {
return umsAdmin.getId();
}
}
diff --git a/ycl-common/src/main/java/com/ycl/service/user/UmsAdminCacheService.java b/ycl-common/src/main/java/com/ycl/service/user/UmsAdminCacheService.java
index fbcf0b5..73b257b 100644
--- a/ycl-common/src/main/java/com/ycl/service/user/UmsAdminCacheService.java
+++ b/ycl-common/src/main/java/com/ycl/service/user/UmsAdminCacheService.java
@@ -4,6 +4,7 @@
import com.ycl.entity.user.UmsAdmin;
+import com.ycl.entity.user.UmsMenu;
import com.ycl.entity.user.UmsResource;
import java.util.List;
@@ -50,12 +51,12 @@
/**
* 鑾峰彇缂撳瓨鍚庡彴鐢ㄦ埛璧勬簮鍒楄〃
*/
- List<UmsResource> getResourceList(Long adminId);
+ List<UmsMenu> getResourceList(Long adminId);
/**
* 璁剧疆鍚庡彴鍚庡彴鐢ㄦ埛璧勬簮鍒楄〃
*/
- void setResourceList(Long adminId, List<UmsResource> resourceList);
+ void setResourceList(Long adminId, List<UmsMenu> umsMenuList);
/**
* 鎵归噺鍒犻櫎缂撳瓨鐢ㄦ埛
diff --git a/ycl-common/src/main/java/com/ycl/service/user/UmsAdminService.java b/ycl-common/src/main/java/com/ycl/service/user/UmsAdminService.java
index 3e2cc03..5f23c20 100644
--- a/ycl-common/src/main/java/com/ycl/service/user/UmsAdminService.java
+++ b/ycl-common/src/main/java/com/ycl/service/user/UmsAdminService.java
@@ -6,6 +6,7 @@
import com.ycl.dto.UmsAdminParam;
import com.ycl.dto.UpdateAdminPasswordParam;
import com.ycl.entity.user.UmsAdmin;
+import com.ycl.entity.user.UmsMenu;
import com.ycl.entity.user.UmsResource;
import com.ycl.entity.user.UmsRole;
import com.ycl.vo.user.UserVO;
@@ -72,7 +73,7 @@
/**
* 鑾峰彇鎸囧畾鐢ㄦ埛鐨勫彲璁块棶璧勬簮
*/
- List<UmsResource> getResourceList(Long adminId);
+ List<UmsMenu> getResourceList(Long adminId);
/**
* 淇敼瀵嗙爜
diff --git a/ycl-common/src/main/java/com/ycl/service/user/impl/UmsAdminCacheServiceImpl.java b/ycl-common/src/main/java/com/ycl/service/user/impl/UmsAdminCacheServiceImpl.java
index 39a9145..9e1a4cb 100644
--- a/ycl-common/src/main/java/com/ycl/service/user/impl/UmsAdminCacheServiceImpl.java
+++ b/ycl-common/src/main/java/com/ycl/service/user/impl/UmsAdminCacheServiceImpl.java
@@ -5,6 +5,7 @@
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.ycl.entity.user.UmsAdmin;
import com.ycl.entity.user.UmsAdminRoleRelation;
+import com.ycl.entity.user.UmsMenu;
import com.ycl.entity.user.UmsResource;
import com.ycl.mapper.user.UmsAdminMapper;
import com.ycl.service.redis.RedisService;
@@ -106,18 +107,18 @@
}
@Override
- public List<UmsResource> getResourceList(Long adminId) {
+ public List<UmsMenu> getResourceList(Long adminId) {
String key = REDIS_DATABASE + ":" + REDIS_KEY_RESOURCE_LIST + ":" + adminId;
String s = (String) redisService.get(key);
// return (List<UmsResource>) redisService.get(key);
- List<UmsResource> umsResources = JSON.parseArray(s, UmsResource.class);
+ List<UmsMenu> umsResources = JSON.parseArray(s, UmsMenu.class);
return umsResources;
}
@Override
- public void setResourceList(Long adminId, List<UmsResource> resourceList) {
+ public void setResourceList(Long adminId, List<UmsMenu> menuList) {
String key = REDIS_DATABASE + ":" + REDIS_KEY_RESOURCE_LIST + ":" + adminId;
- redisService.set(key, JSON.toJSONString(resourceList), REDIS_EXPIRE);
+ redisService.set(key, JSON.toJSONString(menuList), REDIS_EXPIRE);
}
@Override
diff --git a/ycl-common/src/main/java/com/ycl/service/user/impl/UmsAdminServiceImpl.java b/ycl-common/src/main/java/com/ycl/service/user/impl/UmsAdminServiceImpl.java
index bb6d7fe..c2748d6 100644
--- a/ycl-common/src/main/java/com/ycl/service/user/impl/UmsAdminServiceImpl.java
+++ b/ycl-common/src/main/java/com/ycl/service/user/impl/UmsAdminServiceImpl.java
@@ -288,16 +288,14 @@
}
@Override
- public List<UmsResource> getResourceList(Long adminId) {
- List<UmsResource> resourceList = getCacheService().getResourceList(adminId);
- if (CollUtil.isNotEmpty(resourceList)) {
- return resourceList;
+ public List<UmsMenu> getResourceList(Long adminId) {
+ List<UmsMenu> umsMenuList = getCacheService().getResourceList(adminId);
+ if (CollUtil.isNotEmpty(umsMenuList)) {
+ return umsMenuList;
}
- resourceList = umsResourceMapper.getResourceList(adminId);
- if (CollUtil.isNotEmpty(resourceList)) {
- getCacheService().setResourceList(adminId, resourceList);
- }
- return resourceList;
+ umsMenuList = umsMenuMapper.getMenuList(adminId);
+ getCacheService().setResourceList(adminId, umsMenuList);
+ return umsMenuList;
}
@Override
@@ -328,7 +326,7 @@
//鑾峰彇鐢ㄦ埛淇℃伅
UmsAdmin admin = getAdminByUsername(username);
if (admin != null) {
- List<UmsResource> resourceList = getResourceList(admin.getId());
+ List<UmsMenu> resourceList = getResourceList(admin.getId());
return new AdminUserDetails(admin, resourceList);
}
throw new UsernameNotFoundException("鐢ㄦ埛鍚嶆垨瀵嗙爜閿欒");
diff --git a/ycl-platform/src/main/java/com/ycl/config/YclSecurityConfig.java b/ycl-platform/src/main/java/com/ycl/config/YclSecurityConfig.java
index b5d2bfb..d41c7e5 100644
--- a/ycl-platform/src/main/java/com/ycl/config/YclSecurityConfig.java
+++ b/ycl-platform/src/main/java/com/ycl/config/YclSecurityConfig.java
@@ -1,8 +1,10 @@
package com.ycl.config;
import com.ycl.component.DynamicSecurityService;
+import com.ycl.entity.user.UmsMenu;
import com.ycl.entity.user.UmsResource;
import com.ycl.service.user.UmsAdminService;
+import com.ycl.service.user.UmsMenuService;
import com.ycl.service.user.UmsResourceService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
@@ -24,7 +26,7 @@
@Autowired
private UmsAdminService adminService;
@Autowired
- private UmsResourceService resourceService;
+ private UmsMenuService umsMenuService;
@Bean
public UserDetailsService userDetailsService() {
@@ -38,9 +40,9 @@
@Override
public Map<String, ConfigAttribute> loadDataSource() {
Map<String, ConfigAttribute> map = new ConcurrentHashMap<>();
- List<UmsResource> resourceList = resourceService.list();
- for (UmsResource resource : resourceList) {
- map.put(resource.getUrl(), new org.springframework.security.access.SecurityConfig(resource.getId() + ":" + resource.getName()));
+ List<UmsMenu> resourceList = umsMenuService.list();
+ for (UmsMenu resource : resourceList) {
+ map.put(resource.getTitle(), new org.springframework.security.access.SecurityConfig(resource.getId() + ":" + resource.getTitle()));
}
return map;
}
diff --git a/ycl-platform/src/main/resources/application.yml b/ycl-platform/src/main/resources/application.yml
index 4e81bc2..e44a192 100644
--- a/ycl-platform/src/main/resources/application.yml
+++ b/ycl-platform/src/main/resources/application.yml
@@ -36,7 +36,7 @@
database: sccg
key:
admin: 'ums:admin'
- resourceList: 'ums:resourceList'
+ resourceList: 'ums:menuList'
expire:
common: 86400 # 24灏忔椂
diff --git a/ycl-platform/src/main/resources/mapper/caseHandler/DisposeRecordMapper.xml b/ycl-platform/src/main/resources/mapper/caseHandler/DisposeRecordMapper.xml
index 73fc29e..c47e565 100644
--- a/ycl-platform/src/main/resources/mapper/caseHandler/DisposeRecordMapper.xml
+++ b/ycl-platform/src/main/resources/mapper/caseHandler/DisposeRecordMapper.xml
@@ -33,8 +33,8 @@
t2.limit_time
FROM
ums_admin_role_relation t1
- JOIN ums_dispose_record t2 ON t1.role_id = t2.handler_role_id
- JOIN ums_base_case t3 ON t2.base_case_id=t3.id
+ left JOIN ums_dispose_record t2 ON t1.role_id = t2.handler_role_id
+ left JOIN ums_base_case t3 ON t2.base_case_id=t3.id
<where>
t1.admin_id = #{id}
AND ISNULL( t2.end_time )
--
Gitblit v1.8.0