Een Uitnodigingshandler voor externe gebruikers maken create-invite-external-users-handler

Voorbeelden en voorbeelden in dit document gelden alleen voor AEM Forms in JEE-omgeving.

U kunt een Invite External Users Handler voor de service Rights Management maken. Een Invite External Users Handler stelt de service Rights Management in staat externe gebruikers uit te nodigen Rights Management gebruikers te worden. Nadat een gebruiker een gebruiker van het Rights Management wordt, kan de gebruiker taken, zoals het openen van een beleid-beschermd document van de PDF uitvoeren. Nadat de Invite External Users Handler wordt opgesteld aan AEM Forms, kunt u beleidsconsole gebruiken om met het in wisselwerking te staan.

NOTE
Een Invite External Users Handler is een AEM Forms-component. Voordat u een Invite External Users Handler maakt, wordt u aangeraden vertrouwd te raken met het maken van componenten.

Overzicht van de stappen

Als u een Invite External Users Handler wilt ontwikkelen, moet u de volgende stappen uitvoeren:

  1. Stel uw ontwikkelomgeving in.
  2. Definieer de implementatie Invite External Users Handler.
  3. Definieer het XML-bestand van de component.
  4. Implementeer de handler Externe gebruikers uitnodigen.
  5. Test de Invite External Users Handler.

De ontwikkelomgeving instellen setting-up-development-environment

Als u uw ontwikkelomgeving wilt instellen, moet u een Java-project maken, zoals een Eclipse-project. De ondersteunde versie van Eclipse wordt 3.2.1 of hoger.

De SPI van het Rights Management vereist edc-server-spi.jar bestand dat moet worden ingesteld in het klassepad van uw project. Als u niet naar dit JAR-bestand verwijst, kunt u de Rights Management-SPI niet gebruiken in uw Java-project. Dit JAR-bestand is geïnstalleerd met de AEM Forms SDK in het dialoogvenster [install directory]\Adobe\Adobe_Experience_Manager_forms\sdk\spi map.

Naast het toevoegen van edc-server-spi.jar aan de klassenweg van uw project, moet u ook de JAR dossiers toevoegen die worden vereist om de Dienst API van het Rights Management te gebruiken. Deze bestanden zijn nodig om de Rights Management Service API in de Uitnodiging External Users Handler te gebruiken.

De implementatie van de uitnodigen van externe gebruikers definiëren define-invite-external-users-handler

Als u een uitnodigingshandler voor externe gebruikers wilt ontwikkelen, moet u een Java-klasse maken die de com.adobe.edc.server.spi.ersp.InvitedUserProvider interface. Deze klasse bevat een methode met de naam invitedUser, die de dienst van het Rights Management aanhaalt wanneer de e-mailadressen gebruikend Uitgenodigde gebruikers toevoegen pagina toegankelijk via de beheerconsole.

De invitedUser methode accepteert een java.util.List -instantie, die e-mailadressen met tekenreekstype bevat die vanuit de Uitgenodigde gebruikers toevoegen pagina. De invitedUser methode retourneert een array met InvitedUserProviderResult objecten. Dit is doorgaans een toewijzing van e-mailadressen aan gebruikersobjecten (retourneren niet null).

NOTE
In deze sectie wordt niet alleen getoond hoe u een uitnodigen voor externe gebruikers-handler kunt maken, maar ook de AEM Forms API gebruikt.

De implementatie van de uitnodigen externe gebruikers manager bevat een user-defined methode genoemd createLocalPrincipalAccount. Deze methode accepteert een tekenreekswaarde die een e-mailadres opgeeft als parameterwaarde. De createLocalPrincipalAccount methode gaat ervan uit dat een lokaal domein, genaamd EDC_EXTERNAL_REGISTERED. U kunt deze domeinnaam om het even wat vormen u wenst; nochtans, voor een productietoepassing, kunt u met een ondernemingsdomein willen integreren.

De createUsers methode doorloopt elk e-mailadres en maakt een overeenkomstig object Gebruiker (een lokale gebruiker in het dialoogvenster EDC_EXTERNAL_REGISTERED domein). Tot slot de doEmails wordt aangeroepen. Deze methode wordt opzettelijk als een stoofpot in het monster gelaten. In een productie-implementatie zou deze toepassingslogica bevatten om uitnodigings-e-mailberichten te verzenden naar de nieuwe gebruikers. Het wordt in de steekproef verlaten om de stroom van de toepassingslogica van een echte toepassing aan te tonen.

De implementatie van de uitnodigen van externe gebruikers definiëren user-handler-implementation

De volgende uitnodigingsimplementatie van de externe gebruikersmanager keurt e-mailadressen goed die van Add Uitgenodigde pagina van Gebruikers toegankelijk door beleidsconsole worden voorgelegd.

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];
    }
       }
}
NOTE
Deze Java-klasse wordt opgeslagen als een JAVA-bestand met de naam InviteExternalUsersSample.java.

Het XML-bestand van de component definiëren voor de machtigingshandler define-component-xml-authorization-handler

Bepaal een dossier van componentXML om de uitnodigings externe gebruikersmanagercomponent op te stellen. Er bestaat een XML-componentbestand voor elke component en er worden metagegevens over de component weergegeven.

Het volgende component.xml wordt gebruikt voor de uitnodigen externe gebruikers manager. Bericht dat de de dienstnaam is InviteExternalUsersSample en de bewerking die deze service beschikbaar stelt, krijgt een naam invitedUser. De invoerparameter is een java.util.List -instantie en de uitvoerwaarde een array is van com.adobe.edc.server.spi.esrp.InvitedUserProviderResult instanties.

Het XML-bestand van de component definiëren voor de handler voor externe gebruikers uitnodigen component-xml-invite-external-users-handler

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

De uitnodigen van externe gebruikers-handler in een pakket plaatsen packaging-invite-external-users-handler

Als u de uitnodigen van externe gebruikers-handler wilt implementeren in AEM Forms, moet u uw Java-project in een JAR-bestand plaatsen. Zorg ervoor dat de externe JAR-bestanden waarvan de bedrijfslogica van de uitnodigen van externe gebruikers afhankelijk is, zoals de edc-server-spi.jar en adobe-rightsmanagement-client.jar worden ook opgenomen in het JAR-bestand. Het XML-bestand van de component moet ook aanwezig zijn. De component.xml bestand en externe JAR-bestanden moeten zich in de hoofdmap van het JAR-bestand bevinden.

NOTE
In de onderstaande afbeelding wordt een BootstrapImpl wordt weergegeven. In deze sectie wordt niet besproken hoe u een BootstrapImpl klasse.

In de volgende afbeelding ziet u de inhoud van het Java-project die is verpakt in het JAR-bestand van de uitnodigingshandler voor externe gebruikers.

Gebruikers uitnodigen

A. Externe JAR-bestanden vereist door component B. JAVA-bestand

Plaats de uitnodigen van externe gebruikers-handler in een JAR-bestand. In het vorige diagram worden .JAVA-bestanden weergegeven. Nadat de bestanden in een JAR-bestand zijn verpakt, moeten ook de bijbehorende .CLASS-bestanden worden opgegeven. Zonder de .CLASS dossiers, werkt de vergunningsmanager niet.

NOTE
Nadat u de externe machtigingshandler in een JAR-bestand hebt verpakt, kunt u de component implementeren in AEM Forms. Slechts één nodigt externe gebruikersmanager uit kan in een bepaalde tijd worden opgesteld.
NOTE
U kunt een component programmatically ook opstellen.

Testen van de Uitnodigings externe gebruikersmanager testing-invite-external-users-handler

Om de uitnodigings externe gebruikersmanager te testen, kunt u externe gebruikers toevoegen om uit te nodigen door beleidsconsole te gebruiken.

Om externe gebruikers toe te voegen om uit te nodigen gebruikend beleidsconsole:

  1. Implementeer het JAR-bestand van de uitnodigen van externe gebruikers met Workbench.

  2. Start de toepassingsserver opnieuw.

    note note
    NOTE
    Het wordt aanbevolen de SDK opnieuw te starten met de opdracht 'Ctrl + C'. Het opnieuw opstarten van de AEM SDK met behulp van alternatieve methoden, bijvoorbeeld het stoppen van Java-processen, kan leiden tot inconsistenties in de AEM ontwikkelomgeving.
  3. Log in bij de beheerconsole.

  4. Klikken Services > Rights Management > Configuration > Uitgenodigd User Registration.

  5. Ingenodigde gebruikersregistratie inschakelen door de optie Enable invited user registration doos. Onder Use Built-in registration system, klikt u op No. Sla uw instellingen op.

  6. Van de homepage van de beleidsconsole, klik Settings > User Management > Domain Management.

  7. Klik op New Local Domain. Maak op de volgende pagina een domein met de naam en de id-waarde van EDC_EXTERNAL_REGISTERED. Sla uw wijzigingen op.

  8. Van de homepage van de beleidsconsole, klik Services > Rights Management > Invited and Local Users. De Add Invited User wordt weergegeven.

  9. Voer e-mailadressen in (omdat de huidige uitnodigen van externe gebruikers geen e-mailberichten verzendt, hoeft de geadresseerde e-mail niet geldig te zijn). Klik op OK. De gebruikers worden uitgenodigd aan het systeem.

  10. Van de homepage van de beleidsconsole, klik Settings > User Management > Users and Groups.

  11. In de Find Voer een e-mailadres in dat u hebt opgegeven. Klik op Find. De gebruiker die u hebt uitgenodigd, wordt als een gebruiker weergegeven in de lokale EDC_EXTERNAL_REGISTERED domein.

NOTE
De uitnodigen externe gebruikers-handler mislukt als de component is gestopt of verwijderd.
recommendation-more-help
19ffd973-7af2-44d0-84b5-d547b0dffee2