|
@@ -1,56 +1,57 @@
|
|
|
-package com.nokia.financeapi.config.web;
|
|
|
-
|
|
|
-import com.google.gson.Gson;
|
|
|
-import com.google.gson.reflect.TypeToken;
|
|
|
-import com.nokia.financeapi.common.R;
|
|
|
-import com.nokia.financeapi.utils.AESUtil;
|
|
|
-import lombok.NoArgsConstructor;
|
|
|
-import lombok.extern.slf4j.Slf4j;
|
|
|
-import org.springframework.util.StringUtils;
|
|
|
-import org.springframework.web.servlet.HandlerInterceptor;
|
|
|
-
|
|
|
-import javax.servlet.http.HttpServletRequest;
|
|
|
-import javax.servlet.http.HttpServletResponse;
|
|
|
-import java.io.IOException;
|
|
|
-import java.util.Map;
|
|
|
-
|
|
|
-/**
|
|
|
- * web登录拦截
|
|
|
- */
|
|
|
-@Slf4j
|
|
|
-@NoArgsConstructor
|
|
|
-public class TokenInterceptor implements HandlerInterceptor {
|
|
|
- @Override
|
|
|
- public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
|
|
|
- String token = request.getHeader("Token");
|
|
|
- log.info("token: {}", token);
|
|
|
- if (!StringUtils.hasText(token)) {
|
|
|
- return forbidden(response);
|
|
|
- }
|
|
|
- if ("test_hebei".equals(token)) {
|
|
|
- return true;
|
|
|
- }
|
|
|
- try {
|
|
|
- String decodeToken = AESUtil.decrypt(token);
|
|
|
- log.info("decodeToken: {}", decodeToken);
|
|
|
- Gson gson = new Gson();
|
|
|
- Map<String, String> map = gson.fromJson(decodeToken, new TypeToken<Map<String, String>>() {
|
|
|
- }.getType());
|
|
|
- if (!"FINANCE".equals(map.get("APP_ID")) || !StringUtils.hasText(map.get("LOGIN_ID"))) {
|
|
|
- return forbidden(response);
|
|
|
- }
|
|
|
- } catch (Exception e) {
|
|
|
- log.warn("token解密失败: {}", token);
|
|
|
- return forbidden(response);
|
|
|
- }
|
|
|
- return true;
|
|
|
- }
|
|
|
-
|
|
|
- private boolean forbidden(HttpServletResponse response) throws IOException {
|
|
|
- response.setCharacterEncoding("UTF-8");
|
|
|
- response.setContentType("application/json; charset=utf-8");
|
|
|
- byte[] bytes = new Gson().toJson(R.error().code(403).message("没有权限访问")).getBytes();
|
|
|
- response.getOutputStream().write(bytes);
|
|
|
- return false;
|
|
|
- }
|
|
|
-}
|
|
|
+//package com.nokia.financeapi.config.web;
|
|
|
+//
|
|
|
+//import com.google.gson.Gson;
|
|
|
+//import com.google.gson.reflect.TypeToken;
|
|
|
+//import com.nokia.financeapi.common.R;
|
|
|
+//import com.nokia.financeapi.utils.AESUtil;
|
|
|
+//import lombok.NoArgsConstructor;
|
|
|
+//import lombok.extern.slf4j.Slf4j;
|
|
|
+//import org.springframework.util.StringUtils;
|
|
|
+//import org.springframework.web.servlet.HandlerInterceptor;
|
|
|
+//
|
|
|
+//import javax.servlet.http.HttpServletRequest;
|
|
|
+//import javax.servlet.http.HttpServletResponse;
|
|
|
+//import java.io.IOException;
|
|
|
+//import java.util.Map;
|
|
|
+//
|
|
|
+///**
|
|
|
+// * web登录拦截
|
|
|
+// */
|
|
|
+//@Slf4j
|
|
|
+//@NoArgsConstructor
|
|
|
+//public class TokenInterceptor implements HandlerInterceptor {
|
|
|
+// @Override
|
|
|
+// public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
|
|
|
+// // todo: 记录日志
|
|
|
+// String token = request.getHeader("Token");
|
|
|
+// log.info("token: {}", token);
|
|
|
+// if (!StringUtils.hasText(token)) {
|
|
|
+// return forbidden(response);
|
|
|
+// }
|
|
|
+// if ("test_hebei".equals(token)) {
|
|
|
+// return true;
|
|
|
+// }
|
|
|
+// try {
|
|
|
+// String decodeToken = AESUtil.decrypt(token);
|
|
|
+// log.info("decodeToken: {}", decodeToken);
|
|
|
+// Gson gson = new Gson();
|
|
|
+// Map<String, String> map = gson.fromJson(decodeToken, new TypeToken<Map<String, String>>() {
|
|
|
+// }.getType());
|
|
|
+// if (!"FINANCE".equals(map.get("APP_ID")) || !StringUtils.hasText(map.get("LOGIN_ID"))) {
|
|
|
+// return forbidden(response);
|
|
|
+// }
|
|
|
+// } catch (Exception e) {
|
|
|
+// log.warn("token解密失败: {}", token);
|
|
|
+// return forbidden(response);
|
|
|
+// }
|
|
|
+// return true;
|
|
|
+// }
|
|
|
+//
|
|
|
+// private boolean forbidden(HttpServletResponse response) throws IOException {
|
|
|
+// response.setCharacterEncoding("UTF-8");
|
|
|
+// response.setContentType("application/json; charset=utf-8");
|
|
|
+// byte[] bytes = new Gson().toJson(R.error().code(403).message("没有权限访问")).getBytes();
|
|
|
+// response.getOutputStream().write(bytes);
|
|
|
+// return false;
|
|
|
+// }
|
|
|
+//}
|