Utiliser cURL avec AEM using-curl-with-aem
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 et des utilisatrices, l’installation de packages et la gestion des bundles OSGi sont des tâches qui doivent être effectuées régulièrement.
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 des appels d’URL et peut s’avérer un outil utile pour les administrateurs et administratrices d’AEM.
cURL, qu’est-ce que c’est ? what-is-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 « see URL" » (« voir l’URL » en français).
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, d’utilisateurs et d’utilisatrices, peuvent être automatisées à l’aide de cURL. En outre, vous pouvez créer vos propres commandes cURL pour la plupart des tâches dans AEM.
Télécharger cURL downloading-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éer une commande AEM compatible avec cURL building-a-curl-ready-aem-command
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 POST au serveur lorsque vous exécutez la commande AEM.
Les étapes suivantes décrivent comment effectuer cette opération en créant 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 l’assistant Créer une page pour créer le workflow.
-
Cliquez avec le bouton droit de la souris sur l’action POST obtenue 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 AEM opérationnelles courantes common-operational-aem-curl-commands
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.Gérer les packages package-management
Liste de tous les packages installés
curl -u <user>:<password> http://<host>:<port>/crx/packmgr/service.jsp?cmd=ls
Créer un package create-a-package
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>
Prévisualiser un package preview-a-package
curl -u <user>:<password> -X POST http://localhost:4502/crx/packmgr/service/.json/etc/packages/mycontent.zip?cmd=preview
Faire une liste du contenu du package list-package-content
curl -u <user>:<password> -X POST http://localhost:4502/crx/packmgr/service/console.html/etc/packages/mycontent.zip?cmd=contents
Compiler un package build-a-package
curl -X POST http://localhost:4502/crx/packmgr/service/.json/etc/packages/mycontent.zip?cmd=build
Réencapsuler un package rewrap-a-package
curl -u <user>:<password> -X POST http://localhost:4502/crx/packmgr/service/.json/etc/packages/mycontent.zip?cmd=rewrap
Renommer un package rename-a-package
curl -u <user>:<password> -X POST -Fname=<New Name> http://localhost:4502/etc/packages/<Group Name>/<Package Name>.zip/jcr:content/vlt:definition
Charger un package upload-a-package
curl -u <user>:<password> -F cmd=upload -F force=true -F package=@test.zip http://localhost:4502/crx/packmgr/service/.json
Installer un package install-a-package
curl -u <user>:<password> -F cmd=install http://localhost:4502/crx/packmgr/service/.json/etc/packages/my_packages/test.zip
Désinstaller un package uninstall-a-package
curl -u <user>:<password> -F cmd=uninstall http://localhost:4502/crx/packmgr/service/.json/etc/packages/my_packages/test.zip
Supprimer un package delete-a-package
curl -u <user>:<password> -F cmd=delete http://localhost:4502/crx/packmgr/service/.json/etc/packages/my_packages/test.zip
Télécharger un package download-a-package
curl -u <user>:<password> http://localhost:4502/etc/packages/my_packages/test.zip
Réplication d’un module replicate-a-package
curl -u <user>:<password> -X POST http://localhost:4502/crx/packmgr/service/.json/etc/packages/my_packages/test.zip?cmd=replicate
User Management user-management
Créer un utilisateur ou une utilisatrice create-a-new-user
curl -u <user>:<password> -FcreateUser= -FauthorizableId=hashim -Frep:password=hashim http://localhost:4502/libs/granite/security/post/authorizables
Créer un groupe create-a-new-group
curl -u <user>:<password> -FcreateGroup=group1 -FauthorizableId=testGroup1 http://localhost:4502/libs/granite/security/post/authorizables
Ajouter une propriété à un utilisateur ou une utilisatrice existant add-a-property-to-an-existing-user
curl -u <user>:<password> -Fprofile/age=25 http://localhost:4502/home/users/h/hashim.rw.html
Créer un utilisateur ou une utilisatrice avec un profil create-a-user-with-a-profile
curl -u <user>:<password> -FcreateUser=testuser -FauthorizableId=hashimkhan -Frep:password=hashimkhan -Fprofile/gender=male http://localhost:4502/libs/granite/security/post/authorizables
Créer un utilisateur ou une utilisatrice en tant que membre d’un groupe create-a-new-user-as-a-member-of-a-group
curl -u <user>:<password> -FcreateUser=testuser -FauthorizableId=testuser -Frep:password=abc123 -Fmembership=contributor http://localhost:4502/libs/granite/security/post/authorizables
Ajouter un utilisateur ou une utilisatrice à un groupe add-a-user-to-a-group
curl -u <user>:<password> -FaddMembers=testuser1 http://localhost:4502/home/groups/t/testGroup.rw.html
Supprimer un utilisateur ou une utilisatrice d’un groupe remove-a-user-from-a-group
curl -u <user>:<password> -FremoveMembers=testuser1 http://localhost:4502/home/groups/t/testGroup.rw.html
Définir l’appartenance d’un utilisateur ou d’une utilisatrice à un groupe set-a-user-s-group-membership
curl -u <user>:<password> -Fmembership=contributor -Fmembership=testgroup http://localhost:4502/home/users/t/testuser.rw.html
Supprimer un utilisateur ou une utilisatrice delete-a-user
curl -u <user>:<password> -FdeleteAuthorizable= http://localhost:4502/home/users/t/testuser
Supprimer un groupe delete-a-group
curl -u <user>:<password> -FdeleteAuthorizable= http://localhost:4502/home/groups/t/testGroup
Sauvegarde backup
Pour plus d’informations, consultez Sauvegarde et restauration.
OSGi osgi
Démarrer un bundle starting-a-bundle
curl -u <user>:<password> -Faction=start http://localhost:4502/system/console/bundles/<bundle-name>
Arrêter un bundle stopping-a-bundle
curl -u <user>:<password> -Faction=stop http://localhost:4502/system/console/bundles/<bundle-name>
Dispatcher dispatcher
Invalider le cache invalidate-the-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
Expulser le cache evict-the-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 replication-agent
Consulter le statut d’un agent check-the-status-of-an-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
Supprimer un agent delete-an-agent
curl -X DELETE http://localhost:4502/etc/replication/agents.author/replication99 -u <user>:<password>
Créer un agent create-an-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 pause-an-agent
curl -u <user>:<password> -F "cmd=pause" -F "name=publish" http://localhost:4502/etc/replication/agents.author/publish/jcr:content.queue.json
Effacer une file d’attente d’agents clear-an-agent-queue
curl -u <user>:<password> -F "cmd=clear" -F "name=publish" http://localhost:4502/etc/replication/agents.author/publish/jcr:content.queue.json
Communities communities
Affecter et révoquer des badges assign-and-revoke-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 msrp-reindexing
Pour plus d’informations, consultez MSRP – Fournisseur de ressources de stockage MongoDB.
Sécurité security
Activer et désactiver CRX DE Lite enabling-and-disabling-crx-de-lite
Pour plus d’informations, consultez Activation de CRXDE Lite dans AEM.
Nettoyage de la mémoire du magasin de données data-store-garbage-collection
Pour plus d’informations, consultez Nettoyage de la mémoire de magasin de données.
Intégration d’Analytics à Target analytics-and-target-integration
Pour plus d’informations, consultez Souscription à Adobe Analytics et Target.
Connexion unique single-sign-on
Envoyer un en-tête de test send-test-header
Pour plus d’informations, consultez Authentification unique.
Commandes cURL d’AEM pour la manipulation de contenu courant common-content-manipulation-aem-curl-commands
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 page-management
Activation des pages page-activation
curl -u <user>:<password> -X POST -F path="/content/path/to/page" -F cmd="activate" http://localhost:4502/bin/replicate.json
Désactivation des pages page-deactivation
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 tree-activation
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 lock-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 unlock-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 copy-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 workflows
Pour plus d’informations, consultez Interaction avec des workflows par programmation.
Contenu Sling sling-content
Créer un dossier create-a-folder
curl -u <user>:<password> -F jcr:primaryType=sling:Folder http://localhost:4502/etc/test
Supprimer un nœud delete-a-node
curl -u <user>:<password> -F :operation=delete http://localhost:4502/etc/test/test.properties
Déplacer un nœud move-a-node
curl -u <user>:<password> -F":operation=move" -F":applyTo=/sourceurl" -F":dest=/target/parenturl/" https://localhost:4502/content
Copier un nœud copy-a-node
curl -u <user>:<password> -F":operation=copy" -F":applyTo=/sourceurl" -F":dest=/target/parenturl/" https://localhost:4502/content
Charger des fichiers à l’aide de Sling PostServlet upload-files-using-sling-postservlet
curl -u <user>:<password> -F"*=@test.properties" http://localhost:4502/etc/test
Charger des fichiers à l’aide de Sling PostServlet et spécifier le nom du nœud upload-files-using-sling-postservlet-and-specifying-node-name
curl -u <user>:<password> -F"test2.properties=@test.properties" http://localhost:4502/etc/test
Charger des fichiers en spécifiant un type de contenu upload-files-specifying-a-content-type
curl -u <user>:<password> -F "*=@test.properties;type=text/plain" http://localhost:4502/etc/test
Manipulation des ressources asset-manipulation
Pour plus d’informations, consultez API Assets HTPP.