怎么直接做免费网站,杭州市网站建设,国家工商企业注册查询网官网,北京软件开发外包公司1.是什么 Apache Shiro 是一个功能强大且易于使用的 Java 安全(权限)框架。Shiro 可以完 成#xff1a;认证、授权、加密、会话管理、与 Web 集成、缓存 等。借助 Shiro 您可以快速轻松 地保护任何应用程序——从最小的移动应用程序到最大的 Web 和企业应用程序。 官网…1.是什么 Apache Shiro 是一个功能强大且易于使用的 Java 安全(权限)框架。Shiro 可以完 成认证、授权、加密、会话管理、与 Web 集成、缓存 等。借助 Shiro 您可以快速轻松 地保护任何应用程序——从最小的移动应用程序到最大的 Web 和企业应用程序。 官网https://shiro.apache.org/
2.为什么要用Shiro 自 2003 年以来 框架格局发生了相当大的变化因此今天仍然有很多系统在使用 Shiro。这 与 Shiro 的特性密不可分。 易于使用使用 Shiro 构建系统安全框架非常简单。就算第一次接触也可以快速掌 握。 全面Shiro 包含系统安全框架需要的功能满足安全需求的“一站式服务”。 灵活Shiro 可以在任何应用程序环境中工作。虽然它可以在 Web、EJB 和 IoC 环境 中工作但不需要依赖它们。Shiro 也没有强制要求任何规范甚至没有很多依赖项。 强力支持 WebShiro 具有出色的 Web 应用程序支持可以基于应用程序 URL 和 Web 协议例如 REST创建灵活的安全策略同时还提供一组 JSP 库来控制页面输出。 兼容性强Shiro 的设计模式使其易于与其他框架和应用程序集成。Shiro 与 Spring、Grails、Wicket、Tapestry、Mule、Apache Camel、Vaadin 等框架无缝集成。 社区支持Shiro 是 Apache 软件基金会的一个开源项目有完备的社区支持文档 支持。如果需要像 Katasoft 这样的商业公司也会提供专业的支持和服务。 3.Shiro与SpringSecurity的对比 1、Spring Security 基于 Spring 开发项目若使用 Spring 作为基础配合 Spring Security 做权限更加方便而 Shiro 需要和 Spring 进行整合开发 2、Spring Security 功能比 Shiro 更加丰富些例如安全维护方面 3、Spring Security 社区资源相对比 Shiro 更加丰富 4、Shiro 的配置和使用比较简单Spring Security 上手复杂些 5、Shiro 依赖性低不需要任何框架和容器可以独立运行.Spring Security 依赖 Spring 容器 6、shiro 不仅仅可以使用在 web 中它可以工作在任何应用环境中。在集群会话时 Shiro 最重要的一个好处或许就是它的会话是独立于容器的。 4.基本功能 1、基本功能点如下图所示 2、功能简介 1Authentication身份认证/登录验证用户是不是拥有相应的身份 2Authorization授权即权限验证验证某个已认证的用户是否拥有某个权限即 判断用 户是否能进行什么操作如验证某个用户是否拥有某个角色。或者细粒度的验证 某个用户 对某个资源是否具有某个权限 3Session Manager会话管理即用户登录后就是一次会话在没有退出之前它的 所有 信息都在会话中会话可以是普通 JavaSE 环境也可以是 Web 环境的 4Cryptography加密保护数据的安全性如密码加密存储到数据库而不是明文存 储 5Web SupportWeb 支持可以非常容易的集成到 Web 环境 6Caching缓存比如用户登录后其用户信息、拥有的角色/权限不必每次去查这 样可 以提高效率 7ConcurrencyShiro 支持多线程应用的并发验证即如在一个线程中开启另一个线 程能把权限自动传播过去 8Testing提供测试支持 9Run As允许一个用户假装为另一个用户如果他们允许的身份进行访问 10Remember Me记住我这个是非常常见的功能即一次登录后下次再来的话不用 登 录了 5.原理 1、Shiro 架构(Shiro 外部来看) 从外部来看 Shiro 即从应用程序角度的来观察如何使用 Shiro 完成 工作 Shiro 架构 1Subject应用代码直接交互的对象是 Subject也就是说 Shiro 的对外 API 核心 就是 Subject。Subject 代表了当前“用户” 这个用户不一定 是一个具体的人与当 前应用交互的任何东西都是 Subject如网络爬虫 机器人等与 Subject 的所有交互 都会委托给 SecurityManager Subject 其实是一个门面SecurityManager 才是实际的 执行者 2SecurityManager安全管理器即所有与安全有关的操作都会与 SecurityManager 交互且其管理着所有 Subject可以看出它是 Shiro 的核心它负责与 Shiro 的其他 组件进行交互它相当于 SpringMVC 中 DispatcherServlet 的角色 3RealmShiro 从 Realm 获取安全数据如用户、角色、权限就是说 SecurityManager 要验证用户身份那么它需要从 Realm 获取相应的用户 进行比较以确 定用户身份是否合法也需要从 Realm 得到用户相应的角色/ 权限进行验证用户是否能进 行操作可以把 Realm 看成 DataSource 2 、 Shiro 架构 (Shiro 内部来看 ) Shiro 架构 1Subject任何可以与应用交互的“用户” 2SecurityManager 相当于 SpringMVC 中的 DispatcherServlet是 Shiro 的心 脏 所有具体的交互都通过 SecurityManager 进行控制它管理着所有 Subject、且负 责进 行认证、授权、会话及缓存的管理。 3Authenticator负责 Subject 认证是一个扩展点可以自定义实现可以使用认 证 策略Authentication Strategy即什么情况下算用户认证通过了 4Authorizer授权器、即访问控制器用来决定主体是否有权限进行相应的操作即 控 制着用户能访问应用中的哪些功能 5Realm可以有 1 个或多个 Realm可以认为是安全实体数据源即用于获取安全实 体 的可以是 JDBC 实现也可以是内存实现等等由用户提供所以一般在应用中都需 要 实现自己的 Realm 6SessionManager管理 Session 生命周期的组件而 Shiro 并不仅仅可以用在 Web 环境也可以用在如普通的 JavaSE 环境 7CacheManager缓存控制器来管理如用户、角色、权限等的缓存的因为这些数据 基本上很少改变放到缓存中后可以提高访问的性能 8Cryptography密码模块Shiro 提高了一些常见的加密组件用于如密码加密/解 密。