CredentialHandler 组件
目录
简介
CredentialHandler 元素表示由 领域 使用的组件,用于将提供的凭证(例如密码)与 领域 存储的凭证版本进行比较。CredentialHandler 还可以用于生成给定凭证的新存储版本,例如,在将新用户添加到 领域 或更改用户密码时需要这样做。
CredentialHandler 元素必须嵌套在 领域 组件中。如果没有包含,将使用 MessageDigestCredentialHandler 创建默认 CredentialHandler。
属性
通用属性
CredentialHandler 的所有实现都支持以下属性
属性 | 说明 |
---|---|
className |
要使用的实现的 Java 类名称。此类必须实现 |
与大多数 Catalina 组件不同,有几个标准 CredentialHandler 实现可用。因此,如果存在 CredentialHandler 元素,则必须使用 className
属性来选择要使用的实现。
MessageDigestCredentialHandler
当存储的密码受消息摘要保护时,将使用 MessageDigestCredentialHandler。此凭据处理程序支持以下形式的存储密码
- plainText - 如果未指定算法,则为纯文本凭据
- encodedCredential - 使用已配置摘要处理密码的十六进制编码摘要
- {MD5}encodedCredential - 密码的 Base64 编码 MD5 摘要
- {SHA}encodedCredential - 密码的 Base64 编码 SHA1 摘要
- {SSHA}encodedCredential - 20 个字符的盐,后跟经过 Base64 编码的加盐 SHA1 摘要
- salt$iterationCount$encodedCredential - 十六进制编码的盐、迭代代码和十六进制编码的凭据,每个都用 $ 分隔
如果存储的密码格式不包含迭代计数,则使用迭代计数 1。
如果存储的密码格式不包含盐,则不使用盐。
属性 | 说明 |
---|---|
algorithm |
用于对存储在数据库中的用户密码进行编码的 |
encoding |
处理密码的摘要要求将其转换为字节。此属性确定在字符和字节之间进行转换时要使用的字符编码。如果未指定,则将使用 UTF-8。 |
iterations |
从明文凭据创建新的存储凭据时要使用的迭代次数。 |
saltLength |
从明文凭据创建新的存储凭据时要使用的随机生成的盐的长度。 |
NestedCredentialHandler
NestedCredentialHandler 是 CredentialHandler 的实现,它委托给一个或多个子 CredentialHandlers。
使用 NestedCredentialHandler 使开发人员能够组合多个相同或不同类型的 CredentialHandler。
子 CredentialHandlers 通过在定义 NestedCredentialHandler 的 CredentialHandler
元素内嵌套 CredentialHandler 元素来定义。凭据将按其列出的顺序与每个 CredentialHandler
进行匹配。与任何 CredentialHandler 的匹配都足以使凭据被视为匹配。
SecretKeyCredentialHandler
当使用 javax.crypto.SecretKeyFactory
构建存储的密码时,将使用 SecretKeyCredentialHandler。此凭据处理程序支持以下形式的存储密码
- salt$iterationCount$encodedCredential - 十六进制编码的盐、迭代代码和十六进制编码的凭据,每个都用 $ 分隔
如果存储的密码格式不包含迭代计数,则使用迭代计数 1。
如果存储的密码格式不包含盐,则不使用盐。
属性 | 说明 |
---|---|
algorithm |
用于对存储在数据库中的用户密码进行编码的密钥算法的名称。如果未指定,则使用默认值 |
keyLength |
为存储的凭证生成密钥的长度。如果未指定,则使用默认值 |
iterations |
从明文凭据创建新的存储凭据时要使用的迭代次数。 |
saltLength |
从明文凭据创建新的存储凭据时要使用的随机生成的盐的长度。 |
嵌套组件
如果你正在使用 NestedCredentialHandler Implementation 或扩展 NestedCredentialHandler 的 CredentialHandler,则一个或多个 <CredentialHandler> 元素可以嵌套在其中。
特殊功能
没有特殊功能与 CredentialHandler 元素相关联。