shiro

Shiro在Spring session管理

孤者浪人 提交于 2019-12-26 02:33:51
会话管理 在shiro里面可以发现所有的用户的会话信息都会由Shiro来进行控制,那么也就是说只要是与用户有关的一切的处理信息操作都可以通过Shiro取得,实际上可以取得的信息可以有用户名、主机名称等等,这所有的信息都可以通过Subject接口取得。 System.out.println("SESSION ID = " + SecurityUtils.getSubject().getSession().getId()); System.out.println("用户名:" + SecurityUtils.getSubject().getPrincipal()); System.out.println("HOST:" + SecurityUtils.getSubject().getSession().getHost()); System.out.println("TIMEOUT :" + SecurityUtils.getSubject().getSession().getTimeout()); System.out.println("START:" + SecurityUtils.getSubject().getSession().getStartTimestamp()); System.out.println("LAST:" + SecurityUtils.getSubject(

第10章 会话管理

牧云@^-^@ 提交于 2019-12-26 02:33:08
Shiro提供了完整的企业级会话管理功能,不依赖于底层容器(如web容器tomcat),不管JavaSE还是JavaEE环境都可以使用,提供了会话管理、会话事件监听、会话存储/持久化、容器无关的集群、失效/过期支持、对Web的透明支持、SSO单点登录的支持等特性,即直接使用Shiro的会话管理可以直接替换如Web容器的会话管理。 会话 所谓会话,即用户访问应用时保持的连接关系,在多次交互中应用能够识别出当前访问的用户是谁,且可以在多次交互中保存一些数据,如访问一些网站时登录成功后,网站可以记住用户,且在退出之前都可以识别当前用户是谁,Shiro的会话不仅可以在普通的JavaSE应用中使用,也可以在JavaEE应用中使用,如web应用,且使用方式是一致的。 1. login("classpath:shiro.ini", "zhang", "123"); 2. Subject subject = SecurityUtils.getSubject(); 3. Session session = subject.getSession(); 登录成功后使用Subject.getSession()即可获取会话; 其等价于Subject.getSession(true),即如果当前没有创建Session对象会创建一个; 另外Subject.getSession(false)

Shiro学习(10)Session管理

无人久伴 提交于 2019-12-26 02:32:52
Shiro提供了完整的企业级会话管理功能,不依赖于底层容器(如web容器tomcat),不管JavaSE还是JavaEE环境都可以使用,提供了会话管理、会话事件监听、会话存储/持久化、容器无关的集群、失效/过期支持、对Web的透明支持、SSO单点登录的支持等特性。即直接使用Shiro的会话管理可以直接替换如Web容器的会话管理。 会话 所谓会话,即用户访问应用时保持的连接关系,在多次交互中应用能够识别出当前访问的用户是谁,且可以在多次交互中保存一些数据。如访问一些网站时登录成功后,网站可以记住用户,且在退出之前都可以识别当前用户是谁。 Shiro的会话支持不仅可以在普通的JavaSE应用中使用,也可以在JavaEE应用中使用,如web应用。且使用方式是一致的。 Java代码 login("classpath:shiro.ini", "zhang", "123"); Subject subject = SecurityUtils.getSubject(); Session session = subject.getSession(); 登录成功后使用Subject.getSession()即可获取会话;其等价于Subject.getSession(true),即如果当前没有创建Session对象会创建一个;另外Subject.getSession(false)

Shiro - 关于session

北城以北 提交于 2019-12-26 02:32:04
Shiro Session session管理可以说是Shiro的一大卖点。 Shiro可以为任何应用(从简单的命令行程序还是手机应用再到大型企业应用)提供会话解决方案。 在Shiro出现之前,如果我们想让你的应用支持session,我们通常会依赖web容器或者使用EJB的Session Bean。 Shiro对session的支持更加易用,而且他可以在任何应用、任何容器中使用。 即便我们使用Servlet或者EJB也并不代表我们必须使用容器的session,Shiro提供的一些特性足以让我们用Shiro session替代他们。 基于POJO 易定制session持久化 容器无关的session集群 支持多种客户端访问 会话事件监听 对失效session的延长 对Web的透明支持 支持SSO 使用Shiro session时,无论是在JavaSE还是web,方法都是一样的。 public static void main(String[] args) { Factory<SecurityManager> factory = new IniSecurityManagerFactory("classpath:shiro/shiro.ini"); SecurityUtils.setSecurityManager(factory.getInstance()); Subject

(转) shiro权限框架详解06-shiro与web项目整合(上)

為{幸葍}努か 提交于 2019-12-25 22:42:17
http://blog.csdn.net/facekbook/article/details/54947730 shiro和web项目整合,实现类似真实项目的应用 本文中使用的项目 架构 是springMVC+mybatis,所以我们是基于搭建好的项目进行改造的。 将shiro整合到web应用中 登录 退出 认证信息在页面展现,也就是显示菜单 shiro的过滤器 将shiro整合到web应用中 数据库脚步 sql脚步放到项目中,项目上传到共享的资源中,文章最后给出共享url。 去除项目中不使用shiro实现认证的拦截器 <!--拦截器 --> <!-- <mvc:interceptors> <mvc:interceptor> --> <!-- 用户认证拦截 --> <!-- <mvc:mapping path="/**" /> <bean class="cn.itcast.ssm.controller.interceptor.LoginInterceptor"></bean> </mvc:interceptor> <mvc:interceptor> --> <!-- 授权拦截 --> <!-- <mvc:mapping path="/**" /> <bean class="cn.itcast.ssm.controller.interceptor

Shiro - 认证

跟風遠走 提交于 2019-12-25 15:57:57
认证是Shiro最基本的工作! 先从代码开始,运行后再慢慢研究。 以下是我添加的dependecies: <!-- shiro --> <dependency> <groupId>org.apache.shiro</groupId> <artifactId>shiro-core</artifactId> <version>${shiro.version}</version> </dependency> <dependency> <groupId>org.apache.shiro</groupId> <artifactId>shiro-spring</artifactId> <version>${shiro.version}</version> </dependency> <dependency> <groupId>org.apache.shiro</groupId> <artifactId>shiro-web</artifactId> <version>${shiro.version}</version> </dependency> 在资源目录下创建shiro.ini,文件内容为: [users] king=t;stmdtkg 写一个main方法: package pac.testcase.shiro; import org.apache.shiro.SecurityUtils;

spring集成 JedisCluster 连接 redis3.0 集群

末鹿安然 提交于 2019-12-25 11:42:16
原文:http://xyqck163.iteye.com/blog/2211108 最近在公司做了 jedisCluster整合spring 的配置, 分享如下 客户端采用最新的jedis 2.7 1. maven依赖: <dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <version>2.7.2</version> </dependency> 2. 增加spring 配置(最好配置在application-context.xml,如果会用在shiro中的sessionDao时,必须要在加载shiro配置文件前加载此配置信息) <bean name="genericObjectPoolConfig" class="org.apache.commons.pool2.impl.GenericObjectPoolConfig" > <property name="maxWaitMillis" value="-1" /> <property name="maxTotal" value="1000" /> <property name="minIdle" value="8" /> <property name="maxIdle" value="100" /> </bean> <bean

使用redis缓存session和授权数据

北慕城南 提交于 2019-12-25 10:48:22
文章目录 添加依赖 配置开发环境(application-dev.yml) 配置shiro 学生列表接口 github项目地址 参考资料 添加依赖 <!-- 添加redis支持--> < dependency > < groupId > org.springframework.boot </ groupId > < artifactId > spring-boot-starter-data-redis </ artifactId > </ dependency > < dependency > < groupId > redis.clients </ groupId > < artifactId > jedis </ artifactId > < version > 2.9.0 </ version > </ dependency > <!-- shiro-redis --> < dependency > < groupId > org.crazycake </ groupId > < artifactId > shiro-redis </ artifactId > < version > 3.1.0 </ version > </ dependency > 配置开发环境(application-dev.yml) studentboot : uploadPath : d :

吃透Shiro源码第七天

久未见 提交于 2019-12-25 06:34:20
文章目录 技术手法 (1)多个方法重载设计思路 (2)AuthenticationInfo设计思路 技术手法 (1)多个方法重载设计思路 如果有多重方法在重载的话,提供一个同名的private或protected方法。各种重载对象最后转成此private或protected方法需要的格式。其实今天处理的代码并不复杂,实际上就是通过AuthenticationInfo对象,将其解析成Collection<Permission>。 @Override public void checkPermission ( PrincipalCollection subjectPrincipal , String permission ) throws AuthorizationException { Permission perm = getPermissionResolver ( ) . resolvePermission ( permission ) ; AuthorizationInfo authorizationInfo = this . getAuthorizationInfo ( subjectPrincipal ) ; checkPermission ( perm , authorizationInfo ) ; } @Override public void

In Shiro Guice, how can I change authc to a different subclass?

南笙酒味 提交于 2019-12-25 04:59:15
问题 Example: In shiro.ini I have: # Change from FormAuthenticationFilter to VerboseFormAuthenticationFilter authc=webapp.filters.VerboseFormAuthenticationFilter authc.loginUrl=/login authc.successUrl=/oncall How can I perform the above using Shiro Guice? I'm interested in the following line: authc=webapp.filters.VerboseFormAuthenticationFilter 回答1: public class YourShiroSecurityModule extends ShiroWebModule { private static final Key<VerboseFormAuthenticationFilter> VERBOSE_AUTH = Key.get