自己实现spring-session,实现单点登陆的功能
使用filter拦截用户的请求,在filter中包装request,在request的包装类requestWrapper中,重写getSession(),
和getSession(boolean create)。自己实现httpSession,在getSession中获取cookie,从cookie中读取sessionId,
如果没有sessionId就新创建session,如果有sessionId,就去redis中查看是否有此id的记录,如果没有就新建session,如果有,还是新建session,并把redis中此session的相关数据赋值给新建的session,最后保存sessionId到cookie,cookie的maxAge设置为-1,仅对当前会话有效。
redis的操作使用redisTemplate实现。
1