zer解析的信息
@Overridepublic List> readCookieValues(HttpServletRequest request) {Cookie[] cookies = request.getCookies();List> matchingCookieValues = new ArrayList<>();if (cookies != null) {for (Cookie cookie : cookies) {if (this.cookieName.equals(cookie.getName())) {String sessionId = (this.useBase64Encoding ? base64Decode(cookie.getValue()) : cookie.getValue());if (sessionId == null) {continue;}if (this.jvmRoute != null && sessionId.endsWith(this.jvmRoute)) {sessionId = sessionId.substring(0, sessionId.length() - this.jvmRoute.length());}matchingCookieValues.add(sessionId);}}}return matchingCookieValues;}
解析出的但是这还不够,这只能判断,客户端存有用户登录的信息key,不能保证在服务器端也是登录的状态,那么这就需要做一个对比:携带的信息----> 分布式服务redis中存储的集合做比对,肯定这个项目,不仅仅只有你一个人登录,对吧,别人也可以登录,这样,redis里面存在很多的用户登录信息,但是,我们只需要找出其中一个,能够与匹配的就可以证明,这个请求的客户端,已经登录!比对逻辑,也是在源码中,我们继续看上面代码的注释,可以找到逻辑证明!
中有对ter.this..()做具体的实现,关注类中的以下2个方法:
private RedisSession getSession(String id, boolean allowExpired) {Map
3.生命周期 1.创建
在创建时设置3个变量、、
2.获取
文章插图
应该通过( )方法来获取数据【标识不存在时是否创建】,具体步骤如下:
3.删除
在访问有效期内,每次访问都会更新的值,过期时间为+,也就是在有效期内每访问一次,有效期就向后延长,对于过期数据,一般有如下三种删除策略
4. 的数据结构
-在redis的数据结构
5.注意事项6.项目实战 1.核心包配置
org.springframework.boot spring-boot-starter-data-redis org.springframework.security spring-security-web 5.3.6.RELEASE org.springframework.session spring-session-data-redis 2.4.0 org.springframework.session spring-session-core 2.4.0
2.启动配置
@Slf4j// redisNamespace不同服务设置不同的namcespace//maxInactiveIntervalInSeconds-默认失效时间1800->30分钟,cleanupCron->定期清理会话cron表达式@EnableRedisHttpSession(redisNamespace = "spring:session:client", maxInactiveIntervalInSeconds = 1800)@Configurationpublic class RedisHttpSessionConfig {/*** 更换序列化器*/@Bean("springSessionDefaultRedisSerializer")public RedisSerializer setSerializer(){return new GenericJackson2JsonRedisSerializer();}@Beanpublic CookieSerializer cookieSerializer() {DefaultCookieSerializer serializer = new DefaultCookieSerializer();//serializer.setCookieName("SESSIONID");serializer.setCookiePath("/");//serializer.setDomainNamePattern("^.+?\\.(\\w+\\.[a-z]+)$");return serializer;}@Beanpublic SpringHttpSessionConfiguration springHttpSessionConfiguration() {SpringHttpSessionConfiguration ss = new SpringHttpSessionConfiguration();ss.setCookieSerializer(cookieSerializer());log.info("加载自定义SpringHttpSessionConfiguration");return ss;}}
- 五 [译]数据库是如何工作查询管理器
- 进藏自驾游
- 武汉工作室
- 魔兽怀旧服:亚服最牛服务器,工作室刷屏卖脚本,玩家进本先交费 魔兽世界十大服务器
- 数分工作了三年,我干了件很酷的事情
- 他说服家人放弃绿卡、辞去美国高薪工作,选择带着天赋回国创业 脂老虎吉尼斯记录
- 毕业生,你怎么获得工作经验
- 网站如何做好seo优化工作,SEO综合查询工具能检测优化效果吗?
- 维塔工作室
- 初中班长要做哪些工作,初中班长要做什么?