Utiliser cURL avec AEM
- Rubriques :
- Administering
Créé pour :
- Admin
Les administrateurs ont souvent besoin d’automatiser ou de simplifier des tâches courantes sur un système. Dans AEM, par exemple, la gestion des utilisateurs, l’installation de packages et la gestion des lots OSGi sont des tâches qui doivent généralement être effectuées.
En raison de la nature RESTful de le framework Sling sur laquelle repose AEM, pratiquement toutes les tâches peuvent se réduire à l’appel d’une adresse URL. cURL peut être utilisé pour exécuter de tels appels d’URL et peut s’avérer un outil utile pour les administrateurs d’AEM.
Qu’est-ce que cURL ?
cURL est un outil de ligne de commande Open Source utilisé pour manipuler des adresses URL. Il prend en charge de nombreux protocoles Internet, tels que HTTP, HTTPS, FTP, FTPS, SCP, SFTP, TFTP, LDAP, DAP, DICT, TELNET, FILE, IMAP, POP3, SMTP et RTSP.
Initialement publié en 1997, cURL est un outil bien établi et largement répandu pour obtenir ou envoyer des données en utilisant la syntaxe de l’adresse URL. Le nom cURL signifiait à l’origine "voir URL".
Compte tenu de la nature RESTful de la structure Sling sur laquelle repose AEM, la plupart des tâches peuvent se réduire à l’appel d’une adresse URL, ce que cURL peut exécuter. Les tâches de manipulation de contenu, comme l’activation des pages et le démarrage de workflows, ainsi que les tâches opérationnelles, comme la gestion de packages et d’utilisateurs, peuvent être automatisées à l’aide de cURL. En outre, vous pouvez créer votre propre cURL pour la plupart des tâches dans AEM.
Téléchargement de cURL
cURL est une partie standard de Mac OS et de certaines distributions Linux. Cependant, il est disponible pour la plupart des systèmes d’exploitation. Vous trouverez les derniers téléchargements à l’adresse https://curl.haxx.se/download.html.
Le référentiel source de cURL est également disponible sur GitHub.
Création d’une AEM compatible avec cURL
Il est possible de créer des commandes cURL pour la plupart des opérations dans AEM telles que le déclenchement des workflows, la vérification des configurations OSGi, le déclenchement des commandes JMX, la création d’agents de réplication, etc.
Pour trouver la commande exacte dont vous avez besoin pour votre opération particulière, vous devez utiliser les outils de développement de votre navigateur pour capturer l’appel du POST au serveur lorsque vous exécutez la commande AEM.
Les étapes suivantes décrivent comment effectuer cette opération à l’aide de la création d’une page dans le navigateur Chrome, par exemple.
-
Préparez l’action à appeler dans AEM. Dans ce cas, nous sommes allés jusqu’à la fin de l’assistant de création de page, mais nous n’avons pas encore cliqué sur Créer.
-
Démarrez les outils de développement et sélectionnez l’onglet Network. Cliquez sur le bouton Conserver le journal avant d’effacer la console.
-
Cliquez sur Créer dans le Créer une page pour créer le workflow.
-
Cliquez avec le bouton droit de la souris sur l’action de POST qui en résulte et sélectionnez Copier -> Copier en tant que cURL.
-
Copiez la commande cURL dans un éditeur de texte et supprimez tous les en-têtes de la commande, qui commencent par
-H
(soulignés en bleu dans l’illustration ci-dessous), puis ajoutez le paramètre d’authentification approprié, comme-u <user>:<password>
. -
Exécutez la commande cURL à l’aide de la ligne de commande et affichez la réponse.
Commandes cURL des AEM opérationnelles courantes
Voici une liste des commandes cURL d’AEM pour les tâches administratives et opérationnelles courantes.
localhost
sur le port 4502
et utilise le nom d’utilisateur admin
avec le mot de passe admin
. D’autres espaces réservés aux commandes sont définis entre crochets.Gestion des packages
Liste de tous les packages installés
curl -u <user>:<password> http://<host>:<port>/crx/packmgr/service.jsp?cmd=ls
Création d’un module
curl -u <user>:<password> -X POST http://localhost:4502/crx/packmgr/service/.json/etc/packages/mycontent.zip?cmd=create -d packageName=<name> -d groupName=<name>
Aperçu d’un module
curl -u <user>:<password> -X POST http://localhost:4502/crx/packmgr/service/.json/etc/packages/mycontent.zip?cmd=preview
Contenu du package de liste
curl -u <user>:<password> -X POST http://localhost:4502/crx/packmgr/service/console.html/etc/packages/mycontent.zip?cmd=contents
Création d’un module
curl -X POST http://localhost:4502/crx/packmgr/service/.json/etc/packages/mycontent.zip?cmd=build
Réencapsuler un module
curl -u <user>:<password> -X POST http://localhost:4502/crx/packmgr/service/.json/etc/packages/mycontent.zip?cmd=rewrap
Renommer un module
curl -u <user>:<password> -X POST -Fname=<New Name> http://localhost:4502/etc/packages/<Group Name>/<Package Name>.zip/jcr:content/vlt:definition
Téléchargement d’un module
curl -u <user>:<password> -F cmd=upload -F force=true -F package=@test.zip http://localhost:4502/crx/packmgr/service/.json
Installation d’un module
curl -u <user>:<password> -F cmd=install http://localhost:4502/crx/packmgr/service/.json/etc/packages/my_packages/test.zip
Désinstallation d’un module
curl -u <user>:<password> -F cmd=uninstall http://localhost:4502/crx/packmgr/service/.json/etc/packages/my_packages/test.zip
Suppression d’un module
curl -u <user>:<password> -F cmd=delete http://localhost:4502/crx/packmgr/service/.json/etc/packages/my_packages/test.zip
Téléchargement d’un module
curl -u <user>:<password> http://localhost:4502/etc/packages/my_packages/test.zip
User Management
Création d’un utilisateur
curl -u <user>:<password> -FcreateUser= -FauthorizableId=hashim -Frep:password=hashim http://localhost:4502/libs/granite/security/post/authorizables
Création d’un groupe
curl -u <user>:<password> -FcreateGroup=group1 -FauthorizableId=testGroup1 http://localhost:4502/libs/granite/security/post/authorizables
Ajout d’une propriété à un utilisateur existant
curl -u <user>:<password> -Fprofile/age=25 http://localhost:4502/home/users/h/hashim.rw.html
Création d’un utilisateur avec un profil
curl -u <user>:<password> -FcreateUser=testuser -FauthorizableId=hashimkhan -Frep:password=hashimkhan -Fprofile/gender=male http://localhost:4502/libs/granite/security/post/authorizables
Création d’un utilisateur en tant que membre d’un groupe
curl -u <user>:<password> -FcreateUser=testuser -FauthorizableId=testuser -Frep:password=abc123 -Fmembership=contributor http://localhost:4502/libs/granite/security/post/authorizables
Ajout d’un utilisateur à un groupe
curl -u <user>:<password> -FaddMembers=testuser1 http://localhost:4502/home/groups/t/testGroup.rw.html
Suppression d’un utilisateur d’un groupe
curl -u <user>:<password> -FremoveMembers=testuser1 http://localhost:4502/home/groups/t/testGroup.rw.html
Définition de l’appartenance à un groupe d’utilisateurs
curl -u <user>:<password> -Fmembership=contributor -Fmembership=testgroup http://localhost:4502/home/users/t/testuser.rw.html
Suppression d’un utilisateur
curl -u <user>:<password> -FdeleteAuthorizable= http://localhost:4502/home/users/t/testuser
Suppression d’un groupe
curl -u <user>:<password> -FdeleteAuthorizable= http://localhost:4502/home/groups/t/testGroup
curl -u <user>:<password> -Faction=start http://localhost:4502/system/console/bundles/<bundle-name>
Arrêt d’un lot
curl -u <user>:<password> -Faction=stop http://localhost:4502/system/console/bundles/<bundle-name>
Dispatcher
Invalidation du cache
curl -H "CQ-Action: Activate" -H "CQ-Handle: /content/test-site/" -H "CQ-Path: /content/test-site/" -H "Content-Length: 0" -H "Content-Type: application/octet-stream" http://localhost:4502/dispatcher/invalidate.cache
Extraction du cache
curl -H "CQ-Action: Deactivate" -H "CQ-Handle: /content/test-site/" -H "CQ-Path: /content/test-site/" -H "Content-Length: 0" -H "Content-Type: application/octet-stream" http://localhost:4502/dispatcher/invalidate.cache
Agent de réplication
Vérification de l’état d’un agent
curl -u <user>:<password> "http://localhost:4502/etc/replication/agents.author/publish/jcr:content.queue.json?agent=publish"
http://localhost:4502/etc/replication/agents.author/publish/jcr:content.queue.json?agent=publish
Suppression d’un agent
curl -X DELETE http://localhost:4502/etc/replication/agents.author/replication99 -u <user>:<password>
Création d’un agent
curl -u <user>:<password> -F "jcr:primaryType=cq:Page" -F "jcr:content/jcr:title=new-replication" -F "jcr:content/sling:resourceType=/libs/cq/replication/components/agent" -F "jcr:content/template=/libs/cq/replication/templates/agent" -F "jcr:content/transportUri=http://localhost:4503/bin/receive?sling:authRequestLogin=1" -F "jcr:content/transportUser=admin" -F "jcr:content/transportPassword={DES}8aadb625ced91ac483390ebc10640cdf"http://localhost:4502/etc/replication/agents.author/replication99
Mettre un agent en pause
curl -u <user>:<password> -F "cmd=pause" -F "name=publish" http://localhost:4502/etc/replication/agents.author/publish/jcr:content.queue.json
Effacement d’une file d’attente d’agent
curl -u <user>:<password> -F "cmd=clear" -F "name=publish" http://localhost:4502/etc/replication/agents.author/publish/jcr:content.queue.json
Communities
Attribution et révocation des badges
Pour plus d’informations, consultez Notation et attribution de badges de Communautés.
Pour plus d’informations, consultez Notions fondamentales sur la notation et l’attribution de badges.
Réindexation de MSRP
Pour plus d’informations, consultez MSRP – Fournisseur de ressources de stockage MongoDB.
Sécurité
Activation et désactivation de CRX DE Lite
Pour plus d’informations, consultez Activation de CRXDE Lite dans AEM.
Nettoyage de la mémoire du magasin de données
Pour plus d’informations, consultez Nettoyage de la mémoire de magasin de données.
Intégration d’Analytics à Target
Pour plus d’informations, consultez Souscription à Adobe Analytics et Target.
Connexion unique
Envoyer l’en-tête de test
Pour plus d’informations, consultez Authentification unique.
Manipulation de contenu courant AEM commandes cURL
Voici une liste des commandes cURL d’AEM pour la manipulation de contenu.
localhost
sur le port 4502
et utilise le nom d’utilisateur admin
avec le mot de passe admin
. D’autres espaces réservés aux commandes sont définis entre crochets.Gestion des pages
Activation de page
curl -u <user>:<password> -X POST -F path="/content/path/to/page" -F cmd="activate" http://localhost:4502/bin/replicate.json
Désactivation de page
curl -u <user>:<password> -X POST -F path="/content/path/to/page" -F cmd="deactivate" http://localhost:4502/bin/replicate.json
Activation d’une arborescence
curl -u <user>:<password> -F cmd=activate -F ignoredeactivated=true -F onlymodified=true -F path=/content/geometrixx http://localhost:4502/etc/replication/treeactivation.html
Verrouillage de la page
curl -u <user>:<password> -X POST -F cmd="lockPage" -F path="/content/path/to/page" -F "_charset_"="utf-8" http://localhost:4502/bin/wcmcommand
Déverrouiller la page
curl -u <user>:<password> -X POST -F cmd="unlockPage" -F path="/content/path/to/page" -F "_charset_"="utf-8" http://localhost:4502/bin/wcmcommand
Copie de la page
curl -u <user>:<password> -F cmd=copyPage -F destParentPath=/path/to/destination/parent -F srcPath=/path/to/source/location http://localhost:4502/bin/wcmcommand
Workflows
Pour plus d’informations, consultez Interaction avec des workflows par programmation.
Contenu Sling
Création d’un dossier
curl -u <user>:<password> -F jcr:primaryType=sling:Folder http://localhost:4502/etc/test
Suppression d’un noeud
curl -u <user>:<password> -F :operation=delete http://localhost:4502/etc/test/test.properties
Déplacement d’un noeud
curl -u <user>:<password> -F":operation=move" -F":applyTo=/sourceurl" -F":dest=/target/parenturl/" https://localhost:4502/content
Copie d’un noeud
curl -u <user>:<password> -F":operation=copy" -F":applyTo=/sourceurl" -F":dest=/target/parenturl/" https://localhost:4502/content
Chargement de fichiers à l’aide de Sling PostServlet
curl -u <user>:<password> -F"*=@test.properties" http://localhost:4502/etc/test
Chargement de fichiers à l’aide de Sling PostServlet et spécification du nom de noeud
curl -u <user>:<password> -F"test2.properties=@test.properties" http://localhost:4502/etc/test
Chargement de fichiers spécifiant un type de contenu
curl -u <user>:<password> -F "*=@test.properties;type=text/plain" http://localhost:4502/etc/test
Manipulation de ressources
Pour plus d’informations, consultez API Assets HTPP.
Experience Manager
- Aperçu du guide de l’utilisateur d’administration
- Fonctionnalités des sites
- Administration de sites web
- Réutilisation de contenu : Multi-Site Manager et Live Copy
- Console Aperçu de Live Copy
- Configuration de la synchronisation des Live Copies
- Création et synchronisation de Live Copies
- Conflits de déploiement dans MSM
- Bonnes pratiques relatives à MSM
- Traduction de contenu pour les sites multilingues
- Gestion de projets de traduction
- Identification du contenu à traduire
- Préparation du contenu à traduire
- Création d’une racine de langue à l’aide de l’interface utilisateur classique
- Connexion à Microsoft Translator
- Configuration de la structure d’intégration de traduction
- Assistant Copie de langue
- Amélioration des traductions
- Bonnes pratiques de traduction
- Configurations et explorateur de configurations
- FAQ sur AEM
- Opérations
- Tableaux de bord
- Tableau de bord des opérations
- Sauvegarde et restauration
- Récupération de l’espace mémoire du magasin de données
- Contrôle des ressources de serveur à l’aide de la console JMX
- Utilisation des journaux
- Configuration de l’éditeur de texte enrichi
- Configuration du composant vidéo
- Éditeur en bloc
- Configuration des notifications par e-mail
- Configuration de l’éditeur de texte enrichi pour produire des sites accessibles
- Vérificateur de lien
- Résolution des incidents liés à AEM
- Maintenance du journal d’audit dans AEM 6
- Éditeur
- Gestion de l’accès aux workflows
- Utiliser cURL avec AEM
- Configurer la commande Annuler pour modifier des pages
- Outil de serveur proxy (proxy.jar)
- Configuration des applications AEM
- Administration des workflows
- Configuration des formulaires de recherche
- Consoles Outils
- Création de rapports
- Administration d’instances de workflow
- Configuration du conteneur et du mode de mises en page
- Activer l’accès à l’IU classique
- Démarrage d’un workflow
- Configuration des modules externes d’éditeur de texte enrichi
- Consoles d’administration
- Sécurité
- Administration et sécurité des utilisateurs
- Administration des utilisateurs, des groupes et des droits d’accès
- Liste de contrôle de sécurité
- Les 10 plus grands risques d’OWASP
- Exécution d’AEM en mode Prêt pour l’exploitation
- Identity Management
- Authentification Adobe IMS et prise en charge de l’Admin Console pour AEM Managed Services
- Création d’un groupe d’utilisateurs fermé
- Réduction des problèmes de sérialisation dans AEM
- Synchronisation des utilisateurs
- Prise en charge des jetons encapsulés
- Connexion unique
- Contrôle des opérations de gestion des utilisateurs dans AEM
- SSL par défaut
- Gestionnaire d’authentification SAML 2.0
- Groupes d’utilisateurs fermés dans AEM
- Opérations Granite - Administration des utilisateurs et des groupes
- Activation de CRXDE Lite dans AEM
- Configuration de LDAP avec AEM 6
- Configuration du mot de passe d’administrateur sur l’installation
- Utilisateurs de services dans AEM
- Prise en charge du chiffrement des propriétés de configuration
- Traitement des demandes RGPD pour AEM Foundation
- Filtre de disposition du contenu
- Personnalisation
- eCommerce
- Intégration
- Intégration à des services tiers
- Intégration à Salesforce
- Intégration à Adobe Target
- Intégration à Adobe Analytics
- Connexion à Adobe Analytics et création de frameworks
- Configuration du suivi des liens Adobe Analytics
- Mappage des données de composant aux propriétés Adobe Analytics
- Configuration du suivi vidéo pour Adobe Analytics
- FAQ sur la diffusion de contenu HTTP/2
- Résolution des incidents liés à votre intégration Adobe Campaign
- Licences, notices de copyright et clauses de non-responsabilité de SharePoint Connector
- SharePoint Connector
- FAQ sur la fin de prise en charge de la visionneuse DHTML
- Intégration à Adobe Campaign Classic
- Articles associés de la communauté
- Intégration à Adobe Campaign Standard
- Notification de fin de prise en charge de la visionneuse Flash
- Intégration à Adobe Creative Cloud
- Intégration à Adobe Dynamic Tag Management
- Souscription à Adobe Analytics et Adobe Target
- Portails et portlets AEM
- Intégration à Dynamic Media Classic
- Résolution des problèmes d’intégration
- Intégration à BrightEdge Content Optimizer
- Bonnes pratiques relatives aux modèles d’e-mail
- Catalog Producer
- Intégration à Silverpop Engage
- Intégration à Adobe Campaign
- Intégration à ExactTarget
- Analytics avec des fournisseurs externes
- Intégration à Adobe Marketing Cloud
- Configuration manuelle de l’intégration à Adobe Target
- Conditions préalables à l’intégration à Adobe Target
- Classifications Adobe
- Intégration de solutions
- Intégration de Target avec les fragments d’expérience
- Bonnes pratiques
- Gestion de contenu