Conectando o AEM Forms ao LiveCycle Adobe

O conector do LiveCycle Adobe Experience Manager (AEM) permite a invocação contínua dos Serviços de Documento ES4 do LiveCycle Adobe em aplicativos e workflows AEM Web. O LiveCycle fornece um SDK de cliente avançado, que permite que os aplicativos clientes acessem os serviços de LiveCycle do start usando APIs Java. AEM Conector de LiveCycle simplifica o uso dessas APIs no ambiente OSGi.

Conectando AEM servidor ao LiveCycle Adobe

AEM Conector de LiveCycle faz parte do pacote suplementar AEM Forms. Depois de instalar o pacote de complementos AEM Forms, execute as seguintes etapas para adicionar detalhes do servidor do LiveCycle AEM Web Console.

  1. AEM gerenciador de configuração do console da Web, localize o componente de configuração do SDK do cliente do LiveCycle.
  2. Clique no componente para editar o URL do servidor de configuração, o nome de usuário e a senha.
  3. Revise as configurações e clique em Salvar.

Embora as propriedades sejam autoexplicativas, as importantes são as seguintes:

  • URL do servidor - Especifica o URL para o servidor do LiveCycle. Se você quiser que o LiveCycle e o AEM se comuniquem por https, o start AEM com a seguinte JVM

    argument 
     -Djavax.net.ssl.trustStore=<<em>path to LC keystore</em>>
    

    opção.

  • Nome de usuário - Especifica o nome de usuário da conta que é usada para estabelecer a comunicação entre AEM e LiveCycle. A conta é uma conta de usuário do LiveCycle que tem permissões para os Serviços do Documento do start.

  • Senha - Especifica a senha.

  • Nome do serviço - Especifica os serviços que começam a usar as credenciais do usuário fornecidas nos campos Nome de usuário e Senha. Por padrão, nenhuma credencial é transmitida ao iniciar os serviços de LiveCycle.

Iniciando serviços de documento

Os aplicativos clientes podem programaticamente start serviços de LiveCycle usando uma API Java, serviços da Web, comunicação remota e REST. Para clientes Java, o aplicativo pode usar o SDK do LiveCycle. O SDK do LiveCycle fornece uma API Java para iniciar esses serviços remotamente. Por exemplo, para converter um Documento do Microsoft Word em PDF, os start clientes geram PDFService. O fluxo de invocação consiste nas seguintes etapas:

  1. Crie uma instância ServiceClientFactory.
  2. Cada serviço fornece uma classe de cliente. Para start de um serviço, crie uma instância do cliente do serviço.
  3. Start do serviço e processamento do resultado.

AEM Conector de LiveCycle simplifica o fluxo ao expor essas instâncias de cliente como serviços OSGi que podem ser acessados usando meios OSGi padrão. O conector do LiveCycle fornece os seguintes recursos:

  • Instâncias do cliente como OSGi Service: Os clientes empacotados como pacotes OSGI estão listados na seção lista de serviços do Documento. Cada jar de cliente registra a instância do cliente como serviço OSGi no Registro de serviço OSGi.
  • Propagação de credenciais do usuário: Os detalhes de conexão necessários para conectar-se ao servidor do LiveCycle são gerenciados em um local central.
  • Serviço ServiceClientFactory: Para start dos processos, o aplicativo cliente pode acessar a instância ServiceClientFactory.

Iniciando por referências de serviço do OSGi Service Registry

