From bbc5d8ff444370846bda6e9acb1883351996ba0b Mon Sep 17 00:00:00 2001 From: lbw Date: Thu, 7 Jan 2021 16:03:46 +0800 Subject: [PATCH] =?UTF-8?q?:sparkles:=20Introducing=20new=20features.=20#2?= =?UTF-8?q?241=20=E3=80=90common-test=E3=80=91=20=E4=BC=98=E5=8C=96?= =?UTF-8?q?=E5=8D=95=E5=85=83=E6=B5=8B=E8=AF=95=E6=A8=A1=E5=9D=97=EF=BC=8C?= =?UTF-8?q?=E6=94=AF=E6=8C=81=E9=BB=98=E8=AE=A4=E8=A7=92=E8=89=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../test/WithMockSecurityContextFactory.java | 23 +++++++++++++++---- 1 file changed, 18 insertions(+), 5 deletions(-) diff --git a/pigx-common/pigx-common-test/src/main/java/com/pig4cloud/pigx/test/WithMockSecurityContextFactory.java b/pigx-common/pigx-common-test/src/main/java/com/pig4cloud/pigx/test/WithMockSecurityContextFactory.java index 0460191c1..a4e304631 100644 --- a/pigx-common/pigx-common-test/src/main/java/com/pig4cloud/pigx/test/WithMockSecurityContextFactory.java +++ b/pigx-common/pigx-common-test/src/main/java/com/pig4cloud/pigx/test/WithMockSecurityContextFactory.java @@ -1,7 +1,8 @@ package com.pig4cloud.pigx.test; +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.util.StrUtil; import cn.hutool.http.HttpRequest; -import cn.hutool.json.JSONArray; import cn.hutool.json.JSONObject; import cn.hutool.json.JSONUtil; import com.pig4cloud.pigx.common.core.constant.SecurityConstants; @@ -21,6 +22,8 @@ import org.springframework.security.oauth2.provider.token.AccessTokenConverter; import org.springframework.security.test.context.support.WithSecurityContextFactory; import java.util.Collection; +import java.util.List; +import java.util.stream.Collectors; /** * @author lengleng @@ -82,12 +85,22 @@ public class WithMockSecurityContextFactory implements WithSecurityContextFactor String avatar = userInfo.getStr(SecurityConstants.DETAILS_AVATAR); String username = userInfo.getStr(SecurityConstants.DETAILS_USERNAME); Integer tenantId = userInfo.getInt(SecurityConstants.DETAILS_TENANT_ID); - JSONArray jsonArray = userInfo.getJSONArray(AccessTokenConverter.AUTHORITIES); - Collection authorities = AuthorityUtils - .createAuthorityList(jsonArray.toArray(new String[0])); + return new PigxUser(id, deptId, phone, avatar, tenantId, username, "N/A", true, true, true, true, + getAuthorities(userInfo)); + } - return new PigxUser(id, deptId, phone, avatar, tenantId, username, "N/A", true, true, true, true, authorities); + /** + * 转换用户权限角色信息 注入到 上线文对象 + * @param userInfo + * @return + */ + private Collection getAuthorities(JSONObject userInfo) { + List authorityList = userInfo.getJSONArray(AccessTokenConverter.AUTHORITIES).stream().map(obj -> { + JSONObject jsonObject = (JSONObject) obj; + return jsonObject.getStr("authority"); + }).collect(Collectors.toList()); + return AuthorityUtils.commaSeparatedStringToAuthorityList(CollUtil.join(authorityList, StrUtil.COMMA)); } }