`
zkgale
  • 浏览: 99869 次
  • 性别: Icon_minigender_1
  • 来自: 成都
文章分类
社区版块
存档分类
最新评论

关于单窗口登录

阅读更多

 

今天在公司发现了一种实现单窗口的解决方案,在些将它写出来.以备以后使用....

 

这里说的单窗口,我不知道算不算是一种单点登录.也不想去深究,反正我又不是搞理论的,能用,切能用对就OK.管浪多也没用...是不...呵呵

 

实现原理很简单,只是想到的人不多吧.在说之前,先说说要用到那些东西:

1. 标识对象,这是必须的,要不然怎么去判断是否是一个窗口呢?

2. SPRING的Interceptor(拦截器)

3. 缓存.

 

 

标识对象一定要包含两样东西:

1. 唯一标识号,像什么ID呀,USERNAME呀之类的

2. HttpSession引用,嘿嘿,没错就是它.

 

缓存是什么东西呢?结构是什么样的呢?其实就一个MAP<标识,对象>对象.

 

拦截器就直接写判断了啦.

 

 

现在说说原理.

每个窗口在发出请求后,服务器都会为该窗口生成一个SESSION,这个没错吧.而这个SESSION是窗口私有的!这是重点.当我们在进行登录的时候,首先就在标识对象里面把当前的session进行保存.并用标识号做为KEY存放在缓存中.然后我们每次进行操作的时候就可以在拦截器中根据标识号得到标识对象,然后再判断这个对象的SESSION是否与当前的SESSION相同,那么就可以判断是否是同一窗口了....


分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics