推荐:跟我学shiro http://jinnianshilongnian.iteye.com/blog/2018398
权限,安全管理是一个完整系统的基本要素
shiro是apache推出的开源项目: shiro可以帮助我们认证,授权,加密,会话管理,与web集成,缓存等。
Shiro不会去维护用户,维护权限;这些去设计、提供;然后通过相应的接口注入给shiro即可
应用代码直接交互的对象是subject,就是shiro的对外API的核心就是subject
subject:主体,代表了当前‘用户’,所有subject都绑定到securityManager,与subject的所有交互都会委托给securityManager.
securityManager:与所有安全相关的操作都会与securityManager交互,是shiro的核心
realm:域,从realm获取安全数据(如用户,角色,权限),securityManager从realm中获取相应的用户进行比较以确认用户的身份信息。
1.应用代码通过subject进行认证和授权,而subject又委托给securityManager
2.给securityManager注入realm,获取判断依据
shiro不提供维护用户、权限,而是通过realm让开发人员注入
身份验证:
用户需要提供principals(身份)和credentials(证明)给shiro
一个主体可以有多个principals 但只能有一个Primary principals
credentials只有主体才知道的安全值,如密码、数字证书
最常见的principals和credentials是用户名、密码的组合
realm:看成datasource,即安全数据源。