今天课外的大部分空余时间都用来了整理springSecurity练习的笔记。 整理了一部分,还差一些这里补上!
记住我功能要素:
springsecurity提供了一个记住我的功能。 它的大致原理是,拦截器检测是否符合拦截条件,如果符合,则调用记住我的逻辑。 它的逻辑是,将此用户的session与用户信息存入数据库表中。 (因为记住我必须在有凭证的情况下进行保存!。 )。
该过滤器为:
过滤的条件:
过滤的实现:
它有两个关键: 第一,客户端持有sessionId,第二,如果配有记住我的拦截器,所有的请求都会经该过滤器,在符合它的拦截条件时,均会使用cookie的该session尝试进行匹配。
1.在过滤器链上注册配置:(过滤器的定义由security提供)
2,测试,一切正常!
单机session管理的要素:
session的管理,包括session的超时,session的并发等。
session是服务器容器本身就带有的一个功能,用于弥补http协议无状态的弊端。 session超时可通过配置server.session.timeout=?? 进行配置。 正如我们配置server.port一样。无需我们提出半点质疑!
session的并发,主要包括客户端的并发,以及服务端的session集群管理。
客户端并发的相关配置:
注意,session的管理也是基于过滤链的。 相关的过滤器包括 : ConcurrentSessionFilter,SessionManagementFilter,SessionRepositoryFilter。 均由框架提供!
1.在过滤器链上注册配置:
2.相关bean的配置:(经过重构后的结构)
3.测试一切正常!。
session集群管理的要素:
1.引入依赖:
2.相关配置:
spring.session.store-type=redis;
启动redis服务端。 (注意,如果所有的都是本机,如地址,端口,连接的账号与密码都是本机的话,则可以不用配redis的相关配置)。 否则,需要配置redis的相关属性。
3.测试,一切正常。
登出的要素:
1.过滤链注册:
2.配置相关的bean:
-======基本就这样吧!