第 2 章 为 JBoss EAP 提供一个初始密钥以解锁安全的资源
2.1. Elytron 中加密的表达式
要保持敏感字符串的机密性,您可以在服务器配置文件中使用加密的表达式而不是敏感字符串。
加密的表达式是结果,从加密字符串与 SecretKeyCredential 进行加密,然后将它与其编码前缀和解析器名称合并。编码前缀告知 Elytron 表达式是一个加密的表达式。解析器将加密表达式映射到凭据存储中对应的 SecretKeyCredential。
Elytron 中的 expression=encryption
资源使用加密表达式来解码运行时其中的加密字符串。通过在配置文件中使用加密的表达式而不是敏感字符串本身,您可以保护字符串的机密性。加密的表达式采用以下格式:
使用特定解析器的语法
${ENC::RESOLVER_NAME:ENCRYPTED_STRING}
ENC
是表示加密表达式的前缀。
RESOLVER_NAME
是解析程序用来解密加密的字符串。
示例
${ENC::initialresolver:RUxZAUMQE+L5zx9LmCRLyh5fjdfl1WM7lhfthKjeoEU+x+RMi6s=}
如果您使用默认解析器创建了一个加密表达式,如下所示:
使用默认解析器的语法
${ENC::ENCRYPTED_STRING}
示例
${ENC::RUxZAUMQE+L5zx9LmCRLyh5fjdfl1WM7lhfthKjeoEU+x+RMi6s=}
在这种情况下,Elytron 使用您在 expression=encryption
资源中定义的默认解析器来解密表达式。您可以对支持它的任何资源属性使用加密表达式。要找出某个属性是否支持加密表达式,请使用 read-resource-description
操作,例如:
有关 mail/mail-session
的 read-resource-description 示例
/subsystem=mail/mail-session=*/:read-resource-description(recursive=true,access-control=none) { "outcome"=>"success", "result"=>[{ ... "from"=>{ ... "expression-allowed"=>true, ... }] }
在本例中,属性 from
支持加密表达式。这意味着,您可以通过加密表达式在 from
字段中隐藏您的电子邮件地址。