From f482b0370fc03641b4d972eb427ccb4f7c377735 Mon Sep 17 00:00:00 2001 From: zhansihu Date: Tue, 26 Dec 2023 17:58:26 +0800 Subject: [PATCH] =?UTF-8?q?refactor(permission):=20=E8=B0=83=E6=95=B4?= =?UTF-8?q?=E7=BC=93=E5=AD=98=E9=80=BB=E8=BE=91=EF=BC=8C=E8=BF=87=E6=BB=A4?= =?UTF-8?q?=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../tyr/server/service/impl/TyrSaasAuthServiceImpl.java | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/tyr-server/src/main/java/cn/axzo/tyr/server/service/impl/TyrSaasAuthServiceImpl.java b/tyr-server/src/main/java/cn/axzo/tyr/server/service/impl/TyrSaasAuthServiceImpl.java index 18171743..4d69293f 100644 --- a/tyr-server/src/main/java/cn/axzo/tyr/server/service/impl/TyrSaasAuthServiceImpl.java +++ b/tyr-server/src/main/java/cn/axzo/tyr/server/service/impl/TyrSaasAuthServiceImpl.java @@ -687,7 +687,7 @@ public class TyrSaasAuthServiceImpl implements TyrSaasAuthService { @Override public IdentityAuthRes findIdentityAuthMix(IdentityAuthReq req) { List permissions = null; - if (req.isUseCache() || CollectionUtil.isNotEmpty(req.getSpecifyRoleIds())) { + if (!req.isUseCache() || CollectionUtil.isNotEmpty(req.getSpecifyRoleIds())) { //不走缓存 或者 角色预览 permissions = findIdentityPermission(req); } else { @@ -703,6 +703,7 @@ public class TyrSaasAuthServiceImpl implements TyrSaasAuthService { || CollectionUtil.isNotEmpty(req.getFeatureCode()) || CollectionUtil.isNotEmpty(req.getFeatureId()); if (!needFilter) { + result.setPermissions(permissions); return result; } Set terminals = req.getTerminal() == null ? null : new HashSet<>(req.getTerminal()); @@ -728,7 +729,7 @@ public class TyrSaasAuthServiceImpl implements TyrSaasAuthService { //从缓存取权限,并记录缓存中没有的OW List needQueryPairs = new ArrayList<>(); req.getWorkspaceOusPairs().forEach(ow -> { - String key = KeyUtil.buildKeyBySeparator("auth", req.getIdentityId(), req.getIdentityType(), ow.getOuId(), ow.getWorkspaceId()); + String key = KeyUtil.buildKeyBySeparator("auth", req.getIdentityId(), req.getIdentityType().getCode(), ow.getOuId(), ow.getWorkspaceId()); IdentityAuthRes.WorkspacePermission permission = getIdentityAuthFromCache(key); if (permission == null) { needQueryPairs.add(ow); @@ -744,7 +745,7 @@ public class TyrSaasAuthServiceImpl implements TyrSaasAuthService { List authPermission = findIdentityPermission(req); permissions.addAll(authPermission); authPermission.forEach(p -> { - String key = KeyUtil.buildKeyBySeparator("auth", req.getIdentityId(), req.getIdentityType(), p.getOuId(), p.getWorkspaceId()); + String key = KeyUtil.buildKeyBySeparator("auth", req.getIdentityId(), req.getIdentityType().getCode(), p.getOuId(), p.getWorkspaceId()); cacheIdentityAuth(key, p); }); } @@ -754,7 +755,7 @@ public class TyrSaasAuthServiceImpl implements TyrSaasAuthService { private void cacheIdentityAuth(String key, IdentityAuthRes.WorkspacePermission permission) { RedisUtil.StringOps.setEx(key, JSONObject.toJSONString(permission, SerializerFeature.DisableCircularReferenceDetect), - 60L, TimeUnit.MINUTES); + 30L, TimeUnit.MINUTES); } private IdentityAuthRes.WorkspacePermission getIdentityAuthFromCache(String key) {