1.验证用户核实他们的身份
2.对用户执行访问控制,如
①判断用户是否被赋予一个确定安全的角色
②判断用户是否被允许做某件事
3.在任何环境下使用Session API,即使没有Web和EJB容器
4.在身份验证,访问控制期间或在会话的生命周期,对事件做出反应
5,聚集一个或者多个安全数据的数据源,并作为一个单一的复合用户"视图"
6.启用单点登录(SSO)功能
7,为没有关联到登录的用户启用"Remeber Me"功能
Shiro与Spring Security的对比:
shiro:
shiro较之于Spring Security,shiro在保持强大功能的同时,还在简单性和灵活性方面拥有巨大的优势。
1.易于理解的Java Security API;
2.简单的身份认证(登录),支持多种数据(LDAP,JDBC,Kerberos,ActiveDirectory);
3.对角色的简单签权 (访问控制),支持细粒度访问签权;
4.支持一级缓存,可以提升应用程序的性能
5.内置的基于POJO企业会话管理,适用于Web以及非Web的环境
6.异构客户端会话访问
7.非常简单的加密API(MD5加密)
8.不和任何框架或者容器绑定,可以独立运行
Spring Security:
除了不能脱离spring,shiro的功能他都有,而且Spring Security对Oauth,OpenID也有支持,shiro则需要自己手动实现,Spring Security的权限细粒度更高
Shiro的功能模块:
Shiro可以非常容易的开发出足够好的应用,其不仅可以用在java SE环境,也可以在javaEE 环境,Shiro可以帮助我们完成:认证,授权,加密,会话管理,与Web集成,缓存等。