Using Security with .properties File
Quarkus 提供对基于属性文件进行身份验证的支持,该身份验证适用于开发和测试目的。不建议在生产环境中使用此身份验证,因为目前仅使用纯文本和 MD5 哈希密码,并且属性文件通常过于有限。 将以下内容添加到您的构建文件中:
<dependency>
<groupId>io.quarkus</groupId>
<artifactId>quarkus-elytron-security-properties-file</artifactId>
</dependency>
implementation("io.quarkus:quarkus-elytron-security-properties-file")
Configuration
elytron-security-properties-file 扩展目前支持两个用于存储身份验证和授权信息的不同领域。这两者都支持在属性文件中存储此信息。
以下部分详细介绍特定配置属性。
Unresolved include directive in modules/ROOT/pages/security-properties.adoc - include::../../../target/quarkus-generated-doc/config/quarkus-elytron-security-properties-file.adoc[]
Properties Files Realm Configuration
属性文件领域支持使用一些属性文件将用户映射到密码,将用户映射到角色。从`quarkus.security.users.file`开头的属性中设置。
application.properties
file section for property files realmquarkus.security.users.file.enabled=true
quarkus.security.users.file.users=test-users.properties
quarkus.security.users.file.roles=test-roles.properties
quarkus.security.users.file.realm-name=MyRealm
quarkus.security.users.file.plain-text=true
Users.properties
`quarkus.security.users.file.users`配置属性指定了一个类路径资源,它是一个属性文件,文件中包含用户到密码的映射,每行一个。
以下[test-users-example]说明了格式:
test-users.properties
scott=jb0ss 1
jdoe=p4ssw0rd 2
stuart=test
noadmin=n0Adm1n
1 | 用户 scott`的密码定义为 `jb0ss |
2 | 用户 jdoe`的密码定义为 `p4ssw0rd |
此文件中以纯文本形式存储了用户名和密码,不建议这样做。如果在配置中将纯文本设置为 false(或忽略),则必须以 `MD5 ( username : realm : password )`的形式存储密码。通过从命令行运行命令 `echo -n scott:MyRealm:jb0ss | md5`可以为以上的第一个示例生成密码。
Embedded Realm Configuration
嵌入式领域还支持将用户映射到密码,将用户映射到角色。它使用主 `application.properties`Quarkus 配置文件嵌入此信息。从`quarkus.security.users.embedded`开头的属性中设置。
以下是一个示例 application.properties 文件,来说明嵌入式领域配置:
application.properties
file section for embedded realmquarkus.security.users.embedded.enabled=true
quarkus.security.users.embedded.plain-text=true
quarkus.security.users.embedded.users.scott=jb0ss
quarkus.security.users.embedded.users.stuart=test
quarkus.security.users.embedded.users.jdoe=p4ssw0rd
quarkus.security.users.embedded.users.noadmin=n0Adm1n
quarkus.security.users.embedded.roles.scott=Admin,admin,Tester,user
quarkus.security.users.embedded.roles.stuart=admin,user
quarkus.security.users.embedded.roles.jdoe=NoRolesUser
quarkus.security.users.embedded.roles.noadmin=user
与此第一个示例类似,此文件中以纯文本形式存储了用户名和密码,不建议这样做。如果在配置中将纯文本设置为 false(或忽略),则必须以 `MD5 ( username : realm : password )`的形式存储密码。通过从命令行运行命令 `echo -n scott:MyRealm:jb0ss | md5`可以为以上的第一个示例生成密码。
Embedded Users
用户到密码映射是通过以下形式的属性键在 application.properties`文件中指定的: `quarkus.security.users.embedded.users.<user>=<password>
. 以下 [password-example]以四种用户到密码映射来说明语法:
quarkus.security.users.embedded.users.scott=jb0ss (1)
quarkus.security.users.embedded.users.stuart=test (2)
quarkus.security.users.embedded.users.jdoe=p4ssw0rd
quarkus.security.users.embedded.users.noadmin=n0Adm1n
1 | 用户 scott`的密码是 `jb0ss |
2 | 用户 stuart`的密码是 `test |
Embedded Roles
用户到角色映射是通过以下形式的属性键在 application.properties`文件中指定的: `quarkus.security.users.embedded.roles.<user>=role1[,role2[,role3[,…]]]
. 以下 [roles-example]以四种用户到角色映射來說明语法:
quarkus.security.users.embedded.roles.scott=Admin,admin,Tester,user (1)
quarkus.security.users.embedded.roles.stuart=admin,user (2)
quarkus.security.users.embedded.roles.jdoe=NoRolesUser
quarkus.security.users.embedded.roles.noadmin=user
1 | 用户 scott`的角色是 `Admin , admin , Tester , 和 user |
2 | 用户 stuart`的角色是 `admin`和 `user |