权限管理概述
1.Apache Shiro
Apache Shiro 是一个强大易用的java安全框架,它可以实现身份验证、授权、密码和会话管理等功能
2.SPring Security
Spring Security 也是目前较为流行的一个安全管理框架,它与Spring紧密的结合在一起
3.Shiro和 Spring Security 比较
Shiro比Spring Security更容易上手使用和理解,Shiro可以不跟任何框架和容器绑定,可独立运行,而Spring Security 则必须要有Spring环境, Shiro 可能没有 Spring Security 做的功能强大,但在开发项目中,哪个更能快速的解决问题,就用哪个,没有最好用的,合适才是最好的。
Shiro概述
Shiro 主要组件包括:Subject,SecurityManager,Authenticator,Authorizer,SessionManager,CacheManager,Cryptography,Realms。
1.Subject(用户) :访问系统用户,主体可以是用户、程序等,进行认证的都称为主体,基本意思是"当前操作用户"。
在程序任意位置可以使用
Subject currentUser = SecurityUtils.getSubject()
获取到subject主体对象,类似
Employee user = UserContext.getUser()
2.securityManager(安全管理器):它是 shiro 功能实现的核心,负责与后边介绍的其他组件(认证器/授权器/缓存控制器)进行交互,实现 subject 委托的各种功能。有点类似于SpringMVC 中的 DispatcherServlet 前端控制器,负责进行分发调度。
3.Realms(数据源):Realm 充当了 Shiro 与应用安全数据间的“桥梁”或者“连接器”。;可以把Realm 看成 DataSource,即安全数据源。执行认证(登录)和授权(访问控制)时,Shiro 会从应用配置的 Realm 中查找相关的比对数据。以确认用户是否合法,操作是否合理。