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, 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 ? 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 "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 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éation d’une 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 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 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.Gestion des packages package-management
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 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>
Aperçu d’un module preview-a-package
curl -u <user>:<password> -X POST http://localhost:4502/crx/packmgr/service/.json/etc/packages/mycontent.zip?cmd=preview
Contenu du package de liste list-package-content
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 build-a-package
curl -X POST http://localhost:4502/crx/packmgr/service/.json/etc/packages/mycontent.zip?cmd=build
Réencapsuler un module rewrap-a-package
curl -u <user>:<password> -X POST http://localhost:4502/crx/packmgr/service/.json/etc/packages/mycontent.zip?cmd=rewrap
Renommer un module 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
Téléchargement d’un module upload-a-package
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 install-a-package
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 uninstall-a-package
curl -u <user>:<password> -F cmd=uninstall http://localhost:4502/crx/packmgr/service/.json/etc/packages/my_packages/test.zip
Suppression d’un module 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échargement d’un module download-a-package
curl -u <user>:<password> http://localhost:4502/etc/packages/my_packages/test.zip
User Management user-management
Création d’un utilisateur create-a-new-user
curl -u <user>:<password> -FcreateUser= -FauthorizableId=hashim -Frep:password=hashim http://localhost:4502/libs/granite/security/post/authorizables
Création d’un groupe create-a-new-group
curl -u <user>:<password> -FcreateGroup=group1 -FauthorizableId=testGroup1 http://localhost:4502/libs/granite/security/post/authorizables
Ajout d’une propriété à un utilisateur 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éation d’un utilisateur 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éation d’un utilisateur 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
Ajout d’un utilisateur à un groupe add-a-user-to-a-group
curl -u <user>:<password> -FaddMembers=testuser1 http://localhost:4502/home/groups/t/testGroup.rw.html
Suppression d’un utilisateur 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éfinition de l’appartenance à un groupe d’utilisateurs set-a-user-s-group-membership
curl -u <user>:<password> -Fmembership=contributor -Fmembership=testgroup http://localhost:4502/home/users/t/testuser.rw.html
Suppression d’un utilisateur delete-a-user
curl -u <user>:<password> -FdeleteAuthorizable= http://localhost:4502/home/users/t/testuser
Suppression d’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émarrage d’un lot starting-a-bundle
curl -u <user>:<password> -Faction=start http://localhost:4502/system/console/bundles/<bundle-name>
Arrêt d’un lot stopping-a-bundle
curl -u <user>:<password> -Faction=stop http://localhost:4502/system/console/bundles/<bundle-name>
Dispatcher dispatcher
Invalidation du 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
Extraction du 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
Vérification de l’état 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
Suppression d’un agent delete-an-agent
curl -X DELETE http://localhost:4502/etc/replication/agents.author/replication99 -u <user>:<password>
Création d’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
Effacement d’une file d’attente d’agent 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
Attribution et révocation 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
Activation et désactivation de 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 l’en-tête de test send-test-header
Pour plus d’informations, consultez Authentification unique.
Manipulation de contenu courant AEM commandes cURL 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 de page 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 de page 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éation d’un dossier create-a-folder
curl -u <user>:<password> -F jcr:primaryType=sling:Folder http://localhost:4502/etc/test
Suppression d’un noeud delete-a-node
curl -u <user>:<password> -F :operation=delete http://localhost:4502/etc/test/test.properties
Déplacement d’un noeud move-a-node
curl -u <user>:<password> -F":operation=move" -F":applyTo=/sourceurl" -F":dest=/target/parenturl/" https://localhost:4502/content
Copie d’un noeud copy-a-node
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 upload-files-using-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 upload-files-using-sling-postservlet-and-specifying-node-name
curl -u <user>:<password> -F"test2.properties=@test.properties" http://localhost:4502/etc/test
Chargement de fichiers 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 de ressources asset-manipulation
Pour plus d’informations, consultez API Assets HTPP.