JWT(json Web Token)
组成结构;1:头(Header):算法,类型
2.载荷(Pavload):存放个人非敏感数据和内置数据(如用户Id,过期时间)
3.签名(Singnature)Base(头,载荷,密钥),对比前俩部分的签名,防止数据篡改。
注意:密钥不能暴露,否则就不安全了。
实现流程:
1.用户登录成功后,服务器生成JWT并返回给客户端。
2.客户端将JWT存储在本地(cookie),并在后续请求中通过Authorization头部携带。
3.服务器验证JWT是否在有限期,验证通过之后根据Payload中的用户信息处理请求,否则返回401或403错误。
过滤器 (Filter)
过滤器:WEB的三大规范之一(接口)
Servlet,Filter,Listener
特点:
1.对所有请求生效(包括静态资源)
2.基于回调方法
3.依赖于Servlet容器(如Tomcat)
常见用途:日志记录,权限校验(如检查JWT)
实现步骤:
1.创建一个类,实现Filter接口,重写抽象方法
2.在类上标记@WebFilter(要拦截的路径)
3.启动类加@ServletComponentScan
执行流程:过滤前的代码->放行(目标资源)->过滤后的代码
拦截器(Interceptor)
1.拦截器:Spring的组件,要实现HandlerInterreptor接口
实现步骤:
1.创建一个类,实现HandlerInterreptor接口,重写抽象方法
2.将拦截器交给Spring管理
3.增加一个配置类,实现WebMvConfigurer接口,重写addInterceptors方法,在内部注册拦截器
执行流程:preHandle方法中的->放行(目标资源)->postHandle方法->afterCompletion方法
特点:1.仅对于Controller层请求生效。
2.依赖于框架(Spring)
3.可以获取方法上下文(参数,返回值)
常见用途:权限控制,参数校验,日志记录
实际应用建议:
1.如需处理所有请求(包括静态资源),选择过滤器。
2.若需精细控制Controller方法或访问Spring上下文,选择拦截器。
3.JWT校验通常结合俩者;
5180

被折叠的 条评论
为什么被折叠?



