Commit 9b1cd79d authored by maqing's avatar maqing

权限修改-是否拦截和新增和修改用户刷新redis

parent c80f0408
......@@ -39,6 +39,11 @@ public interface AuthConstants {
*/
String PERMISSION_ROLES_RESOURCE_KEY = "ltc:roles:resource";
/**
* Redis缓存权限规则key
*/
String PERMISSION_RESOURCE_STATUS_KEY = "ltc:interface:status";
/**
* 密码加密方式
......
......@@ -14,4 +14,8 @@ public class SystemInterface {
private String interfaceUrl;
private String interfaceName;
private Date createdTime;
/**
* 是否拦截 1.拦截 0.不拦截
*/
private Long interceptionStatus;
}
......@@ -85,11 +85,21 @@ public class AuthorizationManager implements ReactiveAuthorizationManager<Author
if ("ROLE_0".equals(roleId)) {
return true;
}
String[] splitpath = path.split("/");
String pathNew = "/" + splitpath[1] + "/" + splitpath[2] + "/*";
Set<String> authorities = new HashSet<>();
Map<String, String> interfaceHashMap = redisTemplate.opsForHash().entries(AuthConstants.PERMISSION_RESOURCE_STATUS_KEY);
Map<String, List<SystemRoleResource>> rolesResources = redisTemplate.opsForHash().entries(AuthConstants.PERMISSION_ROLES_RESOURCE_KEY);
Map<String, List<String>> interfaces = redisTemplate.opsForHash().entries(AuthConstants.PERMISSION_RESOURCE_INTERFACE_KEY);
// Integer status = Integer.parseInt(interfaceHashMap.get(pathNew));
String status= interfaceHashMap.get(pathNew);
//是否拦截 1.拦截 0.不拦截
if(status.equals("0")){
log.info("访问路径是否拦截:不拦截");
return true;
}
log.info("访问路径是否拦截:拦截");
List<SystemRoleResource> resources = rolesResources.get(roleId);
for (SystemRoleResource resource : resources) {
List<String> systemInterfaces = interfaces.get(resource.getResourceId().toString());
......
package com.hungraim.ltc.system.controller;
import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
......@@ -11,6 +10,7 @@ import com.hungraim.ltc.pojo.vo.system.ReqRoleInfo;
import com.hungraim.ltc.system.dao.SystemRoleResourceMapper;
import com.hungraim.ltc.system.service.ISystemRoleResourceService;
import com.hungraim.ltc.system.service.ISystemRoleService;
import com.hungraim.ltc.system.service.impl.SystemInterfaceServiceImpl;
import com.hungraim.ltc.util.Result;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
......@@ -36,6 +36,12 @@ public class RoleController {
private SystemRoleResourceMapper systemRoleResourceMapper;
@Autowired
private ISystemRoleService roleService;
private final SystemInterfaceServiceImpl systemInterfaceService;
@Autowired
public RoleController(SystemInterfaceServiceImpl systemInterfaceService) {
this.systemInterfaceService = systemInterfaceService;
}
/**
......@@ -82,7 +88,7 @@ public class RoleController {
return systemRoleResource;
}).collect(Collectors.toList());
roleResourceService.saveBatch(roleResources);
systemInterfaceService.listResourceInterface();
return Result.success("新增成功");
}
......@@ -185,7 +191,7 @@ public class RoleController {
if(!deleteRoleResources.isEmpty()){
systemRoleResourceMapper.removeByIds(deleteRoleResources,reqRoleInfo.getId());
}
systemInterfaceService.listResourceInterface();
return Result.success("更新成功");
}
......
......@@ -13,12 +13,10 @@ import com.hungraim.ltc.pojo.vo.system.ReqUserInfo;
import com.hungraim.ltc.system.dao.SystemUserRoleMapper;
import com.hungraim.ltc.system.service.ISystemUserRoleService;
import com.hungraim.ltc.system.service.ISystemUserService;
import com.hungraim.ltc.system.service.impl.SystemInterfaceServiceImpl;
import com.hungraim.ltc.system.service.impl.SystemUserRoleServiceImpl;
import com.hungraim.ltc.system.service.impl.SystemUserServiceImpl;
import com.hungraim.ltc.util.CheckStrength;
import com.hungraim.ltc.util.Result;
import com.hungraim.ltc.util.ResultCode;
import com.hungraim.ltc.util.TokenParsingUtil;
import com.hungraim.ltc.util.*;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
......@@ -39,15 +37,21 @@ import java.util.stream.Collectors;
public class UserController {
private final ISystemUserService userInfoService;
private final ISystemUserRoleService userRoleService;
private final SystemInterfaceServiceImpl systemInterfaceService;
@Resource
private SystemUserRoleMapper systemUserRoleMapper;
@Autowired
public UserController(SystemUserServiceImpl userInfoService, SystemUserRoleServiceImpl userRoleService) {
public UserController(SystemUserServiceImpl userInfoService, SystemUserRoleServiceImpl userRoleService, SystemInterfaceServiceImpl systemInterfaceService) {
this.userInfoService = userInfoService;
this.userRoleService = userRoleService;
this.systemInterfaceService = systemInterfaceService;
}
......@@ -127,6 +131,7 @@ public class UserController {
return systemUserRole;
}).collect(Collectors.toList());
userRoleService.saveBatch(roleList);
systemInterfaceService.listResourceInterface();
return Result.success("新增成功");
}
......@@ -282,6 +287,7 @@ public class UserController {
if(!deleteRoleResources.isEmpty()){
systemUserRoleMapper.removeByIds(deleteRoleResources,reqUserInfo.getId());
}
systemInterfaceService.listResourceInterface();
// systemUserRoleMapper.removeByIds(deleteRoleResources,reqUserInfo.getId());
// userRoleService.removeByIds(deleteRoleResources);
return Result.success("更新成功");
......
......@@ -16,7 +16,7 @@ import java.util.List;
@Mapper
public interface SystemInterfaceMapper extends BaseMapper<SystemInterface> {
@Select("SELECT a.INTERFACE_ID,a.INTERFACE_URL FROM LTC_INTERFACE a")
@Select("SELECT a.INTERFACE_ID,a.INTERFACE_URL,a.INTERCEPTION_STATUS FROM LTC_INTERFACE a")
List<SystemInterface> listInterface();
@Select("select c.RESOURCE_ID,c.INTERFACE_ID from LTC_RESOURCE_INTERFACE c")
......
......@@ -40,8 +40,10 @@ public class SystemInterfaceServiceImpl extends ServiceImpl<SystemInterfaceMappe
redisTemplate.delete(AuthConstants.PERMISSION_RESOURCE_INTERFACE_KEY);
redisTemplate.delete(AuthConstants.PERMISSION_ROLES_RESOURCE_KEY);
redisTemplate.delete(AuthConstants.PERMISSION_RESOURCE_STATUS_KEY);
Map<String, List<SystemRoleResource>> roleResourcesMap = new TreeMap<>();
Map<String, List<String>> stringStringHashMap = new HashMap<>();
Map<String, String> interfaceHashMap = new HashMap<>();
//角色数据
List<Long> roles = systemInterfaceMapper.listRole();
//角色和资源数据
......@@ -50,6 +52,7 @@ public class SystemInterfaceServiceImpl extends ServiceImpl<SystemInterfaceMappe
List<SystemResourceinterface> resourceInterface = systemInterfaceMapper.listResourceInterface();
//接口数据
List<SystemInterface> systemInterfaces = systemInterfaceMapper.listInterface();
systemInterfaces.stream().forEach(systemInterface -> interfaceHashMap.put(systemInterface.getInterfaceUrl(),systemInterface.getInterceptionStatus().toString()));
roles.stream().forEach(role -> {
//角色和资源数据
List<SystemRoleResource> roleResourceList = roleResources.stream().filter(roleResource -> roleResource.getRoleId().equals(role)).collect(Collectors.toList());
......@@ -68,6 +71,7 @@ public class SystemInterfaceServiceImpl extends ServiceImpl<SystemInterfaceMappe
//角色和资源
roleResourcesMap.put(AuthConstants.AUTHORITY_PREFIX + role.toString(),roleResourceList);
});
redisTemplate.opsForHash().putAll(AuthConstants.PERMISSION_RESOURCE_STATUS_KEY, interfaceHashMap);
redisTemplate.opsForHash().putAll(AuthConstants.PERMISSION_ROLES_RESOURCE_KEY, roleResourcesMap);
redisTemplate.opsForHash().putAll(AuthConstants.PERMISSION_RESOURCE_INTERFACE_KEY, stringStringHashMap);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment