Browse Source

添加拦截器处理

yq 3 years ago
parent
commit
9c01db6e64

+ 5 - 0
fiveep-service/src/main/java/com/bizmatics/service/config/ResourcesConfig.java

@@ -1,6 +1,7 @@
 package com.bizmatics.service.config;
 
 
+import com.bizmatics.service.interceptor.CheckExecuteInterceptor;
 import com.bizmatics.service.interceptor.RepeatSubmitInterceptor;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.context.annotation.Bean;
@@ -22,6 +23,9 @@ public class ResourcesConfig implements WebMvcConfigurer
     @Autowired
     private RepeatSubmitInterceptor repeatSubmitInterceptor;
 
+    @Autowired
+    private CheckExecuteInterceptor checkExecuteInterceptor;
+
     @Override
     public void addResourceHandlers(ResourceHandlerRegistry registry)
     {
@@ -39,6 +43,7 @@ public class ResourcesConfig implements WebMvcConfigurer
     public void addInterceptors(InterceptorRegistry registry)
     {
         registry.addInterceptor(repeatSubmitInterceptor).addPathPatterns("/**");
+        registry.addInterceptor(checkExecuteInterceptor).addPathPatterns("/alarmPower/**");
     }
     /**
      * 跨域配置

+ 69 - 0
fiveep-service/src/main/java/com/bizmatics/service/interceptor/CheckExecuteInterceptor.java

@@ -0,0 +1,69 @@
+package com.bizmatics.service.interceptor;
+
+import com.bizmatics.common.core.bean.ApiResult;
+import com.bizmatics.common.core.exception.SystemErrorCode;
+import com.bizmatics.common.core.util.HttpUtils;
+import com.bizmatics.common.mvc.utils.ServletUtils;
+import com.bizmatics.common.spring.util.JsonUtils;
+import io.jsonwebtoken.Jwts;
+import io.jsonwebtoken.SignatureAlgorithm;
+import org.springframework.stereotype.Component;
+import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @author yq
+ * @date 2022/1/6 13:09
+ */
+@Component
+public class CheckExecuteInterceptor extends HandlerInterceptorAdapter {
+
+    private static final String PATH = "http://localhost:8082";
+
+    private static final String CHECK_URL = String.format("%s%s",PATH,"/check");
+
+    private static final String JWT_KEY = "U0JBUElKV1RkV2FuZzkyNjQ1NA==";
+
+    private static final List<String> INTERCEPT_LIST = new ArrayList<>();
+
+    @Override
+    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
+        Map<String,Object> map = new HashMap<>();
+        map.put("loginName","wj");
+        String token = createToken(map);
+        String wj = String.format("%s?token=%s", CHECK_URL, token);
+        boolean result;
+        try {
+            result = Boolean.parseBoolean(HttpUtils.get(wj, null));
+        }catch (Exception e){
+            result =  false;
+        }
+        if (!result){
+            ApiResult<Object> error = ApiResult.error(SystemErrorCode.SYS_SYSTEM_ERROR.getCode(), "系统异常请联系管理员");
+            ServletUtils.renderString(response, JsonUtils.toJson(error));
+            return false;
+        }else {
+            return super.preHandle(request, response, handler);
+        }
+    }
+
+    /**
+     * 从数据声明生成令牌
+     *
+     * @param claims 数据声明
+     * @return 令牌
+     */
+    private String createToken(Map<String, Object> claims)
+    {
+        String token = Jwts.builder()
+                .setClaims(claims)
+                .signWith(SignatureAlgorithm.HS512, JWT_KEY).compact();
+        return token;
+    }
+}