Ver código fonte

获取网关用户

温红权 3 anos atrás
pai
commit
a3b2f505d6

+ 6 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/controller/zhdd/ResourceController.java

@@ -9,9 +9,14 @@ import java.util.concurrent.TimeUnit;
 import java.util.stream.Collectors;
 
 import cn.hutool.core.collection.CollUtil;
+import com.ruoyi.common.core.domain.GetwayUser;
 import lombok.RequiredArgsConstructor;
+
+import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 import javax.validation.constraints.*;
+
+import org.apache.logging.log4j.Logger;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
@@ -54,6 +59,7 @@ public class ResourceController extends BaseController {
 //    @PreAuthorize("@ss.hasPermi('zhdd:resource:list')")
     @GetMapping("/list")
     public TableDataInfo<ResourceVo> list(@Validated(QueryGroup.class) ResourceBo bo) {
+        GetwayUser user =  getGateWayUser();
         return iResourceService.queryPageList(bo);
     }
 

+ 37 - 1
ruoyi-common/src/main/java/com/ruoyi/common/core/controller/BaseController.java

@@ -1,11 +1,21 @@
 package com.ruoyi.common.core.controller;
 
+import cn.hutool.core.convert.Convert;
+import cn.hutool.http.HttpRequest;
+import cn.hutool.json.JSONObject;
 import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.core.domain.GetwayUser;
+import com.ruoyi.common.core.domain.entity.SysDept;
 import com.ruoyi.common.core.domain.model.LoginUser;
 import com.ruoyi.common.utils.SecurityUtils;
 import com.ruoyi.common.utils.StringUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
+import org.springframework.web.context.request.RequestContextHolder;
+import org.springframework.web.context.request.ServletRequestAttributes;
+
+import javax.servlet.http.HttpServletRequest;
+import java.net.URLDecoder;
 
 /**
  * web层通用数据处理
@@ -50,7 +60,7 @@ public class BaseController
 
     /**
      * 响应返回结果
-     * 
+     *
      * @param rows 影响行数
      * @return 操作结果
      */
@@ -109,4 +119,30 @@ public class BaseController
     {
         return getLoginUser().getUsername();
     }
+
+    public GetwayUser getGateWayUser(){
+        try {
+
+            ServletRequestAttributes servletRequestAttributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
+            HttpServletRequest request = servletRequestAttributes.getRequest();
+            String userStr = request.getHeader("user");
+            userStr = URLDecoder.decode(userStr, "UTF-8");
+            JSONObject userJsonObject = new JSONObject(userStr);
+            JSONObject principalObject = userJsonObject.getJSONObject("principal");
+            GetwayUser userDTO = new GetwayUser();
+            userDTO.setUserId(userJsonObject.getStr("id"));
+            userDTO.setUsername(principalObject.getStr("userName"));
+            userDTO.setOrgId(principalObject.getStr("orgId"));
+            userDTO.setOrgName(principalObject.getStr("orgName"));
+            userDTO.setRoles(Convert.toList(String.class, principalObject.get("permissions")));
+
+
+
+            return userDTO;
+        }catch (Exception e){
+            return null;
+        }
+
+    }
+
 }

+ 21 - 0
ruoyi-common/src/main/java/com/ruoyi/common/core/domain/GetwayUser.java

@@ -0,0 +1,21 @@
+package com.ruoyi.common.core.domain;
+
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.util.List;
+
+@Data
+@EqualsAndHashCode(callSuper = false)
+public class GetwayUser {
+    //用户ID
+    private String userId;
+    //用户名
+    private String username;
+    //组织机构ID
+    private String orgId;
+    //组织机构名称
+    private String orgName;
+    private List<String> roles;
+
+}