Para start de um serviço exposto de dentro do AEM, execute as seguintes etapas:

  1. Determine as dependências de maven. Adicione a dependência ao jar de cliente necessário no arquivo maven pom.xml. No mínimo, adicione a dependência aos jars adobe-livecycle-client e adobe-usermanager-client.

    <dependency>
      <groupId>com.adobe.livecycle</groupId>
      <artifactId>adobe-livecycle-client</artifactId>
      <version>11.0.0</version>
    </dependency>
    <dependency>
      <groupId>com.adobe.livecycle</groupId>
      <artifactId>adobe-usermanager-client</artifactId>
      <version>11.0.0</version>
    </dependency>
    <dependency>
      <groupId>com.adobe.livecycle</groupId>
      <artifactId>adobe-cq-integration-api</artifactId>
      <version>11.0.0</version>
    </dependency>
    

    Para start de um serviço, adicione a dependência Maven correspondente para o serviço. Para obter informações sobre a lista de dependências, consulte Lista de serviço do Documento. Por exemplo, para o serviço Gerar PDF, adicione a seguinte dependência:

    <dependency>
      <groupId>com.adobe.livecycle</groupId>
      <artifactId>adobe-generatepdf-client</artifactId>
      <version>11.0.0</version>
    </dependency>
    
  2. Obtenha a referência de serviço. Obtenha um identificador para a instância de serviço. Se você estiver escrevendo uma classe Java, poderá usar as anotações do Declarative Services.

    import com.adobe.livecycle.generatepdf.client.GeneratePdfServiceClient;
    import com.adobe.livecycle.generatepdf.client.CreatePDFResult;
    import com.adobe.idp.Document;
    
    @Reference
    GeneratePdfServiceClient generatePDF;
    ...
    
    Resource r = resourceResolver.getResource("/path/tp/docx");
    Document sourceDoc = new Document(r.adaptTo(InputStream.class));
    CreatePDFResult result = generatePDF.createPDF2(
                        sourceDoc,
                        extension, //inputFileExtension
                        null, //fileTypeSettings
                        null, //pdfSettings
                        null, //securitySettings
                        settingsDoc, //settingsDoc
                        null //xmpDoc
                );
    

    O trecho de código acima start a API createPDF de GeneratePdfServiceClient para converter um documento em PDF. Você pode executar invocação semelhante em um JSP usando o seguinte código. A principal diferença é que o código a seguir usa o Sling ScriptHelper para acessar o GeneratePdfServiceClient.

    <%@ page import="com.adobe.livecycle.generatepdf.client.GeneratePdfServiceClient" %>
    <%@ page import="com.adobe.livecycle.generatepdf.client.CreatePDFResult" %>
    <%@ page import="com.adobe.idp.Document" %>
    
    GeneratePdfServiceClient generatePDF = sling.getService(GeneratePdfServiceClient.class);
    Document sourceDoc = ...
    CreatePDFResult result = generatePDF.createPDF2(
                        sourceDoc,
                        extension, //inputFileExtension
                        null, //fileTypeSettings
                        null, //pdfSettings
                        null, //securitySettings
                        settingsDoc, //settingsDoc
                        null //xmpDoc
                );
    

Iniciando por ServiceClientFactory

A classe ServiceClientFactory é necessária em alguns casos. Por exemplo, você precisa que ServiceClientFactory chame processos.

import com.adobe.livecycle.dsc.clientsdk.ServiceClientFactoryProvider;
import com.adobe.idp.dsc.clientsdk.ServiceClientFactory;
 
@Reference
ServiceClientFactoryProvider scfProvider;
 
...
ServiceClientFactory scf = scfProvider.getDefaultServiceClientFactory();
...

Suporte a RunAs

Quase todos os serviços de Documento no LiveCycle exigem autenticação. Você pode usar qualquer uma das seguintes opções para start desses serviços sem fornecer credenciais explícitas no código:

Configuração da lista de permissões

A configuração do SDK do cliente do LiveCycle contém uma configuração sobre nomes de serviço. Essa configuração é uma lista de serviços para a qual a lógica de invocação usa credencial de administrador na caixa. Por exemplo, se você adicionar serviços do DiretoryManager (parte da API de Gerenciamento de Usuário) a essa lista, qualquer código do cliente poderá usar diretamente o serviço e a camada de invocação automaticamente transmitirá as credenciais configuradas como parte da solicitação enviada ao servidor do LiveCycle

RunAsManager

Como parte da integração, um novo serviço RunAsManager é fornecido. Permite controlar programaticamente as credenciais a serem usadas ao fazer uma chamada para o servidor do LiveCycle.

import com.adobe.livecycle.dsc.clientsdk.security.PasswordCredential;
import com.adobe.livecycle.dsc.clientsdk.security.PrivilegedAction;
import com.adobe.livecycle.dsc.clientsdk.security.RunAsManager;
import com.adobe.idp.dsc.registry.component.ComponentRegistry;
  
@Reference
private RunAsManager runAsManager;
  
List<Component> components = runAsManager.doPrivileged(new PrivilegedAction<List<Component>>() {
            public List<Component> run() {
                return componentRegistry.getComponents();
            }
        });
assertNotNull(components);

Se quiser passar credenciais diferentes, você pode usar o método sobrecarregado que utiliza uma instância PasswordCredential.

