From 13883507228e344c870ab26da2c6b744d495b2a9 Mon Sep 17 00:00:00 2001 From: 克 刘 <4345453@qq.com> Date: Tue, 31 Mar 2020 18:19:34 +0800 Subject: [PATCH] 扩展当前登录用户组织机构信息 1、组织机构ID、名称 2、部门ID、名称 --- kidgrow-springcloud/kidgrow-springcloud-zuul/src/main/java/com/kidgrow/zuul/auth/Oauth2AuthSuccessHandler.java | 17 +++++++++++++++-- 1 files changed, 15 insertions(+), 2 deletions(-) diff --git a/kidgrow-springcloud/kidgrow-springcloud-zuul/src/main/java/com/kidgrow/zuul/auth/Oauth2AuthSuccessHandler.java b/kidgrow-springcloud/kidgrow-springcloud-zuul/src/main/java/com/kidgrow/zuul/auth/Oauth2AuthSuccessHandler.java index 8bb30f4..a7a8bd7 100644 --- a/kidgrow-springcloud/kidgrow-springcloud-zuul/src/main/java/com/kidgrow/zuul/auth/Oauth2AuthSuccessHandler.java +++ b/kidgrow-springcloud/kidgrow-springcloud-zuul/src/main/java/com/kidgrow/zuul/auth/Oauth2AuthSuccessHandler.java @@ -2,6 +2,7 @@ import cn.hutool.core.collection.CollectionUtil; import com.kidgrow.common.constant.SecurityConstants; +import com.kidgrow.common.model.SysOrganization; import com.kidgrow.common.model.SysUser; import org.springframework.http.server.reactive.ServerHttpRequest; import org.springframework.security.core.Authentication; @@ -12,6 +13,8 @@ import org.springframework.util.MultiValueMap; import org.springframework.web.server.ServerWebExchange; import reactor.core.publisher.Mono; + +import java.util.List; /** * 石家庄喜高科技有限责任公司 版权所有 © Copyright 2020<br> @@ -26,19 +29,29 @@ public Mono<Void> onAuthenticationSuccess(WebFilterExchange webFilterExchange, Authentication authentication) { MultiValueMap<String, String> headerValues = new LinkedMultiValueMap(4); Object principal = authentication.getPrincipal(); + String tenantId=""; //客户端模式只返回一个clientId if (principal instanceof SysUser) { SysUser user = (SysUser)authentication.getPrincipal(); headerValues.add(SecurityConstants.USER_ID_HEADER, String.valueOf(user.getId())); headerValues.add(SecurityConstants.USER_HEADER, user.getUsername()); + + List<SysOrganization> organizations = (List<SysOrganization>)user.getOrganizations(); + //如果有组织架构 + if(organizations.size()==2){ + headerValues.add(SecurityConstants.USER_ORG_ID_HEADER,String.valueOf(organizations.get(0).getId())); + headerValues.add(SecurityConstants.USER_ORG_NAME_HEADER,organizations.get(0).getOrgName()); + headerValues.add(SecurityConstants.USER_DEP_ID_HEADER,String.valueOf(organizations.get(1).getId())); + headerValues.add(SecurityConstants.USER_DEP_NAME_HEADER,organizations.get(1).getOrgName()); + tenantId=String.valueOf(organizations.get(0).getId()); + } } OAuth2Authentication oauth2Authentication = (OAuth2Authentication)authentication; String clientId = oauth2Authentication.getOAuth2Request().getClientId(); - String tenantId=""; //保存租户id,租户id根据业务尽进行替换 switch (clientId){ case "hospital": - tenantId="1"; + tenantId=tenantId; break; case "webApp": tenantId="webApp"; -- Gitblit v1.8.0