|
@@ -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;
|
|
|
+ }
|
|
|
+}
|