Преглед изворни кода

法国宣传demo权限放开

dengsixing пре 2 месеци
родитељ
комит
54c2891bc6
1 измењених фајлова са 19 додато и 9 уклоњено
  1. 19 9
      src/main/java/com/fdkankan/scene/Interceptor/CheckPermitAspect.java

+ 19 - 9
src/main/java/com/fdkankan/scene/Interceptor/CheckPermitAspect.java

@@ -89,7 +89,7 @@ public class CheckPermitAspect {
 	@Before("checkCooperationPermit()")
 	public void doBefore(JoinPoint joinPoint) throws Exception {
 		HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
-
+		String requestURI = request.getRequestURI();
 		String num = WebUtil.getParameter("num", joinPoint, request);
 		if(StrUtil.isEmpty(num)){
 			throw new BusinessException(ErrorCode.PARAM_REQUIRED);
@@ -97,7 +97,8 @@ public class CheckPermitAspect {
 
 		// 读取session中的用户
 		SSOUser user = ssoLoginHelper.getSsoUser(request.getHeader("token"));
-		if(CollUtil.isEmpty(demoSceneNums) || !demoSceneNums.contains(num)){//非demo场景,需要检验登录用户是否为空
+		boolean pass = this.demoScenePassPai(num, requestURI);
+		if(!pass){//非demo场景,需要检验登录用户是否为空
 			if(Objects.isNull(user)){
 				throw new BusinessException(ErrorCode.TOKEN_NOT_FOUND);
 			}
@@ -125,13 +126,9 @@ public class CheckPermitAspect {
 			}
 		}
 
-		if(CollUtil.isNotEmpty(demoSceneNums) && demoSceneNums.contains(num)){//这是一个demo场景,允许无条件打开编辑页,但是不允许提交数据
-			String requestURI = request.getRequestURI();
-			for (String demoAllowApi : demoAllowApis) {
-				if(requestURI.contains(demoAllowApi)){
-					return;
-				}
-			}
+		//这是一个demo场景,允许无条件打开编辑页,但是不允许提交数据
+		if(pass){
+			return;
 		}
 
 		//走到这里代表是用户账号密码登录,如果查到的场景的userid是空,证明相机解绑了,需要返回无权操作
@@ -152,4 +149,17 @@ public class CheckPermitAspect {
 
 	}
 
+	private boolean demoScenePassPai(String num, String uri){
+		//校验场景码是否是demo场景
+		if(CollUtil.isEmpty(demoSceneNums) && !demoSceneNums.contains(num)){
+			return false;
+		}
+		for (String demoAllowApi : demoAllowApis) {
+			if(uri.contains(demoAllowApi)){
+				return true;
+			}
+		}
+		return false;
+	}
+
 }