Procházet zdrojové kódy

新增演示环境组织系统管理接口增删改操作

hubin před 1 rokem
rodič
revize
fd3f75a509

+ 25 - 0
src/main/java/com/aizuda/boot/config/BlockHandlerInterceptor.java

@@ -0,0 +1,25 @@
+package com.aizuda.boot.config;
+
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletResponse;
+import org.springframework.web.servlet.HandlerInterceptor;
+
+/**
+ * 方法阻断拦截器,禁止演示非法操作
+ *
+ * @author jobob
+ * @since 2022-01-03
+ */
+public class BlockHandlerInterceptor implements HandlerInterceptor {
+
+    @Override
+    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
+        String uri = request.getRequestURI();
+        if (uri.contains("/create") || uri.contains("/update") || uri.contains("/delete")) {
+            response.setStatus(HttpServletResponse.SC_FORBIDDEN);
+            response.getWriter().write("Access forbidden in demo environment");
+            return false;
+        }
+        return true;
+    }
+}

+ 0 - 29
src/main/java/com/aizuda/boot/config/BlockMethodHandlerInterceptor.java

@@ -1,29 +0,0 @@
-package com.aizuda.boot.config;
-
-import com.aizuda.core.api.ApiAssert;
-import jakarta.servlet.http.HttpServletRequest;
-import jakarta.servlet.http.HttpServletResponse;
-import org.springframework.web.servlet.AsyncHandlerInterceptor;
-
-import java.util.Objects;
-
-/**
- * 方法阻断拦截器,禁止演示非法操作
- *
- * @author jobob
- * @since 2022-01-03
- */
-public class BlockMethodHandlerInterceptor implements AsyncHandlerInterceptor {
-
-    @Override
-    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
-        ApiAssert.fail(!Objects.equals("OPTIONS", request.getMethod())
-                        && !Objects.equals("GET", request.getMethod())
-                        && !request.getRequestURI().contains("/page")
-                        && !request.getRequestURI().contains("/monitor")
-                        && !request.getRequestURI().contains("/list-tree")
-                        && !request.getRequestURI().contains("/login/system"),
-                "演示模式无法执行该操作!");
-        return true;
-    }
-}

+ 24 - 3
src/main/java/com/aizuda/boot/config/BootConfigurer.java

@@ -5,11 +5,19 @@
  */
 package com.aizuda.boot.config;
 
+import jakarta.annotation.Resource;
+import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
+import org.springframework.core.env.Environment;
 import org.springframework.web.bind.annotation.ControllerAdvice;
+import org.springframework.web.servlet.LocaleResolver;
 import org.springframework.web.servlet.config.annotation.CorsRegistry;
 import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
 import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
+import org.springframework.web.servlet.i18n.CookieLocaleResolver;
+import org.springframework.web.servlet.i18n.LocaleChangeInterceptor;
+
+import java.util.Objects;
 
 
 /**
@@ -21,12 +29,25 @@ import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
 @ControllerAdvice
 @Configuration
 public class BootConfigurer implements WebMvcConfigurer {
+    @Resource
+    private Environment environment;
+
+    @Bean
+    public LocaleResolver localeResolver() {
+        CookieLocaleResolver cookieLocaleResolver = new CookieLocaleResolver();
+        // 多语言 cookie 名称设置
+        cookieLocaleResolver.setCookieName("locale");
+        return cookieLocaleResolver;
+    }
 
     @Override
     public void addInterceptors(InterceptorRegistry registry) {
-//        BlockMethodHandlerInterceptor interceptor = new BlockMethodHandlerInterceptor();
-//        InterceptorRegistration registration = registry.addInterceptor(interceptor);
-//        registration.addPathPatterns("/**");
+        // 演示环境阻止执行拦截器
+        if (Objects.equals("pro", environment.getProperty("spring.profiles.active"))) {
+            registry.addInterceptor(new BlockHandlerInterceptor()).addPathPatterns("/sys/**");
+        }
+        // i18n 多语言拦截处理器
+        registry.addInterceptor(new LocaleChangeInterceptor()).addPathPatterns("/**");
     }
 
     @Override

+ 0 - 28
src/main/java/com/aizuda/boot/config/LocaleMvcConfigurer.java

@@ -1,28 +0,0 @@
-package com.aizuda.boot.config;
-
-
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.web.servlet.LocaleResolver;
-import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
-import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
-import org.springframework.web.servlet.i18n.CookieLocaleResolver;
-import org.springframework.web.servlet.i18n.LocaleChangeInterceptor;
-
-@Configuration
-public class LocaleMvcConfigurer implements WebMvcConfigurer {
-
-    @Bean
-    public LocaleResolver localeResolver() {
-        CookieLocaleResolver cookieLocaleResolver = new CookieLocaleResolver();
-        // 多语言 cookie 名称设置
-        cookieLocaleResolver.setCookieName("locale");
-        return cookieLocaleResolver;
-    }
-
-    @Override
-    public void addInterceptors(InterceptorRegistry registry) {
-        // i18n 多语言拦截处理器
-        registry.addInterceptor(new LocaleChangeInterceptor()).addPathPatterns("/**");
-    }
-}