Créer un jeton web JSON (JWT)
Dernière mise à jour : 18 juin 2025
- S'applique à :
- Experience Manager as a Cloud Service
- Rubriques :
- Formulaires adaptatifs
Créé pour :
- Débutant
- Intermédiaire
- Développeur
Les jetons web JSON constituent une méthode ouverte, conforme à la norme RFC 7519, permettant de représenter en toute sécurité les demandes entre deux parties. Les bibliothèques JWT.io ont été utilisées dans cet exemple pour générer le JWT.
Les informations d’identification de service que vous avez téléchargées à l’étape précédente contiennent la clé privée au format PKCS#1. Pour extraire la clé privée de cette chaîne, nous avons utilisé les bilbiothèques BouncyCastle. Les bibliothèques de cryptage qui font partie de Java ne prennent pas en charge le format PKCS#1.
Le code suivant a été utilisé pour générer le 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;
}
Plus d’aide sur cette rubrique
Page précédenteCréer des informations d’identification de service
Page suivanteCréer un jeton d’accès
Experience Manager
- Vue d’ensemble
- Listes de lecture
- Présentation d’AEM as a Cloud Service
- Intégrations Experience Cloud
- Technologie sous-jacente
- Edge Delivery Services
- Cloud Manager
- Configuration de l’environnement de développement local
- Développement
- Extensibilité
- Principes de base de développement
- Projets AEM
- Services OSGi
- Avancé
- Environnement de développement rapide
- Éditeur universel
- Documentation JavaDocs de l’API SDK AEM
- Déboguer AEM
- API d’AEM
- Diffusion de contenu
- Mise en cache
- Accès à AEM
- Authentification
- Mise en réseau avancée
- Sécurité
- AEM Eventing
- Migration
- Outil de transfert de contenu
- Importation en bloc de ressources
- Transition vers AEM as a Cloud Service
- Cloud Acceleration Manager
- Présentation
- Préparation et Best Practice Analyzer
- Phase dʼimplémentation
- Outils de refactorisation du code
- Modernisateur du référentiel de code
- Convertisseur du Dispatcher
- Index Converter
- Outil de migration des workflows de ressources
- Naviguer dans Cloud Acceleration Manager
- Utiliser Cloud Acceleration Manager
- Fragments de contenu
- Formulaires
- Développer pour Forms as a Cloud Service
- 1 - Prise en main
- 2 - Installer IntelliJ
- 3 - Configurer Git
- 4 - Synchroniser IntelliJ avec AEM
- 5 - Créer un formulaire
- 6 - Gestionnaire d’envoi personnalisé
- 7 – Enregistrer le servlet à l’aide du type de ressource
- 8 – Activer les composants du portail Formulaires
- 9 – Inclure Cloud Services et FDM
- 10 – Configuration cloud basée sur le contexte
- 11 – Transmettre à Cloud Manager
- 12 – Déployer sur l’environnement de développement
- 13 – Mettre à jour l’archétype Maven
- Créer un formulaire adaptatif
- Service d’envoi personnalisé avec formulaire découplé
- Créer un composant de bloc d’adresse
- Créer un composant d’image cliquable
- AEM Forms et Analytics
- Création d’un composant déroulant Pays
- Création de variations de bouton
- Utilisation des onglets verticaux
- Utilisation des services Output et Forms
- Génération de documents dans AEM Forms CS
- Utilisation de l’API Forms Document Services
- Génération de documents à l’aide de l’API par lot
- Manipulation de PDF dans Forms CS
- Intégrer à Marketo
- Stocker les envois de formulaire avec des balises d’index Blob
- Préremplir un formulaire basé sur des composants principaux
- Stockage de portail Azure
- Enregistrer et reprendre le remplissage du formulaire
- Créer un workflow d’analyse
- Acrobat Sign avec AEM Forms
- Intégrer à Microsoft Power Automate
- Intégrer à Microsoft Dynamics
- Intégrer à Salesforce
- Stocker les envois de formulaire sur un lecteur et dans SharePoint
- Développer pour Forms as a Cloud Service
- Extensibilité Assets Compute
- Tutoriels en plusieurs étapes
- Ressources expertes