jwt,过滤器,拦截器

58 阅读2分钟

JWT令牌

JWT全称 JSON Web Token(JSON Web 令牌)

jwt对原本的json格式进行了封装,用于在各方之间安全地将信息作为JSON对象传输.

  • JWT优点

简洁:可以通过URL,POST参数或者在HTTP header发送,数据量小,传输速度也很快.

自包含:负载中包含了所有用户所需要的信息,避免了多次查询数据库.

  • JWT的组成

jwt由三部分组成

  • 第一部分:Header(头), 记录令牌类型、签名算法等。

  • 第二部分:Payload(有效载荷),个人非敏感数据、默认信息等。

  • 第三部分:Signature(签名) Base64

三部分由点隔开

过滤器

Filter表示过滤器,是 JavaWeb三大组件(Servlet、Filter、Listener)之一。

过滤器可以拦截请求,从而实现一些特殊的功能.

过滤器的基本操作步骤:

1.定义一个类,实现Filter接口, 重写抽象方法

2.在类上加上@WebFilter注解 定义urlPatternss属性为要拦截的路径

3.引导类上加 @ServletComponentScan 开启Servlet组件支持

过滤器当中我们拦截到了请求之后,如果希望继续访问后面的web资源,就要执行放行操作,放行就是调用 FilterChain对象当中的doFilter()方法,在调用doFilter()这个方法之前所编写的代码属于放行之前的逻辑。

拦截路径:
 拦截具体路径     /login
 目录拦截         /emps/*
 拦截所有         /*
过滤器链:

在web服务器中定义了两个过滤器,就形成了一个过滤器链.

过滤器链在执行的时候会一个一个过滤器执行,先执行第一个过滤器,放行之后来到第二个过滤器,再放行再向后直到最后一个过滤器放行,再访问资源,访问资源过后回从后往前执行过滤器放行之后的逻辑代码,直到第一个过滤器执行完放行后代码,再给浏览器响应. image.png

拦截器

  • 是一种动态拦截方法调用的机制,类似于过滤器。
  • 拦截器是Spring框架中提供的,用来动态拦截控制器方法的执行。
  • 拦截器的作用:拦截请求,在指定方法调用前后,根据业务需要执行预先设定的代码。
拦截器的实现步骤:

1.定义一个拦截器类,实现HandlerInterceptor接口并实现所有抽象方法.

2.将拦截器交给Spring管理.

3.增加一个配置类,实现 WebMvcConfigurer接口,重写 addInterceptors方法,在内部注册拦截器。

  • preHandle方法:目标资源方法执行前执行。 返回true:放行 返回false:不放行
  • postHandle方法:目标资源方法执行后执行
  • afterCompletion方法:视图渲染完毕后执行,最后执行.