PasswordCredential credential = new PasswordCredential("administrator","password");
List<Component> components = runAsManager.doPrivileged(new PrivilegedAction<List<Component>>() {
    public List<Component> run() {
        return componentRegistry.getComponents();
    }
},credential);

Propriedade InvocationRequest

Se você chamar um processo ou usar diretamente a classe ServiceClientFactory e criar um InvocationRequest, poderá especificar uma propriedade para indicar que a camada de invocação deve usar as credenciais configuradas.

import com.adobe.idp.dsc.InvocationResponse
import com.adobe.idp.dsc.InvocationRequest
import com.adobe.livecycle.dsc.clientsdk.ServiceClientFactoryProvider
import com.adobe.idp.dsc.clientsdk.ServiceClientFactory
import com.adobe.livecycle.dsc.clientsdk.InvocationProperties
   
ServiceClientFactoryProvider scfp = sling.getService(ServiceClientFactoryProvider.class)
ServiceClientFactory serviceClientFactory = scfp.getDefaultServiceClientFactory()
InvocationRequest ir = serviceClientFactory.createInvocationRequest("sample/LetterSubmissionProcess", "invoke", new HashMap(), true);
  
//Here we are invoking the request with system user
ir.setProperty(InvocationProperties.INVOKER_TYPE,InvocationProperties.INVOKER_TYPE_SYSTEM)
   
InvocationResponse response = serviceClientFactory.getServiceClient().invoke(ir);

Lista de serviços do Documento

Pacote da API SDK do cliente do LiveCycle Adobe

Os seguintes serviços estão disponíveis:

  • com.adobe.idp.um.api.AuthenticationManager
  • com.adobe.idp.um.api.DirectoryManager
  • com.adobe.idp.um.api.AuthorizationManager
  • com.adobe.idp.dsc.registry.service.ServiceRegistry
  • com.adobe.idp.dsc.registry.component.ComponentRegistry

Maven dependencies

<dependency>
  <groupId>com.adobe.livecycle</groupId>
  <artifactId>adobe-livecycle-client</artifactId>
  <version>11.0.0</version>
</dependency>
<dependency>
  <groupId>com.adobe.livecycle</groupId>
  <artifactId>adobe-usermanager-client</artifactId>
  <version>11.0.0</version>
</dependency>

Pacote SDK do cliente do LiveCycle Adobe

Os seguintes serviços estão disponíveis:

  • com.adobe.livecycle.dsc.clientsdk.security.RunAsManager
  • com.adobe.livecycle.dsc.clientsdk.ServiceClientFactoryProvider

Maven dependencies

<dependency>
  <groupId>com.adobe.livecycle</groupId>
  <artifactId>adobe-livecycle-cq-integration-api</artifactId>
  <version>1.1.10</version>
</dependency>

Pacote de cliente do TaskManager do LiveCycle

Os seguintes serviços estão disponíveis:

  • com.adobe.idp.taskmanager.dsc.client.task.TaskManager
  • com.adobe.idp.taskmanager.dsc.client.TaskManagerQueryService
  • com.adobe.idp.taskmanager.dsc.client.queuemanager.QueueManager
  • com.adobe.idp.taskmanager.dsc.client.emailsettings.EmailSettingService
  • com.adobe.idp.taskmanager.dsc.client.endpoint.TaskManagerEndpointClient
  • com.adobe.idp.taskmanager.dsc.client.userlist.UserlistService

Maven dependencies

<dependency>
  <groupId>com.adobe.livecycle</groupId>
  <artifactId>adobe-taskmanager-client</artifactId>
  <version>11.0.0</version>
</dependency>

Pacote do cliente do LiveCycle Workflow Adobe

O seguinte serviço está disponível:

  • com.adobe.idp.workflow.client.WorkflowServiceClient

Maven dependencies

<dependency>
  <groupId>com.adobe.livecycle</groupId>
  <artifactId>adobe-workflow-client-sdk</artifactId>
  <version>11.0.0</version>
</dependency>

Pacote do Adobe LiveCycle PDF Generator Client

O seguinte serviço está disponível:

  • com.adobe.livecycle.generatepdf.client.GeneratePdfServiceClient

Maven dependencies

<dependency>
  <groupId>com.adobe.livecycle</groupId>
  <artifactId>adobe-generatepdf-client</artifactId>
  <version>11.0.0</version>
</dependency>

Pacote de cliente do Application Manager de LiveCycles de Adobe

Os seguintes serviços estão disponíveis:

  • com.adobe.idp.applicationmanager.service.ApplicationManager
  • com.adobe.livecycle.applicationmanager.client.ApplicationManager
  • com.adobe.livecycle.design.service.DesigntimeService

Maven dependencies

<dependency>
  <groupId>com.adobe.livecycle</groupId>
  <artifactId>adobe-applicationmanager-client-sdk</artifactId>
  <version>11.0.0</version>
</dependency>

Pacote do Cliente do Assembler do LiveCycle

O seguinte serviço está disponível:

  • com.adobe.livecycle.assembler.client.AssemblerServiceClient

Maven dependencies

<dependency>
  <groupId>com.adobe.livecycle</groupId>
  <artifactId>adobe-assembler-client</artifactId>
  <version>11.0.0</version>
</dependency>

Pacote de cliente de integração de dados de formulário de LiveCycle

O seguinte serviço está disponível:

  • com.adobe.livecycle.formdataintegration.client.FormDataIntegrationClient

Maven dependencies

<dependency>
  <groupId>com.adobe.livecycle</groupId>
  <artifactId>adobe-formdataintegration-client</artifactId>
  <version>11.0.0</version>
</dependency>

Pacote do Adobe LiveCycle Forms Client

O seguinte serviço está disponível:

  • com.adobe.livecycle.formsservice.client.FormsServiceClient

Maven dependencies

<dependency>
  <groupId>com.adobe.livecycle</groupId>
  <artifactId>adobe-forms-client</artifactId>
  <version>11.0.0</version>
</dependency>

Pacote do Adobe LiveCycle Output Client

O seguinte serviço está disponível:

  • com.adobe.livecycle.output.client.OutputClient

Maven dependencies

<dependency>
  <groupId>com.adobe.livecycle</groupId>
  <artifactId>adobe-output-client</artifactId>
  <version>11.0.0</version>
</dependency>

Pacote do Adobe LiveCycle Reader Extensions Client

O seguinte serviço está disponível:

  • com.adobe.livecycle.readerextensions.client.ReaderExtensionsServiceClient

Maven dependencies

<dependency>
  <groupId>com.adobe.livecycle</groupId>
  <artifactId>adobe-reader-extensions-client</artifactId>
  <version>11.0.0</version>
</dependency>

Pacote do cliente do Adobe LiveCycle Rights Manager

Os seguintes serviços estão disponíveis:

  • com.adobe.livecycle.rightsmanagement.client.DocumentManager
  • com.adobe.livecycle.rightsmanagement.client.EventManager
  • com.adobe.livecycle.rightsmanagement.client.ExternalUserManager
  • com.adobe.livecycle.rightsmanagement.client.LicenseManager
  • com.adobe.livecycle.rightsmanagement.client.WatermarkManager
  • com.adobe.livecycle.rightsmanagement.client.PolicyManager
  • com.adobe.livecycle.rightsmanagement.client.AbstractPolicyManager

Maven dependencies

<dependency>
  <groupId>com.adobe.livecycle</groupId>
  <artifactId>adobe-rightsmanagement-client</artifactId>
  <version>11.0.0</version>
</dependency>

Pacote do cliente de assinaturas do LiveCycle Adobe

O seguinte serviço está disponível:

  • com.adobe.livecycle.signatures.client.SignatureServiceClientInterface

Maven dependencies

<dependency>
  <groupId>com.adobe.livecycle</groupId>
  <artifactId>adobe-signatures-client</artifactId>
  <version>11.0.0</version>
</dependency>

Pacote do Cliente Truststore do LiveCycle Adobe

Os seguintes serviços estão disponíveis:

  • com.adobe.truststore.dsc.TrustConfigurationService
  • com.adobe.truststore.dsc.CRLService
  • com.adobe.truststore.dsc.CredentialService
  • com.adobe.truststore.dsc.CertificateService

Maven dependencies

<dependency>
  <groupId>com.adobe.livecycle</groupId>
  <artifactId>adobe-truststore-client</artifactId>
  <version>11.0.0</version>
</dependency>

Pacote do Cliente do Repositório de LiveCycles Adobe

Os seguintes serviços estão disponíveis:

  • com.adobe.repository.bindings.ResourceRepository
  • com.adobe.repository.bindings.ResourceSynchronizer

Maven dependencies

<dependency>
  <groupId>com.adobe.livecycle</groupId>
  <artifactId>adobe-repository-client</artifactId>
  <version>11.0.0</version>
</dependency>

Nesta página