willesreis commented on a change in pull request #682:
URL: https://github.com/apache/tomee/pull/682#discussion_r455501747
##########
File path: examples/mp-rest-jwt/README_pt.adoc
##########
@@ -0,0 +1,318 @@
+= MicroProfile JWT
+:index-group: MicroProfile
+:jbake-type: page
+:jbake-status: published
+
+Este é um exemplo básico sobre como configurar e utilizar o MicroProfile JWT
no TomEE.
+
+== Execute testes para diferentes cenários relacionados à validação JWT
+
+[source,java]
+----
+mvn clean test
+----
+
+== Configuração no TomEE
+
+A classe `MoviesMPJWTConfigurationProvider.java` fornece ao TomEE as
configurações necessárias para a validação do JWT.
+
+[source,java]
+----
+package org.superbiz.moviefun.rest;
+
+import org.apache.tomee.microprofile.jwt.config.JWTAuthContextInfo;
+
+import javax.enterprise.context.Dependent;
+import javax.enterprise.inject.Produces;
+import java.security.KeyFactory;
+import java.security.NoSuchAlgorithmException;
+import java.security.interfaces.RSAPublicKey;
+import java.security.spec.InvalidKeySpecException;
+import java.security.spec.X509EncodedKeySpec;
+import java.util.Base64;
+import java.util.Optional;
+
+@Dependent
+public class MoviesMPJWTConfigurationProvider {
+
+ @Produces
+ Optional<JWTAuthContextInfo> getOptionalContextInfo() throws
NoSuchAlgorithmException, InvalidKeySpecException {
+ JWTAuthContextInfo contextInfo = new JWTAuthContextInfo();
+
+ // todo use MP Config to load the configuration
+ contextInfo.setIssuedBy("https://server.example.com");
+
+ final String pemEncoded =
"MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAlivFI8qB4D0y2jy0CfEq" +
+
"Fyy46R0o7S8TKpsx5xbHKoU1VWg6QkQm+ntyIv1p4kE1sPEQO73+HY8+Bzs75XwR" +
+
"TYL1BmR1w8J5hmjVWjc6R2BTBGAYRPFRhor3kpM6ni2SPmNNhurEAHw7TaqszP5e" +
+
"UF/F9+KEBWkwVta+PZ37bwqSE4sCb1soZFrVz/UT/LF4tYpuVYt3YbqToZ3pZOZ9" +
+
"AX2o1GCG3xwOjkc4x0W7ezbQZdC9iftPxVHR8irOijJRRjcPDtA6vPKpzLl6CyYn" +
+
"sIYPd99ltwxTHjr3npfv/3Lw50bAkbT4HeLFxTx4flEoZLKO/g0bAoV2uqBhkA9x" +
+ "nQIDAQAB";
+ byte[] encodedBytes = Base64.getDecoder().decode(pemEncoded);
+
+ final X509EncodedKeySpec spec = new X509EncodedKeySpec(encodedBytes);
+ final KeyFactory kf = KeyFactory.getInstance("RSA");
+ final RSAPublicKey pk = (RSAPublicKey) kf.generatePublic(spec);
+
+ contextInfo.setSignerKey(pk);
+
+ return Optional.of(contextInfo);
+ }
+
+ @Produces
+ JWTAuthContextInfo getContextInfo() throws InvalidKeySpecException,
NoSuchAlgorithmException {
+ return getOptionalContextInfo().get();
+ }
+}
+----
+
+== Usando o MicroProfile JWT no TomEE
+
+O recurso JAX-RS `MoviesRest.java` contém vários contém vários endpoints que
estão protegidos usando a anotação padrão `@ RolesAllowed`. O MicroProfile JWT
é responsável por validar solicitações recebidas com o cabeçalho
`Authorization' que fornece um token de acesso assinado.
Review comment:
Here, stayed in double the words *contém vários*.
```suggestion
O recurso JAX-RS `MoviesRest.java` contém vários endpoints que estão
protegidos usando a anotação padrão `@ RolesAllowed`. O MicroProfile JWT é
responsável por validar solicitações recebidas com o cabeçalho `Authorization'
que fornece um token de acesso assinado.
```
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:
[email protected]