分布式会话拦截器2 - 会话判断

@Autowired
private RedisOperator redisOperator;
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {

//        System.out.println("进入到拦截器,被拦截。。。");

	String userId = request.getHeader("headerUserId");
	String userToken = request.getHeader("headerUserToken");

	if (StringUtils.isNotBlank(userId) && StringUtils.isNotBlank(userToken)) {
		String uniqueToken = redisOperator.get(REDIS_USER_TOKEN + ":" + userId);
		if (StringUtils.isBlank(uniqueToken)) {
//                System.out.println("请登录...");
			returnErrorResponse(response, JSONResult.errorMsg("请登录..."));
			return false;
		} else {
			if (!uniqueToken.equals(userToken)) {
//                    System.out.println("账号在异地登录...");
				returnErrorResponse(response, JSONResult.errorMsg("账号在异地登录..."));
				return false;
			}
		}
	} else {
//            System.out.println("请登录...");
		returnErrorResponse(response, JSONResult.errorMsg("请登录..."));
		return false;
	}


	/**
	 * false: 请求被拦截,被驳回,验证出现问题
	 * true: 请求在经过验证校验以后,是OK的,是可以放行的
	 */
	return true;
}
/**
 * 注册拦截器
 * @param registry
 */
@Override
public void addInterceptors(InterceptorRegistry registry) {

	registry.addInterceptor(userTokenInterceptor())
			.addPathPatterns("/hello")
			.addPathPatterns("/shopcart/add")
			.addPathPatterns("/shopcart/del")
			.addPathPatterns("/address/list")
			.addPathPatterns("/address/add")
			.addPathPatterns("/address/update")
			.addPathPatterns("/address/setDefalut")
			.addPathPatterns("/address/delete")
			.addPathPatterns("/orders/*")
			.addPathPatterns("/center/*")
			.addPathPatterns("/userInfo/*")
			.addPathPatterns("/myorders/*")
			.addPathPatterns("/mycomments/*")
			.excludePathPatterns("/myorders/deliver")
			.excludePathPatterns("/orders/notifyMerchantOrderPaid");

	WebMvcConfigurer.super.addInterceptors(registry);
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值