文档章节

shiro是如何实现httpsession的操作的

大海
 大海
发布于 2016/12/11 20:59
字数 235
阅读 132
收藏 0
//获取当前用户
Subject subject = SecurityUtils.getSubject();
//获取当前用户session,默认为不存在session就创建session
Session session = subject.getSessio();

而subject的实现类通过打断点可以知道其实现类为DelegatingSubject,而他有一个方法叫getSession(boolean create),一看就知道
是获取session的意思,这个方法里有一段代码:Session session = this.securityManager.start(sessionContext);
这个this.securityManager的是实现类是ServletContainerSessionManager,查看他的start方法:

 Session session = this.securityManager.start(sessionContext);
其实就是包含了一个createSession方法,然后看HttpSession httpSession = request.getSession();这段代码,
原来shiro获取session还是依赖着httpSession的。


  protected Session createSession(SessionContext sessionContext) throws AuthorizationException {
        if (!WebUtils.isHttp(sessionContext)) {
            String msg = "SessionContext must be an HTTP compatible implementation.";
            throw new IllegalArgumentException(msg);
        }

        HttpServletRequest request = WebUtils.getHttpRequest(sessionContext);

        HttpSession httpSession = request.getSession();

        //SHIRO-240: DO NOT use the 'globalSessionTimeout' value here on the acquired session.
        //see: https://issues.apache.org/jira/browse/SHIRO-240

        String host = getHost(sessionContext);

        return createSession(httpSession, host);
    }

继续往下想,request是如何获取session的。。个人认为是tomcat实现的

© 著作权归作者所有

共有 人打赏支持
大海
粉丝 2
博文 84
码字总数 32431
作品 0
杭州
程序员
私信 提问
springmvc集成shiro后,session、request姓汪还是姓蒋?

疑问 我们在项目中使用了spring mvc作为MVC框架,shiro作为权限控制框架,在使用过程中慢慢地产生了下面几个疑惑,本篇文章将会带着疑问慢慢地解析shiro源码,从而解开心里面的那点小纠纠。 ...

细肉云吞
2017/06/18
0
22
[翻译-Shiro]-10分钟教会你Apache Shiro

最近在研究Apache Shiro准备将自认为比较重要的资料翻译成中文(明天去拔牙,呜呜)。时间允许的情况下会尽可能多的翻译 前言 欢迎来到Apache Shiro 10分钟之旅! 希望通过这个简单、快速的示例...

乱笔·青玉
2013/02/03
0
3
让Apache Shiro保护你的应用

什么是Apache Shiro? Apache Shiro(发音为“shee-roh”,日语“堡垒(Castle)”的意思)是一个强大易用的Java安全框架,提供了认证、授权、加密和会话管理功能,可为任何应用提供安全保障...

heroShane
2014/02/09
0
0
让Apache Shiro保护你的应用[转]

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

hhs
2011/05/27
0
2
让Apache Shiro保护你的应用

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

游宵
2014/05/09
0
1

没有更多内容

加载失败,请刷新页面

加载更多

EOS docker开发环境

使用eos docker镜像是部署本地EOS开发环境的最轻松愉快的方法。使用官方提供的eos docker镜像,你可以快速建立一个eos开发环境,可以迅速启动开发节点和钱包服务器、创建账户、编写智能合约....

汇智网教程
今天
12
0
《唐史原来超有趣》的读后感优秀范文3700字

《唐史原来超有趣》的读后感优秀范文3700字: 作者:花若离。我今天分享的内容《唐史原来超有趣》这本书的读后感,我将这本书看了一遍之后就束之高阁了,不过里面的内容一直在在脑海中回放,...

原创小博客
今天
19
0
IC-CAD Methodology知识图谱

CAD (Computer Aided Design),计算机辅助设计,指利用计算机及其图形设备帮助设计人员进行设计工作,这个定义同样可以用来近似描述IC公司CAD工程师这个岗位的工作。 早期IC公司的CAD岗位最初...

李艳青1987
今天
19
0
CompletableFuture get方法一直阻塞或抛出TimeoutException

问题描述 最近刚刚上线的服务突然抛出大量的TimeoutException,查询后发现是使用了CompletableFuture,并且在执行future.get(5, TimeUnit.SECONDS);时抛出了TimeoutException异常,导致接口响...

xiaolyuh
今天
9
0
dubbo 搭建与使用

官网:http://dubbo.apache.org/en-us/ 一,安装监控中心(可以不安装) admin管理控制台,monitor监控中心 下载 bubbo ops 这个是新版的,需要node.js环境,我没有就用老版的了...

小兵胖胖
今天
20
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部