diff --git a/backend/services/system-setting/src/main/java/io/metersphere/system/security/CheckOwnerAspect.java b/backend/services/system-setting/src/main/java/io/metersphere/system/security/CheckOwnerAspect.java index cd13cb3aca..7bfddf13cf 100644 --- a/backend/services/system-setting/src/main/java/io/metersphere/system/security/CheckOwnerAspect.java +++ b/backend/services/system-setting/src/main/java/io/metersphere/system/security/CheckOwnerAspect.java @@ -3,7 +3,6 @@ package io.metersphere.system.security; import io.metersphere.sdk.constants.InternalUserRole; import io.metersphere.sdk.exception.MSException; -import io.metersphere.sdk.util.LogUtils; import io.metersphere.sdk.util.Translator; import io.metersphere.system.mapper.ExtCheckOwnerMapper; import io.metersphere.system.utils.SessionUtils; @@ -41,41 +40,37 @@ public class CheckOwnerAspect { @Before("pointcut()") public void before(JoinPoint joinPoint) { - try { - //从切面织入点处通过反射机制获取织入点处的方法 - MethodSignature signature = (MethodSignature) joinPoint.getSignature(); - //获取切入点所在的方法 - Method method = signature.getMethod(); - //获取参数对象数组 - Object[] args = joinPoint.getArgs(); - CheckOwner checkOwner = method.getAnnotation(CheckOwner.class); - long count = SessionUtils.getUser().getUserRoles() - .stream() - .filter(g -> StringUtils.equalsIgnoreCase(g.getId(), InternalUserRole.ADMIN.getValue())) - .count(); - if (count > 0) { - return; - } - // 操作内容 - //获取方法参数名 - String[] params = discoverer.getParameterNames(method); - //将参数纳入Spring管理 - EvaluationContext context = new StandardEvaluationContext(); - for (int len = 0; len < params.length; len++) { - context.setVariable(params[len], args[len]); - } + //从切面织入点处通过反射机制获取织入点处的方法 + MethodSignature signature = (MethodSignature) joinPoint.getSignature(); + //获取切入点所在的方法 + Method method = signature.getMethod(); + //获取参数对象数组 + Object[] args = joinPoint.getArgs(); + CheckOwner checkOwner = method.getAnnotation(CheckOwner.class); + long count = SessionUtils.getUser().getUserRoles() + .stream() + .filter(g -> StringUtils.equalsIgnoreCase(g.getId(), InternalUserRole.ADMIN.getValue())) + .count(); + if (count > 0) { + return; + } + // 操作内容 + //获取方法参数名 + String[] params = discoverer.getParameterNames(method); + //将参数纳入Spring管理 + EvaluationContext context = new StandardEvaluationContext(); + for (int len = 0; len < params.length; len++) { + context.setVariable(params[len], args[len]); + } - String resourceId = checkOwner.resourceId(); - String resourceType = checkOwner.resourceType(); - Expression titleExp = parser.parseExpression(resourceId); - Object v = titleExp.getValue(context, Object.class); - if (v instanceof String id) { - if (!extCheckOwnerMapper.checkoutOwner(resourceType, SessionUtils.getCurrentProjectId(), id)) { - throw new MSException(Translator.get("check_owner_case")); - } + String resourceId = checkOwner.resourceId(); + String resourceType = checkOwner.resourceType(); + Expression titleExp = parser.parseExpression(resourceId); + Object v = titleExp.getValue(context, Object.class); + if (v instanceof String id) { + if (!extCheckOwnerMapper.checkoutOwner(resourceType, SessionUtils.getCurrentProjectId(), id)) { + throw new MSException(Translator.get("check_owner_case")); } - } catch (Exception e) { - LogUtils.error(e.getMessage(), e); } }