From f57c1111d78b3442b2a9e2eaea255157cdcb9574 Mon Sep 17 00:00:00 2001 From: 侯瑞军 <411269194@kidgrow.com> Date: Fri, 03 Apr 2020 15:35:28 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/dev' into dev --- 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..9a9c408 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!=null && 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