Creación de un token web JSON (JWT)
Última actualización: 24 de marzo de 2025
- Se aplica a:
- Experience Manager as a Cloud Service
- Temas:
- Formularios adaptables
Creado para:
- Principiante
- Intermedio
- Desarrollador
Los tokens web JSON son un método abierto y estándar en la industria RFC 7519 para representar reclamaciones de forma segura entre dos partes. En este ejemplo se utilizaron bibliotecas JWT.io para generar el JWT.
Las credenciales del servicio que descargó en el paso anterior contienen la clave privada en formato PKCS#1. Para extraer la clave privada de esta cadena, hemos utilizado BouncyCastle bibliotecas. Las bibliotecas criptográficas que forman parte de java no admiten el formato PKCS#1.
El siguiente código se utilizó para generar el 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 anteriorCrear credenciales de servicio
Página siguienteCrear token de acceso
Experience Manager
- Información general
- Listas de reproducción
- Introducción a AEM as a Cloud Service
- Integraciones de Experience Cloud
- Tecnología subyacente
- Edge Delivery Services
- Cloud Manager
- Configuración del entorno de desarrollo local
- Desarrollo
- Extensibilidad
- Conceptos básicos de desarrollo
- Proyectos AEM
- Servicios OSGi
- Avanzado
- Entorno de desarrollo rápido
- Editor universal
- JavDocs de la API del SDK de AEM
- Depuración de AEM
- API DE AEM
- Entrega de contenido
- Almacenamiento en caché
- Acceder a AEM
- Autenticación
- Redes avanzadas
- Seguridad
- Eventos de AEM
- Migración
- Herramienta de transferencia de contenido
- Importación masiva de recursos
- El paso a AEM as a Cloud Service
- Cloud Acceleration Manager
- Introducción
- Analizador de preparación y prácticas recomendadas
- Fase de implementación
- Herramientas de refactorización de código
- Modernizador de repositorio de código
- Dispatcher Converter
- Conversor de índices
- Herramienta de migración del flujo de trabajo de recursos
- Navegación por Cloud Acceleration Manager
- Uso de Cloud Acceleration Manager
- Fragmentos de contenido
- Formularios
- Desarrollo para Forms as a Cloud Service
- 1 - Introducción
- 2 - Instalar IntelliJ
- 3 - Configurar Git
- 4 - Sincronizar IntelliJ con AEM
- 3. Generar un formulario
- 6 - Controlador de envío personalizado
- 7 - Registro del servlet mediante el tipo de recurso
- Habilitar componentes del portal de formularios
- 9 - Incluir Cloud Services y FDM
- 10 - Configuración de nube según el contexto
- 11 - Insertar en Cloud Manager
- 12 - Implementar en el entorno de desarrollo
- 13 - Actualización del arquetipo de Maven
- Crear formulario adaptable
- Servicio de envío personalizado con formulario sin encabezado
- Crear componente de bloque de direcciones
- Crear componente de imagen activa
- AEM Forms y Analytics
- Componente desplegable Creación de países
- Creación de variaciones de botón
- Uso de pestañas verticales
- Usar el resultado y el servicio de formularios
- Generación de documentos en AEM Forms CS
- Uso de la API de servicios de documentos de Forms
- Generación de documentos mediante la API por lotes
- Manipulación de PDF en Forms CS
- Integración con Marketo
- Almacenar envíos de formularios con etiquetas de índice de blob
- Rellenar previamente formulario basado en componente principal
- Azure Portal Storage
- Guardar y reanudar el rellenado de formularios
- Crear flujo de trabajo de revisión
- Acrobat Sign con AEM Forms
- Integración con Microsoft Power Automate
- Integración con Microsoft Dynamics
- Integración con Salesforce
- Almacenar envíos de formularios en una unidad y SharePoint
- Desarrollo para Forms as a Cloud Service
- Extensibilidad de Asset Compute
- Tutoriales en varios pasos
- Recursos de expertos