全局拦截 请求头

This commit is contained in:
2024-04-03 18:39:30 +08:00
parent 56c034aff8
commit a07b70d86c
2 changed files with 98 additions and 98 deletions

View File

@@ -67,43 +67,43 @@ public class LoginFilter implements Filter {
chain.doFilter(req, resp); chain.doFilter(req, resp);
return; return;
} }
String environment = request.getHeader("environment"); // String environment = request.getHeader("environment");
//token校验目前只对app生效 // //token校验目前只对app生效
if (StringUtils.isNotBlank(environment) || !environment.equals("app")) { // if (StringUtils.isNotBlank(environment) || !environment.equals("app")) {
chain.doFilter(req, resp); // chain.doFilter(req, resp);
return; // return;
} // }
// 判断用户TOKEN是否存在 // // 判断用户TOKEN是否存在
String token = request.getHeader("token"); // String token = request.getHeader("token");
if (StringUtils.isBlank(token)) { // if (StringUtils.isBlank(token)) {
Result result = new Result(CodeEnum.TOKEN_EXEIST); // Result result = new Result(CodeEnum.TOKEN_EXEIST);
String jsonString = JSONObject.toJSONString(result); // String jsonString = JSONObject.toJSONString(result);
JSONObject jsonObject = JSONObject.parseObject(jsonString, JSONObject.class); // JSONObject jsonObject = JSONObject.parseObject(jsonString, JSONObject.class);
response.getWriter().print(jsonObject); // response.getWriter().print(jsonObject);
response.getWriter().flush();//流里边的缓存刷出 // response.getWriter().flush();//流里边的缓存刷出
return; // return;
} // }
//获取当前登录人的用户id // //获取当前登录人的用户id
String loginName = TokenUtil.parseParamFromToken(token, "userId").toString(); // String loginName = TokenUtil.parseParamFromToken(token, "userId").toString();
//获取redis中的token // //获取redis中的token
String message = redisUtil.getMessage(RedisCst.ONLINE_APP_USER.concat(loginName)); // String message = redisUtil.getMessage(RedisCst.ONLINE_APP_USER.concat(loginName));
if (StringUtils.isBlank(message)) { // if (StringUtils.isBlank(message)) {
Result result = new Result(CodeEnum.TOKEN_EXPIRED); // Result result = new Result(CodeEnum.TOKEN_EXPIRED);
String jsonString = JSONObject.toJSONString(result); // String jsonString = JSONObject.toJSONString(result);
JSONObject jsonObject = JSONObject.parseObject(jsonString, JSONObject.class); // JSONObject jsonObject = JSONObject.parseObject(jsonString, JSONObject.class);
response.getWriter().print(jsonObject); // response.getWriter().print(jsonObject);
response.getWriter().flush();//流里边的缓存刷出 // response.getWriter().flush();//流里边的缓存刷出
return; // return;
} // }
String redisToken = JSON.parseObject(message).getString("token"); // String redisToken = JSON.parseObject(message).getString("token");
if (!token.equals(redisToken)) { // if (!token.equals(redisToken)) {
Result result = new Result(CodeEnum.TOKEN_EXPIRED); // Result result = new Result(CodeEnum.TOKEN_EXPIRED);
String jsonString = JSONObject.toJSONString(result); // String jsonString = JSONObject.toJSONString(result);
JSONObject jsonObject = JSONObject.parseObject(jsonString, JSONObject.class); // JSONObject jsonObject = JSONObject.parseObject(jsonString, JSONObject.class);
response.getWriter().print(jsonObject); // response.getWriter().print(jsonObject);
response.getWriter().flush();//流里边的缓存刷出 // response.getWriter().flush();//流里边的缓存刷出
return; // return;
} // }
chain.doFilter(req, resp); chain.doFilter(req, resp);
} }

View File

@@ -1,61 +1,61 @@
package com.chaozhanggui.system.cashierservice.config; //package com.chaozhanggui.system.cashierservice.config;
//
import com.chaozhanggui.system.cashierservice.redis.RedisCst; //import com.chaozhanggui.system.cashierservice.redis.RedisCst;
import com.chaozhanggui.system.cashierservice.redis.RedisUtil; //import com.chaozhanggui.system.cashierservice.redis.RedisUtil;
import com.chaozhanggui.system.cashierservice.sign.CodeEnum; //import com.chaozhanggui.system.cashierservice.sign.CodeEnum;
import lombok.extern.slf4j.Slf4j; //import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils; //import org.apache.commons.lang3.StringUtils;
import org.aspectj.lang.ProceedingJoinPoint; //import org.aspectj.lang.ProceedingJoinPoint;
import org.aspectj.lang.annotation.Around; //import org.aspectj.lang.annotation.Around;
import org.aspectj.lang.annotation.Aspect; //import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Pointcut; //import org.aspectj.lang.annotation.Pointcut;
import org.springframework.beans.factory.annotation.Autowired; //import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component; //import org.springframework.stereotype.Component;
import com.chaozhanggui.system.cashierservice.sign.Result; //import com.chaozhanggui.system.cashierservice.sign.Result;
import org.springframework.web.context.request.RequestContextHolder; //import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes; //import org.springframework.web.context.request.ServletRequestAttributes;
//
import javax.servlet.http.HttpServletRequest; //import javax.servlet.http.HttpServletRequest;
import java.util.Objects; //import java.util.Objects;
//
/** ///**
* 方法调用统一切面处理 // * 方法调用统一切面处理
*/ // */
@Aspect //@Aspect
@Component //@Component
@Slf4j //@Slf4j
public class AppApiMethodAspect { //public class AppApiMethodAspect {
//
@Autowired // @Autowired
RedisUtil redisUtil; // RedisUtil redisUtil;
//
@Pointcut("execution(public * (" + // @Pointcut("execution(public * (" +
"com.chaozhanggui.system.cashierservice.controller.* " + // "com.chaozhanggui.system.cashierservice.controller.* " +
").*(..))") // ").*(..))")
public void pkg() { // public void pkg() {
} // }
//
@Around("pkg()") // @Around("pkg()")
public Object around(ProceedingJoinPoint pjp) throws Throwable { // public Object around(ProceedingJoinPoint pjp) throws Throwable {
HttpServletRequest request = ((ServletRequestAttributes) Objects.requireNonNull(RequestContextHolder.getRequestAttributes())).getRequest(); // HttpServletRequest request = ((ServletRequestAttributes) Objects.requireNonNull(RequestContextHolder.getRequestAttributes())).getRequest();
HttpServletRequest req = request; // HttpServletRequest req = request;
//version版本号 // //version版本号
//type: ios; android; // //type: ios; android;
//environment:app;wx // //environment:app;wx
String environment = req.getHeader("environment"); //// String environment = req.getHeader("environment");
if (StringUtils.isNotBlank(environment) && environment.equals("app")) { //// if (StringUtils.isNotBlank(environment) && environment.equals("app")) {
String type = req.getHeader("type"); //// String type = req.getHeader("type");
String version = req.getHeader("version"); //// String version = req.getHeader("version");
//LDBL_APP_VERSION:ios:version 存在即需要强制更新 //// //LDBL_APP_VERSION:ios:version 存在即需要强制更新
String message = redisUtil.getMessage(RedisCst.LDBL_APP_VERSION + type + ":" + version); //// String message = redisUtil.getMessage(RedisCst.LDBL_APP_VERSION + type + ":" + version);
if (StringUtils.isNotBlank(message)) { //// if (StringUtils.isNotBlank(message)) {
return Result.success(CodeEnum.UPGRADE_REQUIRED, message); //// return Result.success(CodeEnum.UPGRADE_REQUIRED, message);
} //// }
} //// }
//
// 执行被拦截的方法 // // 执行被拦截的方法
Object result = pjp.proceed(); // Object result = pjp.proceed();
return result; // return result;
//
} // }
} //}