Utiliser cURL avec AEM

Dernière mise à jour : 2023-05-04
  • Créé pour :
  • Admin
ATTENTION

AEM 6.4 a atteint la fin de la prise en charge étendue et cette documentation n’est plus mise à jour. Pour plus d’informations, voir notre période de support technique. Rechercher les versions prises en charge here.

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.

REMARQUE

Toute commande AEM exécutée par le biais de cURL doit être autorisée, comme n’importe quel utilisateur, dans AEM. Toutes les listes de contrôle d’accès et tous les droits d’accès sont respectés lors de l’utilisation de cURL pour exécuter une commande 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.

  1. 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.

    chlimage_1-66

  2. 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.

    chlimage_1-67

  3. Cliquez sur Créer dans le Créer une page pour créer le workflow.

  4. 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.

    chlimage_1-68

  5. 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>.

    chlimage_1-69

  6. Exécutez la commande cURL à l’aide de la ligne de commande et affichez la réponse.

    chlimage_1-70

Commandes cURL des AEM opérationnelles courantes

Voici une liste des commandes cURL d’AEM pour les tâches administratives et opérationnelles courantes.

REMARQUE

Les exemples ci-dessous considèrent qu’AEM est exécuté sur 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

Sauvegarde

Pour plus d’informations, consultez Sauvegarde et restauration.

OSGi

Démarrage d’un lot

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.

REMARQUE

Les exemples ci-dessous considèrent qu’AEM est exécuté sur 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.

Sur cette page