Show Menu
SUJETS×

SRP et UGC Essentials

Présentation

Si vous ne connaissez pas bien le fournisseur de ressources de stockage (SRP) et sa relation avec le contenu généré par l’utilisateur (UGC), consultez Présentation du fournisseur de ressources de stockage et de stockage de contenu de la communauté.
Cette section de la documentation fournit quelques informations essentielles sur le PRS et le CU.

API StorageResourceProvider

L’API SocialResourceProvider (API SRP) est une extension de diverses API du fournisseur de ressources Sling. Il comprend la prise en charge de la pagination et de l’incrément atomique (utile pour le décompte et le score).
Des requêtes sont nécessaires pour les composants SCF, car il est nécessaire de trier par date, utilité, nombre de votes, etc. Toutes les options SRP ont des mécanismes de requête souples qui ne reposent pas sur le cumul.
L’emplacement de stockage SRP incorpore le chemin d’accès au composant. L’API SRP doit toujours être utilisée pour accéder à l’UGC, car le chemin racine dépend de l’option SRP sélectionnée, telle que ASRP, MSRP ou JSRP.
L’API SRP n’est pas une classe abstraite, c’est une interface. Une implémentation personnalisée ne doit pas être entreprise à la légère, car les avantages des améliorations futures des implémentations internes seraient ignorés lors de la mise à niveau vers une nouvelle version.
Les méthodes d’utilisation de l’API SRP sont fournies par l’intermédiaire d’utilitaires fournis, tels que ceux figurant dans le package SocialResourceUtilities.
Lors de la mise à niveau à partir d’AEM 6.0 ou d’une version antérieure, il sera nécessaire de migrer UGC pour tous les fichiers SRP pour lesquels un outil Open Source est disponible. See Upgrading to AEM Communities 6.3 .
Historiquement, les utilitaires d’accès à l’UGC étaient trouvés dans le package SocialUtils, qui n’existe plus.
Pour les utilitaires de remplacement, voir SocialUtils Refactoring .

Méthode d'utilitaire d'accès à l'UGC

Pour accéder à l’UGC, utilisez une méthode du package SocialResourceUtilities qui renvoie un chemin approprié pour accéder à l’UGC à partir de SRP et remplace la méthode déconseillée trouvée dans le package SocialUtils.
Voici un exemple minimal d’utilisation de la méthode resourceToUGCStoragePath() dans une servlet :
import com.adobe.cq.social.srp.utilities.api.SocialResourceUtilities;

@Reference
private SocialResourceUtilities socialResourceUtilities;

@Override
protected void doGet(final SlingHttpServletRequest request, final SlingHttpServletResponse response) throws ServletException, IOException {
  String ugcPath = socialResourceUtilities.resourceToUGCStoragePath(request.getResource());
  // rest of servlet
}

Pour d’autres remplacements de SocialUtils, voir SocialUtils Refactoring .
Pour obtenir des instructions de codage, consultez Accès à l’UGC avec SRP .
La ressource de chemin d'accèsToUGCStoragePath() renvoie *ne convient *pas pour la vérification des listes de contrôle d'accès.

Méthode d'utilitaire d'accès aux listes de contrôle d'accès

Certaines implémentations SRP, telles que ASRP et MSRP, stockent le contenu de la communauté dans des bases de données qui ne fournissent aucune vérification ACL. Les noeuds d’ombre fournissent un emplacement dans le référentiel local auquel les ACL peuvent être appliquées.
A l’aide de l’API SRP, toutes les options SRP effectuent la même vérification de l’emplacement de l’ombre avant toutes les opérations CRUD.
Pour vérifier les listes de contrôle d’accès, utilisez une méthode qui renvoie un chemin approprié pour vérifier les autorisations appliquées au fichier UGC de la ressource.
Voici un exemple simple d’utilisation de la méthode resourceToACLPath() dans une servlet :
import com.adobe.cq.social.srp.utilities.api.SocialResourceUtilities;

@Reference
private SocialResourceUtilities socialResourceUtilities;

@Override
protected void doGet(final SlingHttpServletRequest request, final SlingHttpServletResponse response) throws ServletException, IOException {
  String aclPath = socialResourceUtilities.resourceToACLPath(request.getResource());
  // rest of servlet
}

Le chemin renvoyé par resourceToACLPath() n'est *pas *approprié pour accéder à l'UGC lui-même.