会话状态:
客户端与服务端通讯过程中产生的状态信息(类似会议记录),称之为会话状态
会话状态如何存储
客户端浏览器与服务端通讯时使用的是http协议,这个协议本身是无状态协议,也就是说通过此协议,无法存储会话状态,此时在服务端与客户端就采用了一种Cookie与Session方式记录会话状态.
有状态的会话技术分析
Cookie技术
是由服务端创建但在客户端存储会话状态的一个对象,此对象分为两种类型,一种为会话Cookie,一种为持久Cookie,浏览器在访问具体的某个域名时会携带这个域的有效Cookie到服务端.
1.会话Cookie:浏览器关闭Cookie生命周期结束(一般默认都是会话Cookie)
2.持久Cookie:持久Cookie是在Cookie对象创建时指定了生命周期,例如一周时间,
即便浏览器关闭, 持久Cookie依旧有效.
Session技术
由服务端创建,并在服务端存储会话状态的一个对象,当Session对象创建时,还会创建一个会话Cookie对象,并且通过这个会话Cookie将SessionId写到客户端,客户端下次访问服务端会携带这个会话Cookie,并且通过JsessionId找到Session对象,进而获取Session对象中存储的数据.Cookie默认的生命周期为30分钟.
在SpringSecurity中获取用户的认证信息,就可以通过如下方式进行实现:
Authentication authentication =
SecurityContextHolder.getContext().getAuthentication();