springSecurity的学习笔记--使用spring-Security完成“记住我”,单机session管理,集群session管理,登出

   今天课外的大部分空余时间都用来了整理springSecurity练习的笔记。 整理了一部分,还差一些这里补上!

记住我功能要素:

      springsecurity提供了一个记住我的功能。  它的大致原理是,拦截器检测是否符合拦截条件,如果符合,则调用记住我的逻辑。  它的逻辑是,将此用户的session与用户信息存入数据库表中。  (因为记住我必须在有凭证的情况下进行保存!。 )。

     该过滤器为:

   过滤的条件:

  过滤的实现:

springSecurity的学习笔记--使用spring-Security完成“记住我”,单机session管理,集群session管理,登出_第1张图片 

它有两个关键: 第一,客户端持有sessionId,第二,如果配有记住我的拦截器,所有的请求都会经该过滤器,在符合它的拦截条件时,均会使用cookie的该session尝试进行匹配。

   1.在过滤器链上注册配置:(过滤器的定义由security提供)

springSecurity的学习笔记--使用spring-Security完成“记住我”,单机session管理,集群session管理,登出_第2张图片

2,测试,一切正常

单机session管理的要素:

    session的管理,包括session的超时,session的并发等。 

    session是服务器容器本身就带有的一个功能,用于弥补http协议无状态的弊端。 session超时可通过配置server.session.timeout=??  进行配置。  正如我们配置server.port一样。无需我们提出半点质疑!

   session的并发,主要包括客户端的并发,以及服务端的session集群管理。

   客户端并发的相关配置

    注意,session的管理也是基于过滤链的。  相关的过滤器包括 : ConcurrentSessionFilter,SessionManagementFilter,SessionRepositoryFilter。 均由框架提供!

1.在过滤器链上注册配置

2.相关bean的配置:(经过重构后的结构)

springSecurity的学习笔记--使用spring-Security完成“记住我”,单机session管理,集群session管理,登出_第3张图片

springSecurity的学习笔记--使用spring-Security完成“记住我”,单机session管理,集群session管理,登出_第4张图片

3.测试一切正常!。

session集群管理的要素:

   1.引入依赖

springSecurity的学习笔记--使用spring-Security完成“记住我”,单机session管理,集群session管理,登出_第5张图片

2.相关配置

   spring.session.store-type=redis;

   启动redis服务端。  (注意,如果所有的都是本机,如地址,端口,连接的账号与密码都是本机的话,则可以不用配redis的相关配置)。 否则,需要配置redis的相关属性。 

3.测试,一切正常

登出的要素:

   1.过滤链注册

springSecurity的学习笔记--使用spring-Security完成“记住我”,单机session管理,集群session管理,登出_第6张图片

   2.配置相关的bean:

springSecurity的学习笔记--使用spring-Security完成“记住我”,单机session管理,集群session管理,登出_第7张图片

    -======基本就这样吧!

你可能感兴趣的:(java学习,框架相关)