# Quantas partes compõem um JWT e como elas são separadas?
- [ ] Duas partes, separadas por vírgula.
- [x] Três partes (cabeçalho, payload e assinatura), separadas por pontos.
- [ ] Quatro partes, separadas por barra.
- [ ] Uma única parte codificada em Base64.
# O que a parte de "payload" (claims) de um JWT contém?
- [ ] O algoritmo de criptografia utilizado.
- [ ] A chave pública do emissor.
- [x] Informações específicas da aplicação, como usuário, e-mail e papéis.
- [ ] Apenas a assinatura do token.
# Qual é a finalidade da assinatura de um JWT?
- [ ] Armazenar dados sensíveis de forma criptografada.
- [x] Garantir a integridade do token, permitindo detectar alterações.
- [ ] Definir o tipo MIME da resposta.
- [ ] Indicar o tempo de expiração do token.
# No cenário de assinatura assimétrica (RSA), qual chave é utilizada para assinar (gerar) o token?
- [ ] A chave pública.
- [x] A chave privada.
- [ ] Ambas simultaneamente.
- [ ] Nenhuma, a assinatura é automática.
# Qual extensão Quarkus fornece suporte para a construção (geração) de tokens JWT?
- [ ] `smallrye-jwt`
- [x] `smallrye-jwt-build`
- [ ] `quarkus-rest-client`
- [ ] `quarkus-security-oauth2`
# Qual anotação é utilizada para restringir o acesso a um método apenas a usuários com determinado papel (role)?
- [ ] `@PermitAll`
- [ ] `@DenyAll`
- [x] `@RolesAllowed`
- [ ] `@RegisterRestClient`
# Como um método pode recuperar informações do token JWT recebido em uma requisição?
- [ ] Não é possível, o token é opaco ao servidor.
- [x] Injetando um objeto `JsonWebToken` com `@Inject` (ou usando `@Claim`).
- [ ] Lendo diretamente o corpo da requisição HTTP.
- [ ] Somente por meio de um banco de dados compartilhado.
# Quais propriedades são necessárias para que um serviço valide um JWT recebido?
- [ ] `mp.jwt.sign.key.location` apenas.
- [x] `mp.jwt.verify.issuer` e `mp.jwt.verify.publickey.location`.
- [ ] `quarkus.http.ssl-port` apenas.
- [ ] Nenhuma, a validação é automática.
# Qual é a diferença entre assinar (`sign`/`innerSign`) e criptografar (`encrypt`) um JWT?
- [ ] São sinônimos, ambos garantem apenas a integridade.
- [x] Assinar garante integridade (detecta alterações); criptografar garante confidencialidade (esconde o conteúdo).
- [ ] Assinar esconde o conteúdo; criptografar garante integridade.
- [ ] Apenas um dos dois pode ser aplicado por vez, nunca os dois juntos.
# Por que é recomendado utilizar HTTPS ao trabalhar com JWT?
- [ ] Porque o JWT só funciona sobre conexões seguras.
- [x] Porque, sem criptografia na conexão, um token capturado poderia ser reutilizado por terceiros.
- [ ] Porque o HTTPS reduz o tamanho do token.
- [ ] Porque o HTTP não permite enviar headers customizados.
# Em uma arquitetura de micro serviços, o que permite que um token recebido por um serviço seja automaticamente reenviado a outro serviço por meio de um Rest Client?
- [ ] A anotação `@RolesAllowed`.
- [x] A extensão `quarkus-rest-client-oidc-token-propagation` com a anotação `@AccessToken`.
- [ ] A anotação `@PermitAll`.
- [ ] A configuração `quarkus.tls.trust-all`.