安全框架就是解决系统安全问题的框架,如果没有安全框架,我们需要手动处理每个资源的访问控制,比较繁琐。使用安全框架,可以通过配置的方式实现对资源的访问限制。
Apache Shiro 是 Java 的一个安全框架。目前,使用 Apache Shiro 的人越来越多,因为它相当简单,对比 Spring Security,可能没有 Spring Security 做的功能强大,但是在实际工作时可能并不需要那么复杂的东西,所以使用小而简单的 Shiro 就足够了。
Shiro 可以非常容易的开发出足够好的应用,其不仅可以用在 JavaSE 环境,也可以用在 JavaEE 环境。Shiro 可以帮助我们完成:认证、授权、加密、会话管理、与 Web 集成、缓存等。
基础框架:
Authentication(认证):就是我们常说的“登录”,永安里验证用户身份。
Authorization(授权):访问控制,用于验证已经认证通过的用户是否拥有某个权限,比如某个用户能访问某些资源资源,不同的身份的用户能访问的资源不一样。
SessionManagement(会话管理):管理用户相关的Session,用户的一次登录就是一次会话,在没有退出登录之前,用户的所有信息都存在会话中。
Cryptography(加密):保证数据的安全性,Shrio内置多种加密方式,比如Base 64和16进制字符串编码和解码,可以非常方便地使用各种加密算法保证数据的安全。
Shiro还有一些其他特性:
WebSupport(Web支持):Shiro自带的支持Web的API可以很容易地集成到web环境中。
Caching(缓存):Shiro会将已经登录的用户信息缓存起来,这样就不用每次都去查,提高效率。
Concurrency(并发性):Shiro的并发功能支持开发多线程的应用。
Testing(测试):Shiro支持单元测试和集成测试。
RememberMe(记住我):用户选择“记住我”选项后,后面访问便不需要再登陆,即可以跨会话访问,只在某些特殊情况下才需要强制登录,比如token失效。