类 EncryptedCookieMiddleware
用于加密和解密 Cookie 的中间件。
此中间件层将使用给定的密钥和密码类型对命名 Cookie 进行加密/解密。为了支持多个密钥/密码类型,可以使用此中间件多次。
请求数据中的 Cookie 将被解密,而响应头中的 Cookie 将自动加密。如果响应是 {@link \Cake\Http\Response},则使用 withCookie()
和 `cookie()`` 设置的 Cookie 数据也将被加密。
加密类型和填充与 CookieComponent 为向后兼容性使用的类型兼容。
属性摘要
-
$_validCiphers 受保护
list<string>
加密 Cookie 的有效密码名称。
-
$cipherType 受保护
string
加密类型。
-
$cookieNames 受保护
list<string>
要加密/解密的 Cookie 列表
-
$key 受保护
string
要使用的加密密钥。
方法摘要
-
__construct() 公共
构造函数
-
_checkCipher() 受保护
用于验证加密密码名称的辅助方法。
-
_decode() 受保护
解码和解密单个值。
-
_decrypt() 受保护
使用 Security 类中的公共 $type 方法解密 $value
-
_encrypt() 受保护
使用 Security 类中的公共 $type 方法加密 $value
-
_explode() 受保护
爆炸方法,从 CookieComponent::_implode() 中设置的字符串返回数组。保持与 1.x CookieComponent::_implode() 的向后兼容性。
-
_getCookieEncryptionKey() 受保护
获取 Cookie 加密密钥。
-
_implode() 受保护
合并方法以保持键为多维数组
-
decodeCookies() 受保护
从请求中解码 Cookie。
-
encodeCookies() 受保护
从响应的 CookieCollection 中编码 Cookie。
-
encodeSetCookieHeader() 受保护
从响应的 Set-Cookie 头中编码 Cookie
-
process() 公共
应用 Cookie 加密/解密。
方法详情
__construct() ¶ 公共
__construct(list<string> $cookieNames, string $key, string $cipherType = 'aes')
构造函数
参数
-
list<string>
$cookieNames 应该对其值进行加密的 Cookie 名称列表。
-
string
$key 要使用的加密密钥。
-
string
$cipherType 可选 要使用的密码类型。默认为 'aes'。
_checkCipher() ¶ 受保护
_checkCipher(string $encrypt): void
用于验证加密密码名称的辅助方法。
参数
-
string
$encrypt 密码名称。
返回
void
抛出
RuntimeException
当提供无效的密码时。
_decode() ¶ 受保护
_decode(string $value, string|false $encrypt, string|null $key): array|string
解码和解密单个值。
参数
-
string
$value 要解码和解密的值。
-
string|false
$encrypt 要使用的加密密码。
-
string|null
$key 如果指定,用作安全盐。
返回
array|string
_decrypt() ¶ 受保护
_decrypt(list<string>|string $values, string|false $mode, string|null $key = null): array|string
使用 Security 类中的公共 $type 方法解密 $value
参数
-
list<string>|string
$values 要解密的值
-
string|false
$mode 加密模式
-
string|null
$key 可选 如果指定,用作安全盐。
返回
array|string
_encrypt() ¶ 受保护
_encrypt(array|string $value, string|false $encrypt, string|null $key = null): string
使用 Security 类中的公共 $type 方法加密 $value
参数
-
array|string
$value 要加密的值
-
string|false
$encrypt 要使用的加密模式。False 禁用加密。
-
string|null
$key 可选 如果指定,用作安全盐。
返回
string
_explode() ¶ 受保护
_explode(string $string): array|string
爆炸方法,从 CookieComponent::_implode() 中设置的字符串返回数组。保持与 1.x CookieComponent::_implode() 的向后兼容性。
参数
-
string
$string 包含 JSON 编码数据或裸字符串的字符串。
返回
array|string
_getCookieEncryptionKey() ¶ 受保护
_getCookieEncryptionKey(): string
获取 Cookie 加密密钥。
CookieCryptTrait 实现的一部分。
返回
string
decodeCookies() ¶ 受保护
decodeCookies(Psr\Http\Message\ServerRequestInterface $request): Psr\Http\Message\ServerRequestInterface
从请求中解码 Cookie。
参数
-
Psr\Http\Message\ServerRequestInterface
$request 要从中解码 Cookie 的请求。
返回
Psr\Http\Message\ServerRequestInterface
encodeCookies() ¶ 受保护
encodeCookies(Cake\Http\Response $response): Cake\Http\Response
从响应的 CookieCollection 中编码 Cookie。
参数
-
Cake\Http\Response
$response 要编码 Cookie 的响应。
返回
Cake\Http\Response
encodeSetCookieHeader() ¶ 受保护
encodeSetCookieHeader(Psr\Http\Message\ResponseInterface $response): Psr\Http\Message\ResponseInterface
从响应的 Set-Cookie 头中编码 Cookie
参数
-
Psr\Http\Message\ResponseInterface
$response 要编码 Cookie 的响应。
返回
Psr\Http\Message\ResponseInterface
process() ¶ 公共
process(ServerRequestInterface $request, RequestHandlerInterface $handler): Psr\Http\Message\ResponseInterface
应用 Cookie 加密/解密。
处理传入的服务器请求以生成响应。如果无法自行生成响应,它可能会委托给提供的请求处理程序来执行此操作。
参数
-
ServerRequestInterface
$request 请求。
-
RequestHandlerInterface
$handler 请求处理程序。
返回
Psr\Http\Message\ResponseInterface