shiro学习
只是学习的笔记,供复习使用
Entodie
这个作者很懒,什么都没留下…
展开
-
访问开始之----ShiroFilterFactoryBean
过滤器工厂:ShiroFilterFactoryBean创建的filter含有SecurityManager1、产生的filter,在浏览器访问时候便开始启动就是该过滤器:1、开始调用AbstractFilter中对 方法:2、开始创建subject(subject为线程绑定对象,存入ThreadContext)3、由WebSubject...原创 2019-09-03 17:36:29 · 292 阅读 · 0 评论 -
Shiro集成Redis解决频繁访
1、频繁访问redis更新session网上解决方法:重写retireveSession,并且储存在request,从里面获取数据该方法减少了接近6倍访问频次问题:2、sessionDao方法:在session.setTimeout(redisManager.getExpire()*1000);保存过redis的session的时间会话时间都会被更新为0,也...原创 2019-09-04 09:13:25 · 654 阅读 · 1 评论 -
Shiro配置踩坑(序列化)
问题一:1、在securitymanager配置 缓存管理类 cacheManager,这个cacheManager必须要在前面执行,因为setRealm 和 setSessionManage2、源于:将对象存入缓存中,皆要将对象序列化问题二: 序列化问题: 1、盐序列化:我们在实现的realm类中,重写dogetAutenticationinfo:...原创 2019-09-04 09:14:08 · 1248 阅读 · 0 评论 -
冲突问题3---自定义异常与shiro异常
报错注意:1、在自定义realm类中,抛出的异常会被Authenticationexception打包同时会被shiroexception抓住:使用e.getCause获取2、由shiro抛出的错误可以:如果其中一个现有异常类不满足您的需求,AuthenticationExceptions则可以创建自定义以表示特定的故障方案。以下为shiro的自带异常:的异常全是...原创 2019-09-04 09:14:45 · 1476 阅读 · 0 评论 -
冲突问题2--shiro的切面注解与springmvc的@controller
public static DefaultAdvisorAutoProxyCreator getDefaultAdvisorAutoProxyCreator() {DefaultAdvisorAutoProxyCreator creator = new DefaultAdvisorAutoProxyCreator();/** * setUsePrefix(false)用于解决一个奇怪的bu...原创 2019-09-04 09:14:51 · 457 阅读 · 0 评论 -
冲突问题1---lifecycleBeanPostProcessor
如果我注释掉shiroEhcacheManager 以下所有bean的创建,项目能启动,当我@Bean(name = "lifecycleBeanPostProcessor")创建这个bean的时候就抛出了上面的异常。这么分析过来问题应该出在这个bean上。LifecycleBeanPostProcessor用于在实现了Initializable接口的Shiro bean初始化时调用Ini...原创 2019-09-04 09:14:59 · 2162 阅读 · 1 评论 -
ThreadContext简单介绍
首先看下ThreadContext类的说明:1、shirofilter会为当前线程创建subject 内置ThreadLocal从之前的源码中我们知道了每一次访问都会重新建立subject然后绑定到当前线程,所以这个就很简单了,因为当前线程中获得subject不会是null。只有在没有配置shirofilter的应用中才会出现当前线程中subjec...原创 2019-09-05 17:00:29 · 12254 阅读 · 1 评论 -
CreateSubject------方法五doCreateSubject
关键参数:principle authenticated host sesion seesionEnabled request response securitymanager原创 2019-09-03 19:40:03 · 276 阅读 · 0 评论 -
CreateSubject------方法六saveSubject(创建session关键)
开始储存subject1、调用的是DefaultSecurityManager中的SybjectDao:该对象可以自定定义,重复判断有没有session,有没有个人信息,有放入更新session创建sesion的关键:身份信息:currenexistIngPrincipal:当前subject的身份信息existIngPrincipal:sess...原创 2019-09-03 19:38:16 · 243 阅读 · 0 评论 -
CreateSubject-------方法三resolveSession详解(重要)
方法三:功能:1、查询有没session更新session2、查看sessionid通过cookie存有session对应的id通过遍历所有cookie查询自定义的cookie3、获取默认的resolveSession详解内部有两个session方法1、if中判断方法:通过如下的id类型从容器获取session通过...原创 2019-09-03 19:31:54 · 369 阅读 · 0 评论 -
CreateSubject-------方法三resolvePrincipals
方法如下:1、获取当事人们:从容器中获取原创 2019-09-03 17:51:54 · 197 阅读 · 0 评论 -
Shiro之RedisCaheManager
1、封装了RedisManger为RedisCahe2、一个线程安全的concurrentMap统一管理创建的RedisCache3、定义了String keyPrefix = "shiro_redis_cache:"并且还可以修改核心方法:存在地方:realm中setCaheManager1、创建默认的RedisCache 可以提供参数key...原创 2019-09-04 09:13:17 · 229 阅读 · 0 评论