From 1d5345f92dbd4aac2b5f68265921bb2529a71b8e Mon Sep 17 00:00:00 2001
From: bingbing <zhaobingliang@aliyun.com>
Date: Tue, 27 Oct 2020 14:16:21 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/dev' into dev

---
 kidgrow-commons/kidgrow-authclient-spring-boot-starter/src/main/java/com/kidgrow/authclient/service/impl/DefaultPermissionServiceImpl.java |   28 ++++++++++++++++++++++++++++
 1 files changed, 28 insertions(+), 0 deletions(-)

diff --git a/kidgrow-commons/kidgrow-authclient-spring-boot-starter/src/main/java/com/kidgrow/authclient/service/impl/DefaultPermissionServiceImpl.java b/kidgrow-commons/kidgrow-authclient-spring-boot-starter/src/main/java/com/kidgrow/authclient/service/impl/DefaultPermissionServiceImpl.java
index 62462da..4f544db 100644
--- a/kidgrow-commons/kidgrow-authclient-spring-boot-starter/src/main/java/com/kidgrow/authclient/service/impl/DefaultPermissionServiceImpl.java
+++ b/kidgrow-commons/kidgrow-authclient-spring-boot-starter/src/main/java/com/kidgrow/authclient/service/impl/DefaultPermissionServiceImpl.java
@@ -91,9 +91,37 @@
 //                    break;
 //            }
 //            TenantContextHolder.setTenant(tenantId);
+
             ClientContextHolder.setClient(clientId);
             String roleCodes = grantedAuthorityList.stream().map(SimpleGrantedAuthority::getAuthority).collect(Collectors.joining(", "));
             List<SysMenu> menuList = findMenuByRoleCodes(roleCodes);
+            /*
+             *需求:h端   没有进行配置url的通过,剩下的进行验证
+             *
+             */
+            //根据h端进行验证
+            if("hospital".equals(clientId)){
+                if(!menuList.isEmpty()){
+                    List<String> collect = menuList.stream().map(SysMenu::getUrl).collect(Collectors.toList());
+                    if(collect.contains(requestURI)){
+                        for (SysMenu menu : menuList) {
+                                if (StringUtils.isNotEmpty(menu.getUrl()) && antPathMatcher.match(menu.getUrl(), requestURI)) {
+                                    if (StrUtil.isNotEmpty(menu.getPathMethod())) {
+                                        if(!requestMethod.equalsIgnoreCase(menu.getPathMethod())){
+                                            continue;
+                                        }
+                                        return requestMethod.equalsIgnoreCase(menu.getPathMethod());
+                                    }
+                                }
+                        }
+                    }else {
+                        //不在配置menu集合里面的放行
+                        return true;
+                    }
+                }else{
+                    return true;
+                }
+            }
             for (SysMenu menu : menuList) {
                 if (StringUtils.isNotEmpty(menu.getUrl()) && antPathMatcher.match(menu.getUrl(), requestURI)) {
                     if (StrUtil.isNotEmpty(menu.getPathMethod())) {

--
Gitblit v1.8.0