跟我学Shiro - 张开涛............................................................................................ 76 自定义拦截器 ............................................................................................... 接下来我们分别从外部和内部来看看 Shiro 的架构,对于一个好的框架,从外部来看应该 具有非常简单易于使用的 API,且 API 契约明确;从内部来看的话,其应该有一个可扩展 的架构,即非常容易插入用户自定义实现,因为任何框架都不能满足所有需求。 首先,我们从外部来看 Shiro 吧,即从应用程序角度的来观察如何使用 Shiro 完成工作。如 下图: 可以看到:应用代码直接交互的对象是S 进行控制;它管 理着所有 Subject、且负责进行认证和授权、及会话、缓存的管理。 Authenticator:认证器,负责主体认证的,这是一个扩展点,如果用户觉得 Shiro 默认的 不好,可以自定义实现;其需要认证策略(Authentication Strategy),即什么情况下算用户 认证通过了; Authrizer:授权器,或者访问控制器,用来决定主体是否有权限进行相应的操作;即控制 着用户能访问应用中的哪些功能;0 码力 | 219 页 | 4.16 MB | 10 月前3
Python 标准库参考指南 3.11.10 字符串常量 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115 6.1.2 自定义字符串格式化 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116 6.1.3 格式字符串语法 . . . . . . . . . . . . . . . 285 8.10 types --- 动态类型创建和内置类型名称 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 286 8.10.1 动态类型创建 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 381 10 函数式编程模块 385 10.1 itertools --- 为高效循环而创建迭代器的函数 . . . . . . . . . . . . . . . . . . . . . . . . . . 385 10.1.1 Itertool 函数 . . . . . . . . .0 码力 | 2399 页 | 11.19 MB | 9 月前3
Python 标准库参考指南 3.10.15 字符串常量 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109 6.1.2 自定义字符串格式化 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110 6.1.3 格式字符串语法 . . . . . . . . . . . . . . . 268 8.10 types --- 动态类型创建和内置类型名称 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 269 8.10.1 动态类型创建 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 284 8.14.2 创建 Enum . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 284 8.140 码力 | 2207 页 | 10.45 MB | 9 月前3
Python 标准库参考指南 3.13 字符串常量 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111 6.1.2 自定义字符串格式化 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112 6.1.3 格式字符串语法 . . . . . . . . . . . . . . . . . . 275 8.10 types --- 动态类型创建和内置类型名称 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 276 8.10.1 动态类型创建 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 373 10 函数式编程模块 377 10.1 itertools --- 为高效循环创建迭代器的函数 . . . . . . . . . . . . . . . . . . . . . . . . . . 377 10.1.1 Itertool 函数 . . . . . . . . .0 码力 | 2246 页 | 11.74 MB | 9 月前3
Python 标准库参考指南 3.13 字符串常量 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111 6.1.2 自定义字符串格式化 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112 6.1.3 格式字符串语法 . . . . . . . . . . . . . . . . . . 273 8.10 types --- 动态类型创建和内置类型名称 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 274 8.10.1 动态类型创建 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 370 10 函数式编程模块 373 10.1 itertools --- 为高效循环创建迭代器的函数 . . . . . . . . . . . . . . . . . . . . . . . . . . 373 10.1.1 Itertool 函数 . . . . . . . . .0 码力 | 2242 页 | 11.73 MB | 9 月前3
Python 标准库参考指南 3.12 字符串常量 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107 6.1.2 自定义字符串格式化 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108 6.1.3 格式字符串语法 . . . . . . . . . . . . . . . . . . 267 8.10 types --- 动态类型创建和内置类型名称 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 268 8.10.1 动态类型创建 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 361 10 函数式编程模块 365 10.1 itertools --- 为高效循环创建迭代器的函数 . . . . . . . . . . . . . . . . . . . . . . . . . . 365 10.1.1 Itertool 函数 . . . . . . . . .0 码力 | 2253 页 | 11.81 MB | 9 月前3
Python 标准库参考指南 3.12 字符串常量 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107 6.1.2 自定义字符串格式化 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108 6.1.3 格式字符串语法 . . . . . . . . . . . . . . . . . . 267 8.10 types --- 动态类型创建和内置类型名称 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 268 8.10.1 动态类型创建 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 361 10 函数式编程模块 365 10.1 itertools --- 为高效循环创建迭代器的函数 . . . . . . . . . . . . . . . . . . . . . . . . . . 365 10.1.1 Itertool 函数 . . . . . . . . .0 码力 | 2253 页 | 11.81 MB | 9 月前3
Python 标准库参考指南 3.10.15 字符串常量 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101 6.1.2 自定义字符串格式化 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102 6.1.3 格式字符串语法 . . . . . . . . . . . . . . . . . . 249 8.10 types --- 动态类型创建和内置类型名称 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 251 8.10.1 动态类型创建 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 模块内容 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 264 8.14.2 创建 Enum . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 265 8.14.30 码力 | 2072 页 | 10.39 MB | 9 月前3
Python 标准库参考指南 3.11.10 字符串常量 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107 6.1.2 自定义字符串格式化 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108 6.1.3 格式字符串语法 . . . . . . . . . . . . . . . . . . 267 8.10 types --- 动态类型创建和内置类型名称 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 269 8.10.1 动态类型创建 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 357 10 函数式编程模块 361 10.1 itertools --- 为高效循环而创建迭代器的函数 . . . . . . . . . . . . . . . . . . . . . . . . 361 10.1.1 Itertool 函数 . . . . . . . . . . .0 码力 | 2248 页 | 11.10 MB | 9 月前3
Python 标准库参考指南 3.9.20 字符串常量 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103 6.1.2 自定义字符串格式化 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104 6.1.3 格式字符串语法 . . . . . . . . . . . . . . . 256 8.10 types --- 动态类型创建和内置类型名称 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 257 8.10.1 动态类型创建 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 271 8.14.2 创建 Enum . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 272 8.140 码力 | 2146 页 | 10.17 MB | 9 月前3
共 129 条
- 1
- 2
- 3
- 4
- 5
- 6
- 13













