The English version of quarkus.io is the official project site. Translated sites are community supported on a best-effort basis.

Usando a segurança com o arquivo .properties

O Quarkus oferece suporte para autenticação baseada em arquivos de propriedades, destinada a fins de desenvolvimento e teste. Não é recomendado usar essa autenticação em produção, pois, atualmente, são utilizados apenas senhas em texto simples e senhas com hash MD5, e os arquivos de propriedades geralmente são muito limitados.

Adicione o seguinte ao seu arquivo de compilação:

pom.xml
<dependency>
    <groupId>io.quarkus</groupId>
    <artifactId>quarkus-elytron-security-properties-file</artifactId>
</dependency>
build.gradle
implementation("io.quarkus:quarkus-elytron-security-properties-file")

Configuração

A extensão elytron-security-properties-file atualmente suporta dois diferentes realms para armazenar informações de autenticação e autorização. Ambos suportam o armazenamento dessas informações em arquivos de propriedades.

As seções a seguir detalham as propriedades específicas de configuração.

Basic authentication must be explicitly enabled with quarkus.http.auth.basic=true, if more than one authentication mechanism is used.

Propriedade de Configuração Fixa no Momento da Compilação - Todas as outras propriedades de configuração podem ser sobrepostas em tempo de execução.

Configuration property

Tipo

Padrão

If the properties are stored in plain text. If this is false (the default) then it is expected that the passwords are of the form HEX( MD5( username ":" realm ":" password ) )

Environment variable: QUARKUS_SECURITY_USERS_EMBEDDED_PLAIN_TEXT

Show more

boolean

false

Determine which algorithm to use.

This property is ignored if plainText is true.

Environment variable: QUARKUS_SECURITY_USERS_EMBEDDED_ALGORITHM

Show more

digest-md5, digest-sha, digest-sha-256, digest-sha-384, digest-sha-512, digest-sha-512-256

digest-md5

The realm users user1=password\nuser2=password2…​ mapping. See Embedded Users.

Environment variable: QUARKUS_SECURITY_USERS_EMBEDDED_USERS__USERS_

Show more

Map<String,String>

none

The realm roles user1=role1,role2,…​\nuser2=role1,role2,…​ mapping See Embedded Roles.

Environment variable: QUARKUS_SECURITY_USERS_EMBEDDED_ROLES__ROLES_

Show more

Map<String,String>

none

Property Files Realm Configuration

Tipo

Padrão

The realm name. This is used when generating a hashed password

Environment variable: QUARKUS_SECURITY_USERS_FILE_REALM_NAME

Show more

string

Quarkus

Determine whether security via the file realm is enabled.

Environment variable: QUARKUS_SECURITY_USERS_FILE_ENABLED

Show more

boolean

false

If the properties are stored in plain text. If this is false (the default) then it is expected that the passwords are of the form HEX( MD5( username ":" realm ":" password ) )

Environment variable: QUARKUS_SECURITY_USERS_FILE_PLAIN_TEXT

Show more

boolean

false

Classpath resource name of properties file containing user to password mappings. See Users.properties.

Environment variable: QUARKUS_SECURITY_USERS_FILE_USERS

Show more

string

users.properties

Classpath resource name of properties file containing user to role mappings. See Roles.properties.

Environment variable: QUARKUS_SECURITY_USERS_FILE_ROLES

Show more

string

roles.properties

Embedded Realm Configuration

Tipo

Padrão

The realm name. This is used when generating a hashed password

Environment variable: QUARKUS_SECURITY_USERS_EMBEDDED_REALM_NAME

Show more

string

Quarkus

Determine whether security via the embedded realm is enabled.

Environment variable: QUARKUS_SECURITY_USERS_EMBEDDED_ENABLED

Show more

boolean

false

Arquivos de propriedades Realm Configuration

Os arquivos de propriedades realm suporta o mapeamento de usuários para senhas e de usuários para funções com uma combinação de arquivos de propriedades. Eles são configurados com propriedades que começam com quarkus.security.users.file.

Exemplo da seção de arquivo application.properties para arquivos de propriedade realm
quarkus.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

Usuários.propriedades

A propriedade de configuração quarkus.security.users.file.users especifica um recurso classpath que é uma propriedade de arquivos com um mapeamento de usuário para senha, um por linha.

O exemplo a seguir Exemplo de test-users.properties ilustra o formato:

Exemplo de test-users.properties
scott=jb0ss (1)
jdoe=p4ssw0rd (2)
stuart=test
noadmin=n0Adm1n
1 O usuário scott tem uma senha definida como jb0ss
2 O usuário jdoe tem uma senha definida como p4ssw0rd

Este arquivo contém nomes de usuário e senhas armazenados em texto simples, o que não é recomendado. Se o texto simples for definido como falso (ou omitido) na configuração, as senhas deverão ser armazenadas no formato MD5 ( username : realm : password ) . Isso pode ser gerado para o primeiro exemplo acima executando o comando echo -n scott:MyRealm:jb0ss | md5 na linha de comando.

Roles.properties

Exemplo de test-roles.properties
scott=Admin,admin,Tester,user (1)
jdoe=NoRolesUser (2)
stuart=admin,user (3)
noadmin=user
1 O usuário scott recebeu as funções Admin , admin , Tester e user
2 O usuário jdoe recebeu a atribuição da função NoRolesUser
3 O usuário stuart recebeu as funções admin e user .

Configuração do Embedded Realm

O realm incorporado também oferece suporte ao mapeamento de usuários para senhas e de usuários para funções. Ele usa o arquivo de configuração principal application.properties do Quarkus para incorporar essas informações. Eles são configurados com propriedades que começam com quarkus.security.users.embedded.

A seguir, um exemplo de seção do arquivo application.properties que ilustra a configuração do realm incorporado:

Exemplo da seção do arquivo application.properties para realm incorporado
quarkus.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

Assim como no primeiro exemplo, esse arquivo tem nomes de usuário e senhas armazenados em texto simples, o que não é recomendado. Se o texto simples for definido como falso (ou omitido) na configuração, as senhas deverão ser armazenadas no formato MD5 ( username : realm : password ) . Isso pode ser gerado para o primeiro exemplo acima executando o comando echo -n scott:MyRealm:jb0ss | md5 na linha de comando.

Usuários incorporados

Os mapeamentos de usuário para senha são especificados no arquivo application.properties por chaves de propriedades do formulário quarkus.security.users.embedded.users.<user>=<password> . O exemplo a seguir Exemplo de senhas ilustra a sintaxe com 4 mapeamentos de usuário para senha:

Exemplo de senhas
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 O usuário scott tem senha jb0ss
2 O usuário stuart tem senha test

Funções incorporadas

Os mapeamentos de usuário para função são especificados no arquivo application.properties por chaves de propriedades do formulário quarkus.security.users.embedded.roles.<user>=role1[,role2[,role3[,…​]]] . O exemplo a seguir Exemplo de funções ilustra a sintaxe com 4 mapeamentos de usuário para função:

Exemplo de funções
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 O usuário scott tem funções Admin , admin , Tester , e user
2 O usuário stuart tem funções admin e user