Erstellen eines JSON-Web-Tokens
Letzte Aktualisierung: 27. März 2025
- Gilt für:
- Experience Manager as a Cloud Service
- Themen:
- Adaptive Formulare
Erstellt für:
- Einsteiger
- Fortgeschrittener
- Entwickler
JSON-Web-Token bieten eine offene, branchenübliche RFC-7519-Methode zur sicheren Darstellung von Forderungen zwischen zwei Parteien. In diesem Beispiel wurden JWT.io-Bibliotheken verwendet, um das JWT zu generieren.
Die Dienstanmeldeinformationen, die im vorherigen Schritt heruntergeladen wurden, enthalten den privaten Schlüssel im PKCS#1-Format. Um den privaten Schlüssel aus dieser Zeichenfolge zu extrahieren, haben wir BouncyCastle-Bibliotheken verwendet. Die Kryptobibliotheken, die Teil von Java sind, unterstützen das PKCS#1-Format nicht.
Der folgende Code wurde zum Generieren des JWT verwendet:
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;
}
Vorherige SeiteErstellen von Service-Anmeldeinformationen
Nächste SeiteErstellen eines Zugriffstokens
Experience Manager
- Überblick
- Playlists
- Einführung in AEM as a Cloud Service
- Experience Cloud-Integrationen
- Zugrunde liegende Technologie
- Edge Delivery Services
- Cloud Manager
- Einrichtung der lokalen Entwicklungsumgebung
- Entwicklung
- Erweiterbarkeit
- Entwicklungsgrundlagen
- AEM-Projekte
- OSGi-Dienste
- Erweitert
- Schnelle Entwicklungsumgebung
- Universeller Editor
- AEM SDK-API-JavaDocs
- Debugging von AEM
- AEM-APIs
- Inhaltsbereitstellung
- Caching
- Zugriff auf AEM
- Authentifizierung
- Erweiterte Netzwerkfunktionen
- Sicherheit
- AEM-Ereignisse
- Migration
- Content Transfer Tool
- Massenimport von Assets
- Wechseln zu AEM as a Cloud Service
- Cloud Acceleration Manager
- Inhaltsfragmente
- Forms
- Entwickeln für Forms as a Cloud Service
- 1 – Erste Schritte
- 2 – Installieren von IntelliJ
- 3 – Einrichten von Git
- 4 – Synchronisieren von IntelliJ mit AEM
- 5 – Erstellen eines Formulars
- 6 – Benutzerdefinierter Übermittlungs-Handler
- 7 – Registrieren eines Servlets mithilfe des Ressourcentyps
- 8 – Aktivieren von Komponenten des Formularportals
- 9 – Einschließen von Cloud-Services und FDM
- 10 – Kontextsensitive Cloud-Konfiguration
- 11 – Pushen zu Cloud Manager
- 12 – Bereitstellen für die Entwicklungsumgebung
- 13 – Aktualisieren des Maven-Archetyps
- Erstellen eines adaptiven Formulars
- Einführung
- Erstellen eines Designs
- Erstellen einer Vorlage
- Erstellen eines Fragments
- Erstellen eines Formulars
- Konfigurieren des Stamm-Bedienfelds
- Konfigurieren des Personen-Bedienfelds
- Konfigurieren des Einkommens-Bedienfelds
- Konfigurieren des Asset-Bedienfelds
- Konfigurieren des Start-Bedienfelds
- Hinzufügen und Konfigurieren der Symbolleiste
- Benutzerdefinierter Sendedienst mit Headless-Formular
- Erstellen einer Adressblock-Komponente
- Erstellen einer klickbaren Bildkomponente
- AEM Forms und Analytics
- Erstellen einer Dropdown-Listen-Komponente für Länder
- Erstellen von Schaltflächenvarianten
- Verwenden vertikaler Registerkarten
- Verwenden des Ausgabe- und Formular-Dienstes
- Dokumenterstellung in AEM Forms CS
- Verwenden des Forms-Dokumentendienste-API
- Dokumenterstellung mithilfe des Batch-API
- Bearbeitung von PDFs in Forms CS
- Integrieren mit Marketo
- Speichern von Formularübermittlungen mit Blob-Index-Tags
- Vorbefüllen von auf Kernkomponenten basierenden Formularen
- Azure Portal-Speicher
- Speichern und Fortsetzen der Formularausfüllung
- Erstellen eines Workflows für die Überprüfung
- Acrobat Sign mit AEM Forms
- Integration mit Microsoft Power Automate
- Integration mit Microsoft Dynamics
- Integration mit Salesforce
- Speichern von Formularübermittlungen auf One Drive und Sharepoint
- Entwickeln für Forms as a Cloud Service
- Asset Compute-Erweiterbarkeit
- Mehrstufige Tutorials
- Expertenressourcen