- 1、本文档共18页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
系统拆分培训讲述
* * * 系统整合培训 LOGO * CONTENTS PAGE 目录页 1 系统拆分概述 系统拆分技术准备 如何拆分? 达到目标 2 3 4 * TRANSITION PAGE 过渡页 为什么要拆分? 拆分遵循的原则 第一章 系统拆分概述 第一章 系统拆分概述 1. 随着业务的发展,模块之间的耦合性越来越强 第一节 为什么要拆分? 1. 系统按照业务拆分 按照高内聚、 低耦合的条件进行拆分 2. 开发人员越来越多,相互之间代码版本也难以管理 4.系统越大,硬件要求也会越来越高,但是硬件是有极 限的, 随着数据量以及并发量的不断上升,其解决方案 的成本也会随之直线上涨 3. 难于维护,难于扩展 第二节 拆分遵循的原则 2. 尽量减少系统之间的通信 第二章 技术准备 第二章 系统拆分技术准备? CAS单点登录 Shiro 单点登录流程图 第一节 CAS单点登录 Maven继承管理依赖包及拆分的子项目依赖关系说明 Dubbo使用 Rabbit MQ使用 第二章 技术准备 左图是一个最基础的 CAS 协议, CAS Client 以 Filter 方式保护 Web 应用的受保护资源,过滤从客户端过来的每一个 Web 请求,同时, CAS Client 会分析 HTTP 请求中是否包含 Service Ticket( 左图中的 Ticket) ,如果没有,则说明该用户是没有经过认证的,于是, CAS Client 会重定向用户请求到 CAS Server ( Step 2 )。 Step 3 是用户认证过程,如果用户提供了正确的 Credentials , CAS Server 会产生一个随机的 Service Ticket ,然后,缓存该 Ticket ,并且重定向用户到 CAS Client (附带刚才产生的 Service Ticket ), Service Ticket 是不可以伪造的,最后, Step 5 和 Step6 是 CAS Client 和 CAS Server 之间完成了一个对用户的身份核实,用 Ticket 查到 Username 第二章 技术准备 第二节 Shiro Shiro能做什么? 认证、授权、加密、会话管理、 与Web集成、缓存等。 Authentication:身份认证/登录,验证用户是不是拥有相应的身份;(在我们系统是用CAS做身份认证, shiro做授权功能) Authorization:授权,即权限验证,验证某个已认证的用户是否拥有某个权限;即判断用 户是否能做事情,常见的如:验证某个用户是否拥有某个角色。或者细粒度的验证某个用 户对某个资源是否具有某个权限; Session Manager:会话管理,即用户登录后就是一次会话,在没有退出之前,它的所有信 息都在会话中;会话可以是普通JavaSE环境的,也可以是如Web环境的; Cryptography:加密,保护数据的安全性,如密码加密存储到数据库,而不是明文存储; Web Support:Web 支持,可以非常容易的集成到Web 环境; Caching:缓存,比如用户登录后,其用户信息、拥有的角色/权限不必每次去查,这样可以提高效率; 第二章 技术准备 Concurrency:shiro 支持多线程应用的并发验证,即如在一个线程中开启另一个线程,能 把权限自动传播过去; Testing:提供测试支持; Run As:允许一个用户假装为另一个用户(如果他们允许)的身份进行访问; Remember Me:记住我,这个是非常常见的功能,即一次登录后,下次再来的话不用登录 了。 记住一点,Shiro 不会去维护用户、维护权限;这些需要我们自己去设计/提供;然后通过 相应的接口注入给Shiro即可。 可以看到:应用代码直接交互的对象是Subject,也就是说Shiro的对外API核心就是Subject; 其每个API的含义: Subject:主体,代表了当前“用户”,这个用户不一定是一个具体的人,与当前应用交互 的任何东西都是Subject,如网络爬虫,机器人等;即一个抽象概念;所有Subject 都绑定 到SecurityManager,与Subject的所有交互都会委托给SecurityManager;可以把Subject认 为是一个门面;SecurityManager才是实际的执行者; SecurityManager:安全管理器;即所有与安全有关的操作都会与SecurityManager 交互; 且它管理着所有Subject;可以看出它是Shiro 的核心,它负责与后边介绍的其他组件进行 交互,如果学习过SpringMVC,你可以把它看成DispatcherServl
文档评论(0)