跟我学Shiro - 张开涛.................................................................................. 179 第二十二章 集成验证码 ................................................................................................... 证成功的认证信息。 自定义实现时一般继承 org.apache.shiro.authc.pam.AbstractAuthenticationStrategy 即可,具体 可 以 参 考 代 码 com.github.zhangkaitao.shiro.chapter2.authenticator.strategy 包 下 OnlyOneAuthenticatorStrategy 和 AtL 监、CTO、开发工程师等都是角色,不同的角色拥有一组不同的权限。 隐式角色:即直接通过角色来验证用户有没有操作权限,如在应用中 CTO、技术总监、开 发工程师可以使用打印机,假设某天不允许开发工程师使用打印机,此时需要从应用中删 除相应代码;再如在应用中 CTO、技术总监可以查看用户、查看权限;突然有一天不允许 技术总监查看用户、查看权限了,需要在相关代码中把技术总监角色从判断逻辑中删除掉; 即粒度是以角色为单位进行访问控制0 码力 | 219 页 | 4.16 MB | 10 月前3
TiDB v8.4 中文手册/node_modules/@prisma/client in 54ms 这个命令同时会根据 prisma/schema.prisma 文件中的模型定义,生成用于与数据库交互的 Prisma Client 的代 码。 第 5 步:运行代码并查看结果 运行下述命令,执行示例代码: npm start 示例代码中的主要逻辑: // 步骤 1. 导入自动生成的 `@prisma/client` 依赖包。 import 使用任意你喜欢的 GUI 客户端来进行数据库模式的更改。本文档中,将在大多数场景下,使用 MySQL 客 户端传入 SQL 文件来执行数据库模式的更改。 • 遵循 SQL 开发规范中的建表删表规范,建议业务应用内部封装建表删表语句增加判断逻辑。 4.5.3.11 更进一步 请注意,到目前为止,创建的所有表都不包含二级索引。添加二级索引的指南,请参考创建二级索引。 4.5.4 创建二级索引 在这个章节当中,将开始介绍如何使用 提供了行级别的生命周期控制策略。通过为表设置 TTL 属性,TiDB 可以周期性地自动检查并清 理表中的过期数据。此功能在一些场景可以有效节省存储空间、提升性能。 TTL 常见的使用场景: • 定期删除验证码、短网址记录 • 定期删除不需要的历史订单 • 自动删除计算的中间结果 TTL 设计的目标是在不影响在线读写负载的前提下,帮助用户周期性且及时地清理不需要的数据。TTL 会以表 为单位,并发地分发不同的任务到不同的0 码力 | 5072 页 | 104.05 MB | 10 月前3
TiDB v8.2 中文手册/node_modules/@prisma/client in 54ms 这个命令同时会根据 prisma/schema.prisma 文件中的模型定义,生成用于与数据库交互的 Prisma Client 的代 码。 第 5 步:运行代码并查看结果 运行下述命令,执行示例代码: npm start 示例代码中的主要逻辑: // 步骤 1. 导入自动生成的 `@prisma/client` 依赖包。 import 使用任意你喜欢的 GUI 客户端来进行数据库模式的更改。本文档中,将在大多数场景下,使用 MySQL 客 户端传入 SQL 文件来执行数据库模式的更改。 • 遵循 SQL 开发规范中的建表删表规范,建议业务应用内部封装建表删表语句增加判断逻辑。 4.5.3.11 更进一步 请注意,到目前为止,创建的所有表都不包含二级索引。添加二级索引的指南,请参考创建二级索引。 246 4.5.4 创建二级索引 提供了行级别的生命周期控制策略。通过为表设置 TTL 属性,TiDB 可以周期性地自动检查并清 理表中的过期数据。此功能在一些场景可以有效节省存储空间、提升性能。 TTL 常见的使用场景: • 定期删除验证码、短网址记录 • 定期删除不需要的历史订单 • 自动删除计算的中间结果 TTL 设计的目标是在不影响在线读写负载的前提下,帮助用户周期性且及时地清理不需要的数据。TTL 会以表 为单位,并发地分发不同的任务到不同的0 码力 | 4987 页 | 102.91 MB | 10 月前3
TiDB v8.5 中文手册/node_modules/@prisma/client in 54ms 183 这个命令同时会根据 prisma/schema.prisma 文件中的模型定义,生成用于与数据库交互的 Prisma Client 的代 码。 第 5 步:运行代码并查看结果 运行下述命令,执行示例代码: npm start 示例代码中的主要逻辑: // 步骤 1. 导入自动生成的 `@prisma/client` 依赖包。 import 使用任意你喜欢的 GUI 客户端来进行数据库模式的更改。本文档中,将在大多数场景下,使用 MySQL 客 户端传入 SQL 文件来执行数据库模式的更改。 • 遵循 SQL 开发规范中的建表删表规范,建议业务应用内部封装建表删表语句增加判断逻辑。 4.5.3.11 更进一步 请注意,到目前为止,创建的所有表都不包含二级索引。添加二级索引的指南,请参考创建二级索引。 4.5.4 创建二级索引 在这个章节当中,将开始介绍如何使用 提供了行级别的生命周期控制策略。通过为表设置 TTL 属性,TiDB 可以周期性地自动检查并清 理表中的过期数据。此功能在一些场景可以有效节省存储空间、提升性能。 TTL 常见的使用场景: • 定期删除验证码、短网址记录 • 定期删除不需要的历史订单 • 自动删除计算的中间结果 TTL 设计的目标是在不影响在线读写负载的前提下,帮助用户周期性且及时地清理不需要的数据。TTL 会以表 为单位,并发地分发不同的任务到不同的0 码力 | 5095 页 | 104.54 MB | 10 月前3
TiDB中文技术文档返回一个随机浮点值 SIGN() 返回参数的符号 CONV() 不同数基间转换数字,返回数字的字符串表示 TRUNCATE() 返回被舍位至指定小数位数的数字 CRC32() 计算循环冗余码校验值并返回一个 32 位无符号值 数值函数与操作符 - 120 - 本文档使用 书栈(BookStack.CN) 构建 日期和时间函数 TiDB 中日期和时间函数的使用方法与 MySQL 基本一致,详情参见: 功能描述 ANY_VALUE() 在 ONLY_FULL_GROUP_BY 模式下,防止带有 GROUP BY 的语句报错 SLEEP() 休眠指定秒数 UUID() 返回通用唯一识别码 (UUID) VALUES() 定义 INSERT 过程中要用到的值 INET_ATON() 将 IP 地址转换为数值 INET_NTOA() 将数值转换为 IP 地址 INET6_ATON() 错误码与故障诊断 本篇文档描述在使用 TiDB 过程中会遇到的问题以及解决方法。 TiDB 兼容 MySQL 的错误码,在大多数情况下,返回和 MySQL 一样的错误码。另外还有一些特有的错误码: 错误 码 说明 8001 请求使用的内存超过 TiDB 内存使用的阈值限制 8002 带有 SELECT FOR UPDATE 语句的事务,在遇到写入冲突时,为保证一致性无法进行重试,事务将进行 回滚并返回该错误0 码力 | 444 页 | 4.89 MB | 6 月前3
Hello 算法 1.2.0 简体中文 C# 版展示了原码、反码和补码之间的转换方法。 图 3‑4 原码、反码与补码之间的相互转换 原码(sign‑magnitude)虽然最直观,但存在一些局限性。一方面,负数的原码不能直接用于运算。例如在原 码下计算 1 + (−2) ,得到的结果是 −3 ,这显然是不对的。 1 + (−2) → 0000 0001 + 1000 0010 = 1000 0011 → −3 为了解决此问题,计算机引入了反码(1’s 二进制数到字符的转换。 3.4.1 ASCII 字符集 ASCII 码是最早出现的字符集,其全称为 American Standard Code for Information Interchange(美国 标准信息交换代码)。它使用 7 位二进制数(一个字节的低 7 位)表示一个字符,最多能够表示 128 个不同的 字符。如图 3‑6 所示,ASCII 码包括英文字母的大小写、数字 0 ~ 9、一些标点符号,以及一些控制字符(如 换行符和制表符)。 图 3‑6 ASCII 码 然而,ASCII 码仅能够表示英文。随着计算机的全球化,诞生了一种能够表示更多语言的 EASCII 字符集。它 在 ASCII 的 7 位基础上扩展到 8 位,能够表示 256 个不同的字符。 在世界范围内,陆续出现了一批适用于不同地区的 EASCII 字符集。这些字符集的前 128 个字符统一为 ASCII 码,后 128 个字符定义不同,以适应不同语言的需求。0 码力 | 379 页 | 18.48 MB | 10 月前3
Hello 算法 1.2.0 简体中文 Dart 版展示了原码、反码和补码之间的转换方法。 图 3‑4 原码、反码与补码之间的相互转换 原码(sign‑magnitude)虽然最直观,但存在一些局限性。一方面,负数的原码不能直接用于运算。例如在原 码下计算 1 + (−2) ,得到的结果是 −3 ,这显然是不对的。 1 + (−2) → 0000 0001 + 1000 0010 = 1000 0011 → −3 为了解决此问题,计算机引入了反码(1’s 二进制数到字符的转换。 3.4.1 ASCII 字符集 ASCII 码是最早出现的字符集,其全称为 American Standard Code for Information Interchange(美国 标准信息交换代码)。它使用 7 位二进制数(一个字节的低 7 位)表示一个字符,最多能够表示 128 个不同的 字符。如图 3‑6 所示,ASCII 码包括英文字母的大小写、数字 0 ~ 9、一些标点符号,以及一些控制字符(如 换行符和制表符)。 图 3‑6 ASCII 码 然而,ASCII 码仅能够表示英文。随着计算机的全球化,诞生了一种能够表示更多语言的 EASCII 字符集。它 在 ASCII 的 7 位基础上扩展到 8 位,能够表示 256 个不同的字符。 在世界范围内,陆续出现了一批适用于不同地区的 EASCII 字符集。这些字符集的前 128 个字符统一为 ASCII 码,后 128 个字符定义不同,以适应不同语言的需求。0 码力 | 378 页 | 18.46 MB | 10 月前3
Hello 算法 1.2.0 简体中文 Kotlin 版展示了原码、反码和补码之间的转换方法。 图 3‑4 原码、反码与补码之间的相互转换 原码(sign‑magnitude)虽然最直观,但存在一些局限性。一方面,负数的原码不能直接用于运算。例如在原 码下计算 1 + (−2) ,得到的结果是 −3 ,这显然是不对的。 1 + (−2) → 0000 0001 + 1000 0010 = 1000 0011 → −3 为了解决此问题,计算机引入了反码(1’s 二进制数到字符的转换。 3.4.1 ASCII 字符集 ASCII 码是最早出现的字符集,其全称为 American Standard Code for Information Interchange(美国 标准信息交换代码)。它使用 7 位二进制数(一个字节的低 7 位)表示一个字符,最多能够表示 128 个不同的 字符。如图 3‑6 所示,ASCII 码包括英文字母的大小写、数字 0 ~ 9、一些标点符号,以及一些控制字符(如 换行符和制表符)。 图 3‑6 ASCII 码 然而,ASCII 码仅能够表示英文。随着计算机的全球化,诞生了一种能够表示更多语言的 EASCII 字符集。它 在 ASCII 的 7 位基础上扩展到 8 位,能够表示 256 个不同的字符。 在世界范围内,陆续出现了一批适用于不同地区的 EASCII 字符集。这些字符集的前 128 个字符统一为 ASCII 码,后 128 个字符定义不同,以适应不同语言的需求。0 码力 | 382 页 | 18.48 MB | 10 月前3
Hello 算法 1.2.0 简体中文 JavaScript 版展示了原码、反码和补码之间的转换方法。 图 3‑4 原码、反码与补码之间的相互转换 原码(sign‑magnitude)虽然最直观,但存在一些局限性。一方面,负数的原码不能直接用于运算。例如在原 码下计算 1 + (−2) ,得到的结果是 −3 ,这显然是不对的。 1 + (−2) → 0000 0001 + 1000 0010 = 1000 0011 → −3 为了解决此问题,计算机引入了反码(1’s 二进制数到字符的转换。 3.4.1 ASCII 字符集 ASCII 码是最早出现的字符集,其全称为 American Standard Code for Information Interchange(美国 标准信息交换代码)。它使用 7 位二进制数(一个字节的低 7 位)表示一个字符,最多能够表示 128 个不同的 字符。如图 3‑6 所示,ASCII 码包括英文字母的大小写、数字 0 ~ 9、一些标点符号,以及一些控制字符(如 com 60 图 3‑6 ASCII 码 然而,ASCII 码仅能够表示英文。随着计算机的全球化,诞生了一种能够表示更多语言的 EASCII 字符集。它 在 ASCII 的 7 位基础上扩展到 8 位,能够表示 256 个不同的字符。 在世界范围内,陆续出现了一批适用于不同地区的 EASCII 字符集。这些字符集的前 128 个字符统一为 ASCII 码,后 128 个字符定义不同,以适应不同语言的需求。0 码力 | 379 页 | 18.47 MB | 10 月前3
Hello 算法 1.2.0 简体中文 Swift 版展示了原码、反码和补码之间的转换方法。 图 3‑4 原码、反码与补码之间的相互转换 原码(sign‑magnitude)虽然最直观,但存在一些局限性。一方面,负数的原码不能直接用于运算。例如在原 码下计算 1 + (−2) ,得到的结果是 −3 ,这显然是不对的。 1 + (−2) → 0000 0001 + 1000 0010 = 1000 0011 → −3 为了解决此问题,计算机引入了反码(1’s 二进制数到字符的转换。 3.4.1 ASCII 字符集 ASCII 码是最早出现的字符集,其全称为 American Standard Code for Information Interchange(美国 标准信息交换代码)。它使用 7 位二进制数(一个字节的低 7 位)表示一个字符,最多能够表示 128 个不同的 字符。如图 3‑6 所示,ASCII 码包括英文字母的大小写、数字 0 ~ 9、一些标点符号,以及一些控制字符(如 换行符和制表符)。 图 3‑6 ASCII 码 然而,ASCII 码仅能够表示英文。随着计算机的全球化,诞生了一种能够表示更多语言的 EASCII 字符集。它 在 ASCII 的 7 位基础上扩展到 8 位,能够表示 256 个不同的字符。 在世界范围内,陆续出现了一批适用于不同地区的 EASCII 字符集。这些字符集的前 128 个字符统一为 ASCII 码,后 128 个字符定义不同,以适应不同语言的需求。0 码力 | 379 页 | 18.48 MB | 10 月前3
共 91 条
- 1
- 2
- 3
- 4
- 5
- 6
- 10













