JWT由三部分组成,
第一部分:Header,记录令牌的类型、签名算法等。例如{“alg”:“HS256”,“type”:“jwt”}
第二部分:Payload(有效载荷),携带一些自定义信息,默认信息等。例如{“id”:“1”,“username”:“Tom”}
第三部分:Signture,防止Token被篡改、确保安全性。将header、payload,并加入指定密钥,通过指定签名算法计算而来。
应用场景:登录认证
1.登录成功后,生成令牌
2.后续每个请求,都要携带JWT令牌,系统在每次请求处理之前,先校验令牌,通过后再处理
解析JWT
登录成功后,会将JWT令牌存储在浏览器的本地存储。
在后续的每一次请求当中,都会将JWT令牌获取出来携带到服务端。
登录校验
1.过滤器Filter,javaweb三大组件(Servlet,Filter,Listener)之一
过滤器可以把对资源的请求拦截下来,从而实现一些特殊的功能
过滤器一般完成一些通用的操作,比如登录校验,统一编码处理,敏感字符处理等。
chain.doFilter(request,response) 放行操作,可以在放行前执行一些逻辑操作,以及放行后的逻辑
需要添加的配置
过滤器链:一个web应用中,可以配置多个过滤器,这多个过滤器就形成了一个过滤器链
顺序:注解配置的Filter,优先级是按照过滤器类名(字符串)的自然排序 例如:ABCDEFG
/------------------------------------------------------拦截器Interceptor-------------------------------------------/
概念:是一种动态拦截方法调用的机制,类似于过滤器。Spring框架中提供的,用来动态拦截控制器方法的执行。
作用:拦截请求,在指定的方法调用前后,根据业务需要执行预先设定的代码
1.定义拦截器,实现Handlerlnterceptor接口,并重写所有方法
2.注册拦截器
配置拦截器 ,重写其中的方法
过滤器,拦截器同时存在执行流程