范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文
国学影视

springBoot自定义注解实现登录拦截

  流程图
  逻辑流程:  1.登录成功后,后台会生成一个token并返回给客户端,客户端需要保存token。在调用其他请求时,携带此token,到请求头中或者参数里。
  2.后台通过拦截器,拦截到请求后,判断请求的方法或方法所属类 中是否存在 我们 标注的 登录校验注解,如果存在,表示当前请求需要校验用户是否登录,
  3.去请求头里获取 token 数据,拿到token 从redis 校验、如果正确,则放行请求, 如果找不到token 或者校验 token已过期 ,则向外抛出异常。
  代码实现:
  定义注解
  @Retention(RetentionPolicy.RUNTIME) @Target({ElementType.METHOD}) @Documented public @interface Login { }
  定义拦截器:package com.joy.demo.intercept;   import com.joy.demo.util.RedisUtil; import org.springframework.stereotype.Component; import org.springframework.util.StringUtils; import org.springframework.web.method.HandlerMethod; import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;   import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.PrintWriter; import java.lang.reflect.Method;   /** * User: Joy * Description: * Date: 2022-11-01 18:31 */ @Component public class LoginInterceptor extends HandlerInterceptorAdapter {    @Resource  public RedisUtil redisUtil;    public boolean preHandle(HttpServletRequest request  , HttpServletResponse response  , Object handler) throws Exception {    HandlerMethod handlerMethod = (HandlerMethod) handler;  Method method = handlerMethod.getMethod();  Login login = (Login) method.getAnnotation(Login.class);  if (null == login) {  // 放行,不需要登录token  return true;  }  String token = request.getHeader("token");  if (StringUtils.isEmpty(token)) {  sendJsonMessage(response, "token不能为空,请重新登录!");  return false;  }    boolean existFlag = redisUtil.exists("token-" + token);  if(!existFlag){  sendJsonMessage(response, "token已过期或不正确,请重新登录!");  return false;  }    return true;  }    public static void sendJsonMessage(HttpServletResponse response, String body) throws Exception {  response.setContentType("application/json; charset=utf-8");  PrintWriter writer = response.getWriter();  writer.print(body);  writer.close();  response.flushBuffer();  }   }
  配置拦截哪些地址:package com.joy.demo.config;   import com.joy.demo.intercept.LoginInterceptor; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Configuration; import org.springframework.web.servlet.config.annotation.InterceptorRegistry; import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;   /** * User: Joy * Description: * Date: 2022-11-01 19:48 */ @Configuration public class WebMvcConfigure extends WebMvcConfigurerAdapter {  @Autowired  private LoginInterceptor loginInterceptor;    public WebMvcConfigure() {  }    public void addInterceptors(InterceptorRegistry registry) {  registry.addInterceptor(this.loginInterceptor).addPathPatterns(new String[]{"/**"});  super.addInterceptors(registry);  } }
  登录接口(模拟生成token,这里直接传入),下单接口(依赖token,这里加上 @Login校验注解) // 登录 set token // @Login  @GetMapping("/login")  public String login(@RequestHeader String token){  return userService.login(token);  }    // 下单 需要验证token  @Login  @GetMapping("/doOrder")  public String doOrder(@RequestHeader String token){  return userService.doOrder(token);  }
  sevice类@Resource private RedisUtil redisUtil; //这里参考 springBoot引入redis章节   @Override public String login(String token) {  // 这里假定用户 密码登录成功,开始set token  String tokenKey = token;  String tokenValue = "用户信息jsonStr(用户id 等等)";  redisUtil.set(tokenKey, tokenValue, 600L, TimeUnit.SECONDS);  return "登录成功,set token ok, token key:" + tokenKey + " tokenValue :" + tokenValue; }   @Override public String doOrder(String token) {  return ("pass login validate"); }
  测试:
  Step1 postman 模拟用户登录,设置token key值 abc
  此时redis中 key,value值
  下单接口 使用 token key,显示 验证通过
  修改token key值,显示 "token不正确"
  ok,done [憨笑]

苹果发布iPhone14系列有卫星连接功能2年免费(图片JustinSullivanGettyImages)9月7日(周三)苹果公司举行了一年一度的秋季新品发布会,推出了四款重量级产品,iPhone14系列,AppleWatchS可见部分长约10米!汉江出现不明水生物,在水面呈S形蜿蜒向前韩国汉江发现不明水生物,长度约10米,这不禁让大家想起16年前的那部电影汉江水怪。人类的发展进化历程实际上就是不断认识自然环境的过程,在这个认识的过程中有些事物我们可以自然地接受,到底怎样买手机最实惠?手机购买消费,在许多一般人的日常消费里属于一个大项支出,从数据统计看,3G4G时代,大多数人的换机周期都在2428个月,但是现在随着手机产业的创新越来越没有看点,手机的硬件工艺和配灵动岛卫星通信,iPhone14这次升级够看吗?国产品牌似乎有话说智能手机的交互功能,因为iPhone14Pro的灵动岛上升到一个新的高度。正如苹果秋季新品发布会现场展示所见,iPhone14Pro把弹窗动画与前摄融合在一起,显示通知短信音乐状态被互联网大厂裁员后从裁员的阵痛中走出来,最先改变的是心态。近两年,互联网公司的底色从高速发展转为降本增效,一批大厂人随着公司业务调整离开。据财经天下不完全统计,仅去年年底,就有19家互联网公司被传裁普通版极速版和专业版都有什么区别?现如今是一个互联网高度发达的年代,移动互联网也在这10年左右的时间闪电般的速度发展起来,现已进入5G时代,慢慢将进入万物互联的时代。移动互联网的发展也间接的带动了智能手机的发展,当空腹吃苹果会损伤肠胃?有人称空腹吃苹果会伤肠胃,甚至还容易形成不溶解的复合物去堵塞肠胃。出现这样的结论,主要是因为草酸和单宁这两种物质。对于苹果等水果而言,其中的草酸含量很低,不足以引起轩然大波对于单宁极目锐评苹果98元一根挂绳引争议,它凭什么卖那么贵?极目新闻评论员屈旌苹果一根挂绳售价98元?明明可以抢,但还送了你一根绳子一年一度的苹果新品发布会落下帷幕,诸多引爆舆论的话题中,一根天价挂绳牵动了网友的吐槽欲,被评为智商税产品。(全国哪里的苹果最好吃?经评选,这4种苹果榜上有名,有你家乡吗苹果,是一种非常甜美的季节性水果,好吃且独特,受到了很多朋友的喜爱。如今正值秋季,苹果也迎来了成熟的时节。只需要再等上一两天,大量的新鲜苹果就会蜂拥而至,到时候,市场里超市里全部都官网被抢到瘫痪!苹果98元挂绳已缺货发货要等46周财经网科技9月11日讯,据苹果官网消息,上周苹果秋季发布会,苹果发布一系列新品。与往年一样,今年iPhone14系列预购同样火爆,9月9日晚由于抢购首批机型的人数太多,导致苹果中国新一轮大周期似乎已经开始细数今年的几轮大周期(年初的数字货币,数据中心,地产,基建,新能源汽车),不难发现这些大周期题材的共同点都是立足于宏观经济的逻辑背景下,同时连续消息面刺激,并且有短期无法证伪的预期
Pixel7发布后热度高涨让老外这么喜欢谷歌做对了什么最近,谷歌在海外发布了Pixel7系列手机。虽然是环大陆发布,但毕竟早已名声在外,国内手机圈对其也是有一定的关注的。最近海外还专门做了个热门手机前十榜单。由于谷歌日前发布了谷歌Pi30岁孙杨被曝与张豆豆低调结婚,媒体曝光新证据,疑似已同居最近消失已久的孙杨又有了新消息,有媒体爆料,孙杨疑似已经结婚,无名指上的婚戒格外显眼,而新娘就是体操女神张豆豆。一个是游泳健将,一个是体操女神,如果这事是真的话,那真是郎才女貌,天建议中老年人,多吃这5菜,叶酸含量高,无论有钱没钱秋季要多吃秋日生活打卡季中老年人年纪大了,要重视脑部健康,关爱人体的指挥官。中老年人年纪大了,就要补充叶酸,能够很好地预防心脑血管疾病思绪过多失眠老年缺血和老年痴呆等疾病,补充叶酸以食补为主清代人为什么喜欢写书法对联清代楹联书法在很大程度上担负着文人士子社会交往的重任,楹联书法嘱赠是文人士子社交比较高雅的一种方式。关于楹联书法嘱赠的社交隐喻,谷向阳先生论述曰题赠联也称交际联,是人们在社会交际和化整为零,辅导作业不烦心大家都说,辅导作业要有耐心,不要暴躁,不要打骂。耐心很重要,但当出现你等待娃儿停滞的情况,光有耐心停止前进也没有什么作用。昨天辅导幼儿园的囡囡写作业,只是很简单的一页太。我一直觉得精准定性处理借公务差旅之机违规旅游问题监督执纪要点对各种形式的公款旅游,应重点关注是否利用公款公权公物,并结合公务行程安排公务活动效果造成影响等方面综合判定。擅自改变公务行程借机公款旅游,以学习培训考察调研职工疗养招商在祁连的传统夜市,吃西北菜的本味我们的旅途从西宁开始。作为青海的省会,尤其是新城区一带,西宁的道路楼宇看上去与国内其他大城市并没有太大不同。我们走进西宁万达广场附近的一个购物中心,里面店铺的名称甚至排列顺序,都与南湖宾馆红色旅游新地标8月18日,由乌镇景区总规划师陈向宏团队领衔打造的嘉兴国宾级高端酒店南湖宾馆正式开业。西顿照明作为照明产品解决方案服务商,助力酒店顺利开业,共庆党百年华诞,打造嘉兴红色旅游地标项目切尔诺贝利的变异青蛙鲜绿色变黑色科学家黑色素在核辐射环境中有保护作用1986年发生在切尔诺贝利的核泄漏事故是人类历史上最严重的核灾难之一,其产生的核辐射对当地环境和人类产生了严重的影响。在事故发生的36年后,科学家在切尔诺贝利禁区发现了一种变异的黑苏州政府花百亿回购商品房,兜底背后的焦虑稳楼市是不是意味着稳楼价,这是一个根本性问题。苏州九月成交量暴涨,市场信心回归?一条统计数据,让人们对苏州楼市刮目相看。据克而瑞统计,今年9月,苏州商品住宅成交面积101万平方米,英国人来疆旅游竟获工签?每天摘葡萄吃羊肉串,治好了精神内耗就在这两天,一个充满喜感的微信群聊记录又刷爆很多网友的朋友圈。故事梗概就是近日,一位疑似来疆旅游且会写中文的英国网友因疫情被困原地,竟然获得了工作签证,每天过起了采摘葡萄,吃羊肉串