Criar um JSON Web Token (JWT)
Última atualização: 24 de março de 2025
- Aplica-se a:
- Experience Manager as a Cloud Service
- Tópicos:
- Formulários adaptativos
Criado para:
- Iniciante
- Intermediário
- Desenvolvedor
Os JSON Web Tokens são um método aberto e padrão do setor (RFC 7519) para representar reivindicações com segurança entre duas partes. As bibliotecas JWT.io foram usadas nesta amostra para gerar o JWT.
As credenciais de serviço que você baixou na etapa anterior contêm a chave privada no formato PKCS#1. Para extrair a chave privada desta cadeia de caracteres, usamos bibliotecas BouncyCastle. As bibliotecas de criptografia que fazem parte do java não são compatíveis com o formato PKCS#1.
O código a seguir foi usado para gerar o JWT:
public String getJWTToken()
{
Security.addProvider(new BouncyCastleProvider());
RSAPrivateKey privateKey = null;
GetServiceCredentials getCredentials = new GetServiceCredentials();
try
{
long now = System.currentTimeMillis();
Long expirationTime = now + TimeUnit.MINUTES.toMillis(5);
// get the private key string from the service credentials
String privateKeyString = getCredentials.getPRIVATE_KEY();
//The JWT signature algorithm we use to sign the token
SignatureAlgorithm sa = SignatureAlgorithm.RS256;
Reader targetReader = new StringReader(privateKeyString);
// PEMParser removes the unnecessary headers and decodes the underlying Base64 PEM data into a binary format.
PEMParser pemParser = new PEMParser(targetReader);
// tores the result generated by the pEMParser
Object object = pemParser.readObject();
JcaPEMKeyConverter converter = new JcaPEMKeyConverter().setProvider("BC");
KeyPair kp = converter.getKeyPair((PEMKeyPair) object);
privateKey = (RSAPrivateKey) kp.getPrivate();
//Let's set the JWT Claims
Map < String, Object > jwtClaims = new HashMap < String, Object > ();
jwtClaims.put("iss", getCredentials.getORG_ID());
jwtClaims.put("sub", getCredentials.getTECH_ACCT());
jwtClaims.put("exp", expirationTime);
jwtClaims.put("aud", "https://" + getCredentials.getIMS_ENDPOINT() + "/c/" + getCredentials.getCLIENT_ID());
String metascopes[] = new String[] { getCredentials.getMETASCOPE_ID() };
for (String metascope: metascopes)
{
jwtClaims.put("https://" + getCredentials.getIMS_ENDPOINT() + "/s/" + metascope, java.lang.Boolean.TRUE);
}
// Create the final JWT token
String jwtToken = Jwts.builder().setClaims(jwtClaims).signWith(sa, privateKey).compact();
System.out.println("Got JWT Token " + jwtToken);
pemParser.close();
return jwtToken;
} catch (IOException e) {
System.out.println("The error is " + e.getMessage());
}
return null;
}
Página anteriorCriar credenciais de serviço
Próxima páginaCriar token de acesso
Experience Manager
- Visão geral
- Listas de reprodução
- Introdução ao AEM as a Cloud Service
- Integrações da Experience Cloud
- Tecnologia subjacente
- Edge Delivery Services
- Cloud Manager
- Configuração do ambiente de desenvolvimento local
- Desenvolver
- Extensibilidade
- Noções básicas de desenvolvimento
- Projetos AEM
- Serviços do OSGi
- Avançado
- Ambiente de desenvolvimento rápido
- Editor universal
- JavaDocs da API do SDK do AEM
- Depurar o AEM
- APIs do AEM
- Entrega de conteúdo
- Armazenamento em cache
- Acessar o AEM
- Autenticação
- Rede avançada
- Segurança
- Evento do AEM
- Migração
- Ferramenta de transferência de conteúdo
- Importação de ativos em massa
- Migração para o AEM as a Cloud Service
- Cloud Acceleration Manager
- Introdução
- Analista de prontidão e práticas recomendadas
- Fase de implementação
- Ferramentas de refatoração de código
- Modernizador do repositório de código
- Conversor do Dispatcher
- Conversor de índice
- Ferramenta de migração de fluxo de trabalho de ativos
- Navegar pelo Cloud Acceleration Manager
- Usar o Cloud Acceleration Manager
- Fragmentos de conteúdo
- Forms
- Desenvolvimento no Forms as a Cloud Service
- 1 - Introdução
- 2 - Instalar o IntelliJ
- 3 - Configurar o Git
- 4 - Sincronizar o IntelliJ com o AEM
- 5 - Criar um formulário
- 6 - Manipulador de envios personalizados
- 7 - Registrar Servlet com tipo de recurso
- 8 - Habilitar componentes do portal de formulários
- 9 - Incluir serviços em nuvem e FDM
- 10 - Configuração da nuvem com reconhecimento do contexto
- 11 - Enviar ao Cloud Manager
- 12 - Implantar no ambiente de desenvolvimento
- 13 - Atualizar arquétipo do Maven
- Criar formulário adaptável
- Serviço de envio personalizado com formulário headless
- Criar componente de bloco de endereço
- Criar componente de imagem clicável
- AEM Forms e Analytics
- Criar componente de lista suspensa de países
- Criar variações de botões
- Usar guias verticais
- Usar serviço de formulários e saída
- Geração de documentos no AEM Forms CS
- Usar a API de serviços de documentos do Forms
- Geração de documentos com a API em lote
- Manipulação de PDF no Forms CS
- Integrar ao Marketo
- Armazenar envios de formulários com tags de índice de blob
- Pré-preencher formulário baseado em componentes principais
- Armazenamento do portal do Azure
- Salvar e retomar preenchimento do formulário
- Criar fluxo de trabalho de revisão
- Acrobat Sign com AEM Forms
- Integrar ao Microsoft Power Automate
- Integrar ao Microsoft Dynamics
- Integrar ao Salesforce
- Armazenar envios de formulários em uma unidade e no SharePoint
- Desenvolvimento no Forms as a Cloud Service
- Extensibilidade do Asset Compute
- Tutoriais em várias etapas
- Recursos de especialistas