Shiro是aoache旗下的一个开源安全框架(http://shiro.apache.org/),他将软件系统的安全认证相关功能抽取出来,实现用户身份认证,权限授权,加密会话管理等功能,组成了一个通用的安全认证框架,使用shiro 就可以非常快速的完成认证,授权等功能的开发,降低系统成本!
- 构建并初始化SecurityManager对象,然后将此对象交给spring管理.
- 说明:@Bean注解应用于@Configuration注解描述的类的内部,通过此注解描述的方法,
- 方法的返回值会交给spring管理,默认bean的名字为方法名.
- @return 返回值shiro中的安全管理器对象,是shiro框架的核心,此对象中实现了 认证,授权,会话,缓存,加密等一列功能的实现.
- 此对象实现了认证授权会话缓存加密等一系列功能的实现。
构建并初始化ShiroFilterFactoryBean对象
*通过此对象,创建过滤器工厂,进而通过过滤器工厂创建过滤器(filter),
- 并通过过滤器对请求信息进行过滤,例如检测此请求是否需要
- 认证或此请求是否已认证.
凭证适配器
检查用户权限,并为访问目标切入点方法的用户做授权操作.
配置授权对应的Advisor对象,此对象会在spring启动时加载,并且通过此
- 对象可以找到@RequiresPermissions注解描述的方法,然后这些方法在运
- 行时,由此Advisor对象,调用SecurityManager中的checkPermissions方法
从缓冲中取用户权限
- 配置CacheManager对象,此对象中管理着一个Cache对象,此cache可以存储授权时获取的用户权限信息,下次在授权时可以直接从缓存取用户权限,
- 这样可以减少对数据库的访问压力,并提高其授权性能.
- FAQ?我们知道此管理器内置一个Cache对象,那请问谁来调用此管理器并获取cache呢?
- SecurityManager (因为此对象负责授权,授权就需要获取用户权限.)
Session
此对象是在服务端记录客户端与服务端会话状态的一个对象,
- 这个对象一般是一个会话创建一个,并且会有一个唯一标识(JSESSIONID).
- 可以通过这样的对象来记录登录用户信息,记录购物车信息,记录验证码信息
- SessionManager 是什么?管理session的一个对象
cookie
1.HTTP协议是一种无状态协议,无法存储客户端与服务端的会话状态.
2.客户端与与服务端通讯过程中产生的会话状态信息存储到哪里?(cookie或session)
3.cookie对象由服务端创建,但是是在客户端保存信息的一个对象.
4.cookie对象的类型有两种:会话cookie和持久cookie(我们手动设置了生命周期)
5.会话Cookie在浏览器关闭时,生命周期自动结束.
6.Session对象由服务端创建,并在服务端保存状态信息的一个对象.
7.session对象创建以后会将session对象的id以会话cookie形式写到客户端,客户端可以
再访问服务器时基于这个id找到服务端的session.
8.浏览器关闭,会话cookie结束,写到客户端的jsessionid也就无效了,此时客户端再访问服务
器无法基于jsessionid找到对应的session了(服务端的session可能还是存在的).
设置Cookie有效期
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。