Quellcode durchsuchen

权限预加载 角色字符串格式修改

rengb vor 3 Jahren
Ursprung
Commit
c16e7a8698

+ 2 - 2
common/src/main/java/com/lantone/common/constant/AuthConstant.java

@@ -23,9 +23,9 @@ public interface AuthConstant {
     String SECURITY_CENTER_CLIENT_ID = "security-center";
 
     /**
-     * 后台管理接口路径匹配
+     * 用户处理中心接口路径匹配
      */
-    String ADMIN_URL_PATTERN = "/security/**";
+    String SECURITY_CENTER_URL_PATTERN = "/security-center/**";
 
     /**
      * Redis缓存权限规则key

+ 2 - 2
gateway-service/src/main/java/com/lantone/authorization/AuthorizationManager.java

@@ -68,7 +68,7 @@ public class AuthorizationManager implements ReactiveAuthorizationManager<Author
             JWSObject jwsObject = JWSObject.parse(realToken);
             String userStr = jwsObject.getPayload().toString();
             UserDto userDto = JSONUtil.toBean(userStr, UserDto.class);
-            if (AuthConstant.SECURITY_CENTER_CLIENT_ID.equals(userDto.getClientId()) && !pathMatcher.match(AuthConstant.ADMIN_URL_PATTERN, uri.getPath())) {
+            if (AuthConstant.SECURITY_CENTER_CLIENT_ID.equals(userDto.getClientId()) && !pathMatcher.match(AuthConstant.SECURITY_CENTER_URL_PATTERN, uri.getPath())) {
                 return Mono.just(new AuthorizationDecision(false));
             }
         } catch (ParseException e) {
@@ -76,7 +76,7 @@ public class AuthorizationManager implements ReactiveAuthorizationManager<Author
             return Mono.just(new AuthorizationDecision(false));
         }
         //非管理端路径直接放行
-        if (!pathMatcher.match(AuthConstant.ADMIN_URL_PATTERN, uri.getPath())) {
+        if (!pathMatcher.match(AuthConstant.SECURITY_CENTER_URL_PATTERN, uri.getPath())) {
             return Mono.just(new AuthorizationDecision(true));
         }
         //管理端路径需校验权限

+ 0 - 3
gateway-service/src/main/resources/bootstrap.yml

@@ -5,9 +5,6 @@ spring:
   application:
     name: gateway-service
   security:
-    user:
-      name: admin
-      password: lantone
     oauth2:
       resourceserver:
         jwt:

+ 12 - 1
security-center/src/main/java/com/lantone/security/facade/UserManagementFacade.java

@@ -9,6 +9,8 @@ import com.lantone.common.dto.GetDeptTreeDTO;
 import com.lantone.common.dto.GetHospitalDeptDTO;
 import com.lantone.common.dto.GetHospitalTreeDTO;
 import com.lantone.common.dto.GetUserDTO;
+import com.lantone.common.enums.IsDeleteEnum;
+import com.lantone.common.enums.StatusEnum;
 import com.lantone.common.exception.Asserts;
 import com.lantone.common.util.DateUtil;
 import com.lantone.common.util.EntityUtil;
@@ -21,6 +23,7 @@ import com.lantone.common.vo.UpdateUserVO;
 import com.lantone.dblayermbg.entity.DeptUser;
 import com.lantone.dblayermbg.entity.Hospital;
 import com.lantone.dblayermbg.entity.HospitalUser;
+import com.lantone.dblayermbg.entity.Role;
 import com.lantone.dblayermbg.entity.User;
 import com.lantone.dblayermbg.entity.UserRole;
 import com.lantone.dblayermbg.facade.DeptFacade;
@@ -31,7 +34,6 @@ import com.lantone.dblayermbg.facade.RoleFacade;
 import com.lantone.dblayermbg.facade.UserFacade;
 import com.lantone.dblayermbg.facade.UserRoleFacade;
 import com.lantone.security.enums.HospitalTypeEnum;
-import com.lantone.common.enums.IsDeleteEnum;
 import com.lantone.security.service.AuthService;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -90,6 +92,7 @@ public class UserManagementFacade {
         if (userList.size() > 1) {
             Asserts.fail("当前账号异常!");
         }
+
         UserDto userDTO = new UserDto();
         User user = userList.get(0);
         QueryWrapper<UserRole> userRoleQueryWrapper = new QueryWrapper<>();
@@ -99,8 +102,16 @@ public class UserManagementFacade {
                 .stream()
                 .map(i -> i.getRoleId())
                 .collect(Collectors.toList());
+
+        QueryWrapper<Role> roleQueryWrapper = new QueryWrapper<>();
+        roleQueryWrapper.eq("is_deleted", IsDeleteEnum.N.getKey());
+        roleQueryWrapper.eq("status", StatusEnum.Enable.getKey());
+        roleQueryWrapper.in("id", roleIdList);
+        List<String> roleIdNames = roleFacade.list(roleQueryWrapper).stream().map(i -> i.getId() + "_" + i.getName()).collect(Collectors.toList());
+
         BeanUtils.copyProperties(user, userDTO);
         userDTO.setStatus(Integer.parseInt(user.getStatus()));
+        userDTO.setRoles(roleIdNames);
         return userDTO;
     }