jwt, 过滤器, 拦截器

68 阅读2分钟

jwt:

image.png JWT全称JSON Web Token, 定义了一种简洁的、自包含的格式, 用于在通信双方以json数据格式安全的传输信息, 由三部分组成: (JWT令牌由三个部分组成,三个部分之间使用英文的点来分割)

    第一部分: Header(头), 记录令牌类型、签名算法。
    第二部分: Payload(有效载荷), 携带一些自定义信息、默认信息等。
    第三部分: Signature(签名), 防止Token被篡改、确保安全性。将header、payload, 并加入指定秘钥, 通过指定签名算法计算而来。

image.png 优点:

    1. 可扩展性: JWT的载荷部分可以自定义, 可以根据具体需求添加额外的用户信息, 实现灵活的身份验证和授权。
    2. 可靠性: JWT通过数字签名的方式保证了其完整性和真实性, 可以有效防止令牌被篡改或伪造。
    3. 安全性: JWT的签名过程使用了加密算法, 保证了令牌的安全性。同时, JWT的令牌是无状态的, 即服务端不需要令牌信息, 降低了安全风险。

jwt就是一个简单的字符串。可以在请求参数或者是请求头当中直接传递。

jwt令牌, 看似是一个随机的字符串, 但是我们是可以根据自身的需求在jwt令牌中存储自定义的数据内容。

jwt就是将原始的json数据格式进行了安全的封装, 这样可以直接基于jwt在通信双方安全的进行信息传输了。

过滤器:

image.png

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

使用了过滤器之后, 要想访问web服务器上的资源, 必须先经过滤器, 过滤器处理完毕之后, 才可以访问对应的资源。

拦截器

image.png

是一种动态拦截方法调用的机制, 类似于过滤器。

拦截器是Spring框架中提供的, 用来动态拦截控制器方法的执行。

拦截器的作用: 拦截请求, 在指定方法调用前后, 根据业务需要执行预先设定的代码。

过滤器与拦截器的区别:

接口规范不同: 过滤器需要实现Filter接口, 而拦截器需要实现HandlerInterceptor接口。

拦截范围不同: 过滤器Filter会拦截所有的资源, 而Interceptor只会拦截Spring环境中的资源。