1.6. 配置应用程序
通过将
quarkus.http.auth.basic属性设置为true来启用内置的 Quarkus 基本身份验证 机制:quarkus.http.auth.basic=true注意当需要安全访问时,且不需要启用其他身份验证机制,Quarkus 的内置 基本身份验证 是回退身份验证机制。因此,在本教程中,您不需要将属性
quarkus.http.auth.basic设置为true。在
src/main/resources/application.properties文件中至少配置一个数据源,以便quarkus-security-jpa扩展可以访问您的数据库。例如:src/main/resources/application.properties
quarkus.http.auth.basic=true %prod.quarkus.datasource.db-kind=postgresql %prod.quarkus.datasource.username=quarkus %prod.quarkus.datasource.password=quarkus %prod.quarkus.datasource.jdbc.url=jdbc:postgresql:quarkus quarkus.hibernate-orm.database.generation=drop-and-create通过添加
%prod.配置集前缀,您可以确保仅由以 production 模式运行的应用程序观察到数据源属性。-
要使用用户和角色初始化数据库,请实施
Startup类,如以下代码片段中所述:
src/main/java/org/acme/security/jpa/Startup.java
package org.acme.security.jpa;
import jakarta.enterprise.event.Observes;
import jakarta.inject.Singleton;
import jakarta.transaction.Transactional;
import io.quarkus.runtime.StartupEvent;
@Singleton
public class Startup {
@Transactional
public void loadUsers(@Observes StartupEvent evt) {
// reset and load all test users
User.deleteAll();
User.add("admin", "admin", "admin");
User.add("user", "user", "user");
}
}
前面的示例演示了应用的受保护和身份,由指定数据库提供。
在生产环境中,不要存储纯文本密码。因此,quarkus-security-jpa 默认使用 bcrypt-hashed 密码。