Os exemplos e amostras neste documento são somente para AEM Forms no ambiente JEE.
Você pode criar um Manipulador de usuários externos para o serviço Rights Management. Rights Management Um Manipulador de usuários externos para convidar usuários externos para se tornarem usuários Rights Management. Depois que um usuário se torna um usuário Rights Management, ele pode executar tarefas, como abrir um documento PDF protegido por política. Depois que o Manipulador para usuários externos do Convite é implantado no AEM Forms, você pode usar o console de administração para interagir com ele.
Um Manipulador de usuários externos para convite é um componente do AEM Forms. Antes de criar um Manipulador de usuários externos, é recomendável que você se familiarize com a criação de componentes.
Resumo das etapas
Para desenvolver um Handler de Usuários Externos do Convite, você deve executar as seguintes etapas:
Para configurar seu ambiente de desenvolvimento, você deve criar um novo projeto Java, como um projeto Eclipse. A versão do Eclipse compatível é 3.2.1
ou posteriormente.
O Rights Management SPI exige o edc-server-spi.jar
arquivo a ser definido no caminho de classe do projeto. Se você não fizer referência a esse arquivo JAR, não poderá usar o SPI do Rights Management no projeto Java. Esse arquivo JAR é instalado com o SDK do AEM Forms no [install directory]\Adobe\Adobe_Experience_Manager_forms\sdk\spi
pasta.
Além de adicionar a variável edc-server-spi.jar
ao caminho de classe do seu projeto, você também deve adicionar os arquivos JAR necessários para usar a API do serviço Rights Management. Esses arquivos são necessários para usar a API do Serviço Rights Management no Manipulador de usuários externos do convite.
Para desenvolver um manipulador de convidar usuários externos, você deve criar uma classe Java que implemente a com.adobe.edc.server.spi.ersp.InvitedUserProvider
interface. Esta classe contém um método chamado invitedUser
, que o serviço Rights Management chama quando endereços de email são enviados usando o Adicionar Usuários Convidados página acessível por meio do console de administração.
A variável invitedUser
o método aceita um java.util.List
instância, que contém endereços de email do tipo string enviados do Adicionar Usuários Convidados página. A variável invitedUser
o método retorna uma matriz de InvitedUserProviderResult
objetos, que geralmente é um mapeamento de endereços de email para objetos do Usuário (não retorne nulo).
Além de demonstrar como criar um manipulador para convidar usuários externos, esta seção também usa a API do AEM Forms.
A implementação do manipulador convidar usuários externos contém um método definido pelo usuário chamado createLocalPrincipalAccount
. Este método aceita um valor de string que especifica um endereço de email como um valor de parâmetro. A variável createLocalPrincipalAccount
O método assume a pré-existência de um domínio local chamado EDC_EXTERNAL_REGISTERED
. Você pode configurar esse nome de domínio como o que desejar; no entanto, para um aplicativo de produção, convém integrar a um domínio corporativo.
A variável createUsers
repete cada endereço de email e cria um objeto User correspondente (um usuário local na variável EDC_EXTERNAL_REGISTERED
domínio). Por último, a doEmails
é chamado. Esse método é intencionalmente deixado como um stub na amostra. Em uma implementação de produção, ela conteria a lógica do aplicativo para enviar mensagens de email de convite para os usuários recém-criados. Ele é deixado na amostra para demonstrar o fluxo lógico da aplicação de uma aplicação real.
A seguinte implementação do manipulador para convidar usuários externos aceita endereços de email enviados da página Adicionar usuários convidados acessível pelo console de administração.
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];
}
}
}
Essa classe Java é salva como um arquivo JAVA chamado InviteExternalUsersSample.java.
Você deve definir um arquivo XML do componente para implantar o componente do manipulador de usuários externos do convite. Existe um arquivo XML componente para cada componente e ele fornece metadados sobre o componente.
As seguintes component.xml
arquivo é usado para o manipulador convidar usuários externos. Observe que o nome do serviço é InviteExternalUsersSample
e a operação que este serviço expõe é nomeada invitedUser
. O parâmetro de entrada é um java.util.List
e o valor de saída é uma matriz de com.adobe.edc.server.spi.esrp.InvitedUserProviderResult
instâncias.
<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>
Para implantar o manipulador convidar usuários externos para o AEM Forms, você deve empacotar o projeto Java em um arquivo JAR. Você deve garantir que os arquivos JAR externos dos quais depende a lógica de negócios do manipulador de usuários externos do convite, como a edc-server-spi.jar
e adobe-rightsmanagement-client.jar
Os arquivos também estão incluídos no arquivo JAR. Além disso, o componente XML file deve estar presente. A variável component.xml
O arquivo JAR e os arquivos JAR externos devem estar localizados na raiz do arquivo JAR.
Na ilustração abaixo, uma BootstrapImpl
é exibida. Esta seção não discute como criar um BootstrapImpl
classe.
A ilustração a seguir mostra o conteúdo do projeto Java que é empacotado no arquivo JAR do manipulador do usuário externo do convite.
A. Arquivos JAR externos necessários para o componente B. Arquivo JAVA
Você deve criar um pacote do manipulador convidar usuários externos em um arquivo JAR. No diagrama anterior, observe que os arquivos .JAVA estão listados. Uma vez empacotado em um arquivo JAR, os arquivos .CLASS correspondentes também devem ser especificados. Sem os arquivos .CLASS, o manipulador de autorização não funciona.
Depois de criar um pacote do manipulador de autorização externa em um arquivo JAR, você pode implantar o componente no AEM Forms. Somente um manipulador de usuários externos convidados pode ser implantado em um determinado momento.
Você também pode implantar programaticamente um componente.
Para testar o manipulador convidar usuários externos, é possível adicionar usuários externos ao convite usando o console de administração.
Para adicionar usuários externos a convidar usando o console de administração:
EDC_EXTERNAL_REGISTERED
. Salve as alterações.EDC_EXTERNAL_REGISTERED
domínio.O manipulador de convidar usuários externos falhará se o componente for interrompido ou desinstalado.