1、Session的介绍

关于Session

会话:从启动一个Session到关闭这个Session作为一个会话,是对客户端和服务器端交互的一种封装,带有时效性

会话的产生:
  一般从容器中产生
    Web container:Web容器,如Tomcat,这些容器对Session进行了实现,可以产生Session
    EJB Stateful Session Beans:比较少用

会话的应用:
  Mobile
  Web
  分布式集群

Shiro Session

  基于POJO
  可以自定义Session存储的方式,保存到内存、文件、数据库都可以
  容器无关的集群
  客户端访问多样化
  事件监听
  主机地址记忆,可以知道由哪台主机创建
  Web使用透明化,不需要关心Session怎么创建,只需要知道如何使用
  支持SSO,单点登录

使用Session

Subject currentUser = SecurityUtils.getSubject();
Session session = currentUser.getSession(true);
session.setAttribute("someKey", somValue);

  subject.getSession(flag)

    如果subject存在session,直接返回session
    如果subject不存在session,flag=true,则创建一个新的Ssssion并返回
    如果subject不存在session,flag=false,则返回null

  类似servlet中的Session

  支持所有应用,适合但不限于Web应用

2、SessionManager

DefaultSessionManager:默认实现

Session Timeout:Session的有效期

Session Listeners:面向事件、实现SessionListener接口

Session Storage:Session的保存形式

  SessionDAO接口抽象

  in-memory-only:默认,使用内存保存Session

  EHCache SessionDAO:使用磁盘保存Session的实现

  EhCache SessionDAO的使用

    配置ehcache.xml

    Session Cache Name

Session IDs

  SessionIdGenerator组件:用于生成SessionID

  JavaUuidSessionIdGenerator:默认实现,使用Java的uuid

  自定义

Session Validation

  判断Session是否过期

  Lazy Validation:使用的时候才判断

  Session孤儿(orphan):使用Lazy时,某些Session过期了,仍长期存在。

SessionValidationScheduler

  定期删除Session孤儿

  ExecutorServiceSessionValidationScheduler:默认实现

  自定义SessionValidationScheduler

  关闭Session Validation

  关闭Session删除功能

3、Session集群

用于实现Session的集群

Shiro支持分布式缓存

  Web容器环境

  Native环境

基于POJO多层架构

  支持集群的SessionDAO

  透明的SessionManager

支持集成多种分布式缓存服务器

EnterpriseCacheSessionDAO

  activeSessionsCache

第三方集成

  Ehcache+Terracotta

  Zookeeper

4、Session和用户状态

有状态的应用

  Shiro默认使用Session保存认证状态

  通过SessionId获取用户状态

无状态的应用

自定义混合方案

  SessionStorageEvaluator

【Shiro】六、Apache Shiro Session管理的更多相关文章

  1. 【Shiro】Apache Shiro架构之集成web

    Shiro系列文章: [Shiro]Apache Shiro架构之身份认证(Authentication) [Shiro]Apache Shiro架构之权限认证(Authorization) [Shi ...

  2. 【Shiro】Apache Shiro架构之身份认证(Authentication)

    Shiro系列文章: [Shiro]Apache Shiro架构之权限认证(Authorization) [Shiro]Apache Shiro架构之集成web [Shiro]Apache Shiro ...

  3. 【Shiro】Apache Shiro架构之自定义realm

    [Shiro]Apache Shiro架构之身份认证(Authentication) [Shiro]Apache Shiro架构之权限认证(Authorization) [Shiro]Apache S ...

  4. 【Shiro】Apache Shiro架构之权限认证(Authorization)

    Shiro系列文章: [Shiro]Apache Shiro架构之身份认证(Authentication) [Shiro]Apache Shiro架构之集成web [Shiro]Apache Shir ...

  5. [转载] 【Shiro】Apache Shiro架构之实际运用(整合到Spring中)

    写在前面:前面陆陆续续对Shiro的使用做了一些总结,如题,这篇博文主要是总结一下如何将Shiro运用到实际项目中,也就是将Shiro整到Spring中进行开发.后来想想既然要整,就索性把Spring ...

  6. 细说shiro之六:session管理

    官网:https://shiro.apache.org/ 我们先来看一下shiro中关于Session和Session Manager的类图. 如上图所示,shiro自己定义了一个新的Session接 ...

  7. 让Apache Shiro保护你的应用

    在尝试保护你的应用时,你是否有过挫败感?是否觉得现有的Java安全解决方案难以使用,只会让你更糊涂?本文介绍的Apache Shiro,是一个不同寻常的Java安全框架,为保护应用提供了简单而强大的方 ...

  8. Apache Shiro 手册

    (一)Shiro架构介绍 一.什么是Shiro Apache Shiro是一个强大易用的Java安全框架,提供了认证.授权.加密和会话管理等功能: 认证 - 用户身份识别,常被称为用户"登录 ...

  9. Apache Shiro 使用手册---转载

    原文地址:http://www.360doc.com/content/12/0104/13/834950_177177202.shtml (一)Shiro架构介绍 一.什么是Shiro Apache ...

  10. Apache Shiro 使用手册

    http://kdboy.iteye.com/blog/1154644 (一)Shiro架构介绍 一.什么是Shiro  Apache Shiro是一个强大易用的Java安全框架,提供了认证.授权.加 ...

随机推荐

  1. CF 717A Festival Organization——斯特林数+递推求通项+扩域

    题目:http://codeforces.com/contest/717/problem/A 是 BJOI2019 勘破神机 的弱化版. 令 \( g[i] \) 表示长为 i .以 1 结尾的方案数 ...

  2. LOJ 2979 「THUSCH 2017」换桌——多路增广费用流

    题目:https://loj.ac/problem/2979 原来的思路: 优化连边.一看就是同一个桌子相邻座位之间连边.相邻桌子对应座位之间连边. 每个座位向它所属的桌子连边.然后每个人建一个点,向 ...

  3. html&css面试笔记

    1.CSS选择器有哪些?它们的优先级是怎样的? 选择器类型: id选择器 ( # myid) 类选择器 (.myclassname) 标签选择器 (div, h1, p) 相邻选择器 (h1 + p) ...

  4. (转)maven怎么 引入(或引用/使用) 自定义(或本地/第三方) jar的三种方式 图文教程 方法二最简单

    转:https://blog.csdn.net/wabiaozia/article/details/52798194 准备工作: 假如我有一个自定义jar是:123456.jar,下载地址http:/ ...

  5. CATiledLayer显示超大图片的解决方案

    先对图片进行了裁剪 -> 很多小图片, 然后再根据显示 进行绘制 - (void)viewDidLoad { [super viewDidLoad]; [self cutImageAndSave ...

  6. mongo 慢查询配置

    我是分片部署,所以慢查询相关的配置是在启动片服务上. 执行查询命令,是在share的primary 上. 1. mongodb慢查询   配置 慢查询数据主要存储在 local库的system.pro ...

  7. shell zip和unzip压缩和解压,压缩效率

    1.把/home目录下面的mydata目录压缩为mydata.zip zip -r mydata.zip mydata #压缩mydata目录zip -r mydata.zip ./*txt #压缩当 ...

  8. 关于ExtJS对javascript中的Object的扩展

    关于ExtJS对javascript中的Object的扩展,可以参考其帮助文档,文档下载地址:http://download.csdn.net/detail/z1137730824/7748893 下 ...

  9. python-django之cookie及session

    Cookie Cookie的由来 Http协议是无状态的 无状态的意思是每次都是独立的请求存在,它的执行情况和结果与前面的请求和后面的请求都无直接关系,它不会受到前面的请求响应情况直接影响,也不会直接 ...

  10. 前后端分离使用 Token 登录解决方案

    前后端分离使用 Token 登录解决方案:https://juejin.im/post/5b7ea1366fb9a01a0b319612