- #
- C
- N
- O
- P
- R
Attributes
| [RW] | transitional | 如果为 true,则在构建消息验证器时会交换前两个轮换选项集。例如,使用以下配置,消息验证器将使用 verifiers = ActiveSupport::MessageVerifiers.new { ... }
verifiers.rotate(serializer: JSON, url_safe: true)
verifiers.rotate(serializer: Marshal, url_safe: true)
verifiers.rotate(serializer: Marshal, url_safe: false)
verifiers.transitional = true
当应用程序执行滚动部署时,这会很有用,在这种情况下,尚未更新的服务器仍必须能够验证来自已更新服务器的消息。在这种情况下,首先使用新的轮换(例如 |
类公共方法
new(&secret_generator) 链接
初始化一个新实例。secret_generator 必须接受一个 salt,并返回一个合适的 secret(字符串)。secret_generator 还可以接受任意的 kwargs。如果使用包含与这些 kwargs 匹配的任何选项调用 rotate,则这些选项将传递给 secret_generator 而不是消息验证器。
verifiers = ActiveSupport::MessageVerifiers.new do |salt, base:| MySecretGenerator.new(base).generate(salt) end verifiers.rotate(base: "...")
Source: 在 GitHub 上
# File activesupport/lib/active_support/message_verifiers.rb, line 34
实例公共方法
[](salt) 链接
返回一个使用从给定 salt 派生的 secret 和来自 rotate 的选项配置的 MessageVerifier。MessageVerifier 实例将被缓存,因此相同的 salt 将返回相同的实例。
Source: 在 GitHub 上
# File activesupport/lib/active_support/message_verifiers.rb, line 53
[]=(salt, verifier) 链接
覆盖与给定 salt 关联的 MessageVerifier 实例。
Source: 在 GitHub 上
# File activesupport/lib/active_support/message_verifiers.rb, line 64
clear_rotations 链接
清除选项集列表。
Source: 在 GitHub 上
# File activesupport/lib/active_support/message_verifiers.rb, line 161
on_rotation(&callback) 链接
设置一个回调,在消息使用第一个选项集以外的选项集进行验证时调用。
例如,此回调可以记录每次调用它的情况,从而指示旧选项集是否仍在 O 使用或可以从轮换中 O 删除。
Source: 在 GitHub 上
# File activesupport/lib/active_support/message_verifiers.rb, line 170
prepend(**options)
prepend(&block) 链接
与 rotate 相同,但会将给定的选项或块添加到选项集列表的前面。
这在您拥有已配置的 MessageVerifiers 实例,但又想 O 覆盖消息签名方式时很有用。
module ThirdParty
VERIFIERS = ActiveSupport::MessageVerifiers.new { ... }.
rotate(serializer: Marshal, url_safe: true).
rotate(serializer: Marshal, url_safe: false)
end
ThirdParty.VERIFIERS.prepend(serializer: JSON, url_safe: true)
# Uses `serializer: JSON, url_safe: true`.
# Falls back to `serializer: Marshal, url_safe: true` or
# `serializer: Marshal, url_safe: false`.
ThirdParty.VERIFIERS[:foo]
Source: 在 GitHub 上
# File activesupport/lib/active_support/message_verifiers.rb, line 124
rotate(**options)
rotate(&block) 链接
将 options 添加到选项集列表。Messages 将使用列表中的第一个 O 集进行签名。然而,在验证时,将按顺序尝试每个 O 集,直到一个成功为止。
特别地,:secret_generator 选项可以指定一个与最初指定的 O 不同的 secret O generator。secret O generator 必须响应 call,接受一个 salt,并返回一个合适的 secret(字符串)。secret O generator O 还可以接受任意的 kwargs。
如果任何选项与当前 O generator 的 kwargs 匹配,则这些选项将传递给 secret O generator 而不是消息 O verifier。
对于 O 细粒度的 O 每个 O salt 的 O 轮换,支持 O 块 O 形式。O 块 O 将 O 接收 O salt,并 O 应 O 返回 O 一个 O 适当的 O 选项 O Hash。O 块 O O 也可以 O 返回 O nil O 来 O 指示 O 该 O 轮换 O 不 O 适用于 O 给定的 O salt。O 例如
verifiers = ActiveSupport::MessageVerifiers.new { ... }
verifiers.rotate do |salt|
case salt
when :foo
{ serializer: JSON, url_safe: true }
when :bar
{ serializer: Marshal, url_safe: true }
end
end
verifiers.rotate(serializer: Marshal, url_safe: false)
# Uses `serializer: JSON, url_safe: true`.
# Falls back to `serializer: Marshal, url_safe: false`.
verifiers[:foo]
# Uses `serializer: Marshal, url_safe: true`.
# Falls back to `serializer: Marshal, url_safe: false`.
verifiers[:bar]
# Uses `serializer: Marshal, url_safe: false`.
verifiers[:baz]
Source: 在 GitHub 上
# File activesupport/lib/active_support/message_verifiers.rb, line 73
rotate_defaults 链接
使用默认选项调用 rotate。
Source: 在 GitHub 上
# File activesupport/lib/active_support/message_verifiers.rb, line 152