mvn clean install tomee:run
MicroProfile JWT JWKs
Este é um exemplo de como usar MicroProfile JWT em TomEE usando a public key como JWKs.
Executando a aplicação:
Este exemplo é uma aplicação CRUD para produtos disponíveis.
Requisitos e configuração
Para o uso do MicroProfile JWT, precisamos alterar o seguinte em nosso projeto:
-
Adicione a dependência ao nosso arquivo
pom.xml
:<dependency> <groupId>org.eclipse.microprofile.jwt</groupId> <artifactId>microprofile-jwt-auth-api</artifactId> <version>${mp-jwt.version}</version> <scope>provided</scope> </dependency>
-
Anote nossa
Application.class
com@LoginConfig(authMethod = "MP-JWT")
-
Forneça public key para validação do JWT. E especifique o local da public key e do emissor em nosso arquivo
microprofile-config.properties
. A public key é então usada para verificação da assinatura no diretório JWT.mp.jwt.verify.publickey.location=/jwks.pem mp.jwt.verify.issuer=https://example.com
-
Defina
@RolesAllowed()
nos pontos de extremidade que queremos proteger.
Sobre a arquitetura do aplicativo
O aplicativo nos permite manipular e visualizar produtos com usuários específicos. Temos dois usuários: Alice Wonder
e John Doe
. Eles podem ler, criar, editar e excluir entradas específicas.
jwt-john.json
{
"iss": "https://example.com",
"sub": "24400320",
"name": "John Doe",
"upn": "john.doe@example.com",
"preferred_username": "john",
"groups": [
"guest", "admin"
]
}
Acesse os endpoints com JWT token
Acessamos os endpoints de nossa classe de teste criando um JWT
com a ajuda do nosso TokenUtils.generateJWTString (String jsonResource, String keyId)
que assina nossos dados de usuário no formato json com a ajuda do nosso private key src/test/resources/{keyId}
.
Também podemos gerar novos privateKey.pem
e publicKey.pem
com o método GenerateKeyUtils.generateKeyPair (String keyAlgorithm, int keySize)
que cria o publicKey.pem
também no formato` JWK`.