Les exemples et les échantillons de ce document sont réservés à l’environnement AEM Forms sur JEE.
Vous pouvez créer un gestionnaire d’invitation d’utilisateurs externes pour le service Rights Management. Un gestionnaire d’invitation d’utilisateurs externes permet au service Rights Management d’inviter des utilisateurs externes à devenir des utilisateurs Rights Management. Lorsqu’un utilisateur devient utilisateur Rights Management, il peut effectuer certaines tâches, comme ouvrir un document PDF protégé par une politique. Une fois le gestionnaire d’invitation d’utilisateurs externes déployé dans AEM Forms, vous pouvez utiliser la console d’administration pour interagir avec celui-ci.
Un gestionnaire d’invitation d’utilisateurs externes est un composant AEM Forms. Avant de créer un gestionnaire d’invitation d’utilisateurs externes, il est recommandé de vous familiariser avec la création de composants.
Résumé des étapes
Pour développer un gestionnaire d’invitation d’utilisateurs externes, procédez comme suit :
Pour configurer votre environnement de développement, vous devez créer un projet Java, tel qu’un projet Eclipse. La version d’Eclipse prise en charge est la version 3.2.1
ou ultérieure.
La SPI du Rights Management nécessite la edc-server-spi.jar
à définir dans le chemin d’accès de classe de votre projet. Si vous ne référencez pas ce fichier JAR, vous ne pouvez pas utiliser la SPI Rights Management dans votre projet Java. Ce fichier JAR est installé avec le SDK AEM Forms dans le dossier [install directory]\Adobe\Adobe_Experience_Manager_forms\sdk\spi
.
En plus de l’ajout de la variable edc-server-spi.jar
dans le chemin de classe de votre projet, vous devez également ajouter les fichiers JAR requis pour utiliser l’API Rights Management Service. Ces fichiers sont nécessaires pour utiliser l’API du service Rights Management dans le gestionnaire d’invitation d’utilisateurs externes.
Pour développer un gestionnaire d’invitation d’utilisateurs externes, vous devez créer une classe Java qui implémente l’interface com.adobe.edc.server.spi.ersp.InvitedUserProvider
. Cette classe contient une méthode nommée invitedUser
, que le service Rights Management appelle lorsque les adresses électroniques sont envoyées à l’aide de la page Ajout d’utilisateurs invités accessible via la console d’administration.
La méthode invitedUser
accepte une instance java.util.List
qui contient des adresses e-mail de type chaîne envoyées à partir de la page Ajout d’utilisateurs invités. La méthode invitedUser
renvoie un tableau d’objets InvitedUserProviderResult
, qui est généralement un mappage d’adresses e-mail aux objets Utilisateur (ne renvoyez pas la valeur null).
En plus de présenter comment créer un gestionnaire d’invitation d’utilisateurs externes, cette section utilise également l’API AEM Forms.
L’implémentation du gestionnaire d’invitation d’utilisateurs externes contient une méthode définie par l’utilisateur nommée createLocalPrincipalAccount
. Cette méthode accepte une valeur de chaîne qui indique une adresse électronique comme valeur de paramètre. La méthode createLocalPrincipalAccount
suppose la préexistence d’un domaine local appelé EDC_EXTERNAL_REGISTERED
. Vous pouvez configurer ce nom de domaine comme vous le souhaitez ; toutefois, pour une application de production, vous pouvez vouloir l’intégrer à un domaine d’entreprise.
La méthode createUsers
effectue une itération sur chaque adresse électronique et crée un objet Utilisateur correspondant (un utilisateur local dans le domaine EDC_EXTERNAL_REGISTERED
). Enfin, la méthode doEmails
est appelée. Cette méthode est délibérément laissée sous la forme d’un bulletin dans l’échantillon. Dans une mise en oeuvre de production, il contiendrait la logique de l’application pour envoyer des messages d’invitation par courrier électronique aux utilisateurs nouvellement créés. Il est laissé dans l’exemple pour démontrer le flux logique d’application d’une application réelle.
L’implémentation suivante du gestionnaire d’invitation d’utilisateurs externes accepte les adresses électroniques envoyées à partir de la page Ajouter des utilisateurs invités, accessible via la console d’administration.
package com.adobe.livecycle.samples.inviteexternalusers.provider;
import com.adobe.edc.server.spi.ersp.*;
import com.adobe.idp.dsc.clientsdk.ServiceClientFactory;
import com.adobe.idp.um.api.*;
import com.adobe.idp.um.api.infomodel.*;
import com.adobe.idp.um.api.impl.UMBaseLibrary;
import com.adobe.livecycle.usermanager.client.DirectoryManagerServiceClient;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
public class InviteExternalUsersSample implements InvitedUserProvider
{
private ServiceClientFactory _factory = null;
private User createLocalPrincipalAccount(String email_address) throws Exception
{
String ret = null;
// Assume the local domain already exists!
String domain = "EDC_EXTERNAL_REGISTERED";
List aliases = new ArrayList();
aliases.add( email_address );
User local_user = UMBaseLibrary.createUser( email_address, domain, email_address );
local_user.setCommonName( email_address );
local_user.setEmail( email_address );
local_user.setEmailAliases( aliases );
// You may wish to disable the local user until, for example, his registration is processed by a confirmation link
//local_user.setDisabled( true );
DirectoryManager directory_manager = new DirectoryManagerServiceClient( _factory );
String ret_oid = directory_manager.createLocalUser( local_user, null );
if( ret_oid == null )
{
throw new Exception( "FAILED TO CREATE PRINCIPAL FOR EMAIL ADDRESS: " + email_address );
}
return local_user;
}
protected User[] createUsers( List emails ) throws Exception
{
ArrayList ret_users = new ArrayList();
_factory = ServiceClientFactory.createInstance();
Iterator iter = emails.iterator();
while( iter.hasNext() )
{
String current_email = (String)iter.next();
ret_users.add( createLocalPrincipalAccount( current_email ) );
}
return (User[])ret_users.toArray( new User[0] );
}
protected void doInvitations(List emails)
{
// Here you may choose to send the users who were created an invitation email
// This step is completely optional, depending on your requirements.
}
public InvitedUserProviderResult[] invitedUser(List emails)
{
// This sample demonstrates the workflow for inviting a user via email
try
{
User[] principals = createUsers(emails);
InvitedUserProviderResult[] result = new InvitedUserProviderResult[principals.length];
for( int i = 0; i < principals.length; i++ )
{
result[i] = new InvitedUserProviderResult();
result[i].setEmail( (String)emails.get( i ) );
result[i].setUser( principals[i] );
}
doInvitations(emails);
System.out.println( "SUCCESSFULLY INVITED " + result.length + " USERS" );
return result;
}
catch( Exception e )
{
System.out.println( "FAILED TO INVITE USERS FOR INVITE USERS SAMPLE" );
e.printStackTrace();
return new InvitedUserProviderResult[0];
}
}
}
Cette classe Java est enregistrée en tant que fichier JAVA nommé InviteExternalUsersSample.java.
Définissez un fichier XML de composant pour déployer le composant de gestionnaire d’utilisateurs externes. Un fichier XML de composant existe pour chaque composant et fournit des métadonnées sur le composant.
Le fichier component.xml
suivant est utilisé pour le gestionnaire d’invitation d’utilisateurs externes. Notez que le nom du service est InviteExternalUsersSample
et que l’opération exposée par ce service est nommée invitedUser
. Le paramètre d’entrée est une instance java.util.List
et la valeur de sortie est un tableau d’instances com.adobe.edc.server.spi.esrp.InvitedUserProviderResult
.
<component xmlns="https://adobe.com/idp/dsc/component/document">
<component-id>com.adobe.livecycle.samples.inviteexternalusers</component-id>
<version>1.0</version>
<bootstrap-class>com.adobe.livecycle.samples.inviteexternalusers.provider.BootstrapImpl</bootstrap-class>
<descriptor-class>com.adobe.idp.dsc.component.impl.DefaultPOJODescriptorImpl</descriptor-class>
<services>
<service name="InviteExternalUsersSample">
<specifications>
<specification spec-id="com.adobe.edc.server.spi.ersp.InvitedUserProvider"/>
</specifications>
<specification-version>1.0</specification-version>
<implementation-class>com.adobe.livecycle.samples.inviteexternalusers.provider.InviteExternalUsersSample</implementation-class>
<auto-deploy category-id="Samples" service-id="InviteExternalUsersSample" major-version="1" minor-version="0"/>
<operations>
<operation name="invitedUser">
<input-parameter name="input" type="java.util.List" required="true"/>
<output-parameter name="result" type="com.adobe.edc.server.spi.esrp.InvitedUserProviderResult[]"/>
</operation>
</operations>
</service>
</services>
</component>
Pour déployer le gestionnaire d’invitations d’utilisateurs externes vers AEM Forms, vous devez compresser votre projet Java dans un fichier JAR. Assurez-vous que les fichiers JAR externes dont dépend la logique commerciale du gestionnaire d’invitation d’utilisateurs externes, tels que edc-server-spi.jar
et adobe-rightsmanagement-client.jar
sont également inclus dans le fichier JAR. De même, le fichier XML du composant doit être présent. Le fichier component.xml
et les fichiers JAR externes doivent se trouver à la racine du fichier JAR.
L’illustration ci-dessous présente une classe BootstrapImpl
. Cette section n’explique pas comment créer une classe BootstrapImpl
.
L’illustration suivante présente le contenu du projet Java inclus dans le fichier JAR du gestionnaire d’utilisateurs externes.
A. Fichiers JAR externes requis par le composant B. Fichier JAVA
Regroupez le gestionnaire d’invitation d’utilisateurs externes dans un fichier JAR. Dans le diagramme précédent, remarquez que les fichiers .JAVA sont répertoriés. Une fois compressés dans un fichier JAR, les fichiers .CLASS correspondants doivent également être spécifiés. Sans les fichiers .CLASS, le gestionnaire d’autorisations ne fonctionne pas.
Après avoir compressé le gestionnaire d’autorisation externe dans un fichier JAR, vous pouvez déployer le composant dans AEM Forms. Un seul gestionnaire d’invitations d’utilisateurs externes peut être déployé à un moment donné.
Vous pouvez également déployer un composant par programmation.
Pour tester le gestionnaire d’invitations d’utilisateurs externes, vous pouvez ajouter des utilisateurs externes à inviter en utilisant la console d’administration.
Pour ajouter des utilisateurs externes à l’invitation à l’aide de la console d’administration :
EDC_EXTERNAL_REGISTERED
. Enregistrez vos modifications.EDC_EXTERNAL_REGISTERED
.Le gestionnaire d’invitations d’utilisateurs externes échoue si le composant est arrêté ou désinstallé.