JavaWeb开发第八天

登录校验

会话技术

会话:用户打开浏览器,访问web服务器的资源,会话建立,指导有一方断开连接,会话结束。在一次会话中可以包含多次请求和响应

会话跟踪:一种维护浏览器状态的方法,服务器需要识别多次请求是否来自同一浏览器,以便在同一次会话的多次请求间共享数据

会话跟踪方案:

  • 客户端会话跟踪技术:Cookie(传统方案不适用)
  • 服务器会话跟踪技术:Session(传统方案不适用)
  • 令牌技术(主流方案)

JWT令牌

JWT:定义了一种简洁的、自包含的格式,用于在通信双方以json数据格式安全的传输信息。由于数据签名的存在,这些信息是可靠的。

  • 组成:
    • 第一部分:Header(头),记录令牌类型、签名算法等。例如:{"alg":"HS256","type":"JWT"}
    • 第二部分:Payload(有效载荷),携带一些自定义信息、默认信息等。 例如:{"id":"1","username":"Tom"}
    • 第三部分:Signature(签名),防止Token被篡改、确保安全性。将header、payload,并加入指定秘钥,通过指定签名算法计算而来
  • 场景:登录认证
  1. 登录成功后,生成令牌
  2. 后续每个请求,都要携带JWT令牌,系统在每次请求处理之前,先校验令牌,通过后,再处理
  • JWT-生成
  • 引入依赖
  • 生成令牌
  • 令牌的校验(当令牌超时失效后校验不通过)

过滤器Filter

  • 概念:Filter过滤器,是javaWeb三大组件(Servlet、Filter、Listener)
  • 过滤器可以把对资源的请求拦截下来,从而实现一些特殊的功能
  • 过滤器一般完成一些通用的操作,比如:登录校验、统一编码处理、敏感字符处理等

  • 过滤器的执行流程
  • Filter拦截路径
  • 过滤器链:一个web应用中,可以配置多个过滤器,这多个过滤器就形成了一个过滤器链
  • 过滤器的执行顺序有两种。第一种是按照过滤器的名称来执行,例如有两个过滤器分别为AFilter、BFilter,则默认先执行AFilter;第二种是根据Filter在web.xml文件中的配置顺序来决定先调用哪个Filter,先配置的先执行。

    当第一个Filter的doFilter方法被调用时,web服务器会创建一个代表Filter链的FilterChain对象传递给该方法。FilterChain是一个接口,里面又定义了doFilter()方法。在doFilter方法中,开发人员如果调用了FilterChain对象的doFilter方法,则web服务器会检查FilterChain对象中是否还有filter,如果有,则调用第2个filter,如果没有,则调用目标资源。

  • 登录校验过程:

拦截器Interceptor

  • 概念:是一种动态拦截方法调用的机制,类似于过滤器。Spring框架中提供的,用来动态拦截控制器方法(Controller)的执行。
  • 作用:拦截请求,在指定的方法调用前后,根据业务需要执行预先设定的代码。
  • 拦截器可以根据需求,配置不同的拦截路径:
    @Override
    public void addInterceptors(InterceptorRegistry registry) {
              registry.addInterceptor(loginCheckInterceptor).addPathPatterns("/**").excludePathPatterns("/login");
    }

Filter与Interceptor

  • 接口规范不同:过滤器需要实现Filter接口,而拦截器需要实现HandlerInterceptor接口
  • 拦截范围不同:过滤器Filter会拦截所有资源,而Interceptor只会拦截Spring环境中的资源  
  • 14
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值