Shiro框架-面试篇
1、什么是Shiro?
Shiro是一个权限管理的安全框架,可以帮助我们完成认证、授权、加密、会话管理、Web集成和缓存等。
2、三个核心组件:
(1)Subject,当前操作用户。
(2)SecurityManager,最核心的组件,是Shiro框架的控制器,通过它来管理内部组件实例,并提供安全管理的各种服务。
(3)Realm,定义了访问数据的方式,用来连接不同的数据源,是Shiro与引用安全数据间的桥梁。
3、Shiro主要的四个组件:
(1)SecurityManager,典型的Facade模式,Shiro通过它来管理内部组件实例,并提供安全管理的各种服务。(Facade,外观模式,为多个子系统对外提供一个共同的接口)
(2)Authernticator,对用户名和密码进行核实。
(3)Authorizer,身份验证通过后,对登录用户进行访问权限控制。
(4)Session Manager,保证异构系统的访问。(异构系统,客户端和服务端为不同语言所开发)
4、Shiro的四种权限控制方式
(1)url级别权限控制,基于filter过滤器实现
(2)方法注解权限控制,基于代理技术实现,在代码方法上用注解声明调用该方法需要的权限。
(3)页面标签权限控制,页面标签技术实现。
(4)代码级别权限控制
5、什么是粗颗粒和细颗粒权限,及它们如何授权?
粗颗粒权限:针对url连接的控制。可以使用过滤器统一拦截url
细颗粒权限:针对数据级别的控制。根据业务需求,在对应的service中控制。