Utilisation de with sharing pour les contrôleurs Apex @AuraEnabled avec le partage implicite (mise à jour critique)

Cette mise à jour critique modifie le comportement des contrôleurs Apex @AuraEnabled qui ne spécifient pas with sharing ou without sharing par défaut sur with sharing. Cette mise à jour critiques s'applique uniquement aux organisations créées après la version Spring ’18 ou aux organisations qui ont activé la mise à jour critique retirée « Utiliser without sharing pour les contrôleurs Apex @AuraEnabled avec le partage implicite » qui avait l'effet inverse et définissait la valeur par défaut sur without sharing.

Où : cette modification s'applique aux composants Web Aura et Lightning dans Lightning Experience, Salesforce Classic, communautés Lightning et dans toutes les versions de l'application Salesforce.

Quand : Salesforce va automatiquement activer cette mise à jour critique à la date d'auto-activation répertoriée dans la page Mises à jour critiques dans la Configuration.

Pourquoi : une classe Apex @AuraEnabled qui ne définit pas explicitement with sharing ou without sharing utilise la valeur par défaut ou implicite with sharing. L'object de la mise au jour critique retirée « Utiliser without sharing pour les contrôleurs Apex @AuraEnabled avec le partage implicite » était d'appliquer par défaut without sharing aux contrôleurs Apex pour les composants Aura. Avec ce comportement, les contrôleurs Apex étaient cohérents dans les composants Aura et les pages Visualforce.

Après réflexion, nous avons décidé de garantir la protection par défaut des composants Lightning. Par conséquent, nous avons créé cette mise à jour critique qui applique par défaut with sharing aux classes Apex @AuraEnabled utilisées par des composants Aura ou des composants Web Lightning.

Généralement, les classes Apex sont exécutées en mode système. Par conséquent, les identifiants de l'utilisateur actuel ne sont pas utilisés pour exécuter la logique Apex, et les autorisations et la sécurité au niveau du champ de l'utilisateur ne sont pas automatiquement appliquées.

Vous pouvez définir si une classe Apex applique les règles de partage en utilisant les mots-clés with sharing ou without sharing. L'activation des règles de partage en utilisant les mots-clés with sharing n'applique pas les autorisations de l'utilisateur ni la sécurité au niveau du champ. Vous devez appliquer manuellement les autorisations CRUD et la sécurité au niveau du champ séparément dans vos classes Apex.

Comment : pour préparer cette mise à jour critique, assurez-vous que tout votre code Apex @AuraEnabled contrôle explicitement le comportement de partage en utilisant les mots-clés with sharing ou without sharing. Si tout votre code @AuraEnabled définit explicitement le comportement de partage, cette mise à jour critique est sans effet.

pour tester cette mise à jour critique, nous recommandons de travailler dans une organisation sandbox.

  1. Dans Configuration, saisissez Mises à jour critiques dans la case Recherche rapide.
  2. Sélectionnez Mises à jour critiques.
  3. Consultez les détails de la mise à jour critique « Utiliser with sharing pour les contrôleurs Apex @AuraEnabled avec le partage implicite ».
  4. Cliquez sur Activer.
  5. Testez le comportement des composants utilisant des classes Apex qui ne contiennent pas les mots-clés with sharing ou without sharing.