首页 > 其他分享 >109、商城业务---消息队列---订单登录拦截

109、商城业务---消息队列---订单登录拦截

时间:2023-02-20 13:11:18浏览次数:33  
标签:登录 队列 servlet --- 109 gulimall import com public

我们希望订单服务下的所有页面都必须登陆后才能访问,所以我们使用拦截器来实现
1、编写我们自己的拦截器

package com.gulimall.order.interceptor;

import com.gulimall.common.constant.AuthServerConstant;
import com.gulimall.common.vo.MemberRespVo;
import org.springframework.web.servlet.HandlerInterceptor;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class LoginUserInterceptor implements HandlerInterceptor {
    public static ThreadLocal<MemberRespVo> threadLocal = new ThreadLocal<>();

    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
        MemberRespVo attribute = (MemberRespVo) request.getSession().getAttribute(AuthServerConstant.LOGIN_USER);

        if (attribute == null){ //未登录
            request.getSession().setAttribute("msg", "请先进行登录!");
            response.sendRedirect("http://auth.gulimall.com/login.html");
            return false;
        }else { //已登录
            threadLocal.set(attribute);//放入threadLocal可以通用
            return true;
        }
    }
}

2、把我们的拦截器加入Spring中

package com.gulimall.order.config;

import com.gulimall.order.interceptor.LoginUserInterceptor;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

@Configuration
public class GulimallWebConfig implements WebMvcConfigurer {
    @Override
    public void addInterceptors(InterceptorRegistry registry) {
        registry.addInterceptor(new LoginUserInterceptor()).addPathPatterns("/**"); //加入我们自己写的拦截器
    }
}

3、测试即可
如果未登录,就访问订单服务下的页面,就会跳转到登录页面。

标签:登录,队列,servlet,---,109,gulimall,import,com,public
From: https://www.cnblogs.com/morehair/p/17136996.html

相关文章

  • 项目一众筹网03_5_RBAC(权限管理)模型-概述
    系列文章目录文章目录​​系列文章目录​​​​18-RBAC模型-概述​​​​19-RBAC模型-多对多在数据库的表示​​​​20-RBAC模型-RBAC0~3​​​​21-RBAC模型-RBAC模型的数......
  • Python__26--文件操作
    1文件编码格式设定程序开头#encoding=gbk(编码格式)2文件的读写原理Python操作文件>打开或新建文件>读写文件>关闭资源解释器运行py文件使用操作系统资源对硬盘中......
  • SpringBoot脚手架项目002-005.Spring 约定编程、Spring AOP
    SpringBoot脚手架项目文章目录文章目录​​SpringBoot脚手架项目文章目录​​​​Spring约定编程​​​​约定编程到底是什么​​​​SpringAOP​​Spring约定编程为什么要......
  • SpringBoot脚手架项目002-004.Spring IOC_权限管理系统_Spring:什么是IOC、Spring Bea
    SpringBoot脚手架项目002__权限管理系统文章目录​​SpringBoot脚手架项目002__权限管理系统​​​​前言​​​​依赖注入的例子​​​​最终我们是怎么来去克服这种问题的......
  • ChatGPT:HuggingFace使用GPT-2模型并额外语料训练
    当您想调用HuggingFace的GPT-2模型并增加一些额外的训练语料时,您可以按照以下步骤进行操作:安装HuggingFaceTransformers库。您可以使用pip或conda在终端或命令提示......
  • C语言课程设计题目(任选一题)[2023-02-20]
    C语言课程设计题目(任选一题)[2023-02-20]C语言课程设计题目(任选一题)课程设计题目(一):用C语言实现一个图书管理系统,书的信息包括:书名,作者,价格,页数。要求用单链表实现......
  • Not Adding (CF2D) (基底转化,两两操作->多个操作,+)
      思路:题目信息:转化:选出子序列求一个gcd,很关键基底转化:枚举1-1e6的数,看能不能产生这个数, 在利用那个那个的性质即可,贪心让所有合理的数gcd起来是不......
  • 指针进阶2 - 函数
    1.函数指针函数名VS&函数名对于数组而言,数组名=首元素地址,&数组名=整个数组的地址那么函数名和&函数名等于什么#include<stdio.h>voidtest(){ ;}intmain()......
  • ESXi 主机补丁升级(OpenSLP 堆溢出漏洞CVE-2021-21974)
    ESXi主机补丁升级(OpenSLP堆溢出漏洞CVE-2021-21974)一、环境说明漏洞名称:VMwareESXiOpenSLP堆溢出漏洞CVE-2021-21974漏洞危害:组件名称:VMwareESXi影响范围:VMware......
  • K8S-Pod的yaml文件详解
    一、Pod-yaml文件详解1apiVersion:v1#必选,版本号,例如v12kind:Pod#必选,Pod3metadata:#必选,元数据4name:st......