Show Menu
ARGOMENTI×

Connessione di AEM Forms con Adobe LiveCycle

Il connettore Adobe Experience Manager (AEM) LiveCycle consente di invocare Adobe LiveCycle ES4 Document Services senza soluzione di continuità dalle app Web e dai flussi di lavoro AEM. LiveCycle fornisce un SDK client avanzato che consente alle applicazioni client di avviare i servizi LiveCycle utilizzando le API Java. AEM LiveCycle Connector semplifica l'utilizzo di queste API nell'ambiente OSGi.

Connessione del server AEM ad Adobe LiveCycle

AEM LiveCycle Connector fa parte del pacchetto del componente aggiuntivo AEM Forms. Dopo aver installato il pacchetto del componente aggiuntivo AEM Forms, eseguite i seguenti passaggi per aggiungere i dettagli del server LiveCycle alla console Web di AEM.
  1. In Gestione configurazione console Web AEM, individua il componente di configurazione Adobe LiveCycle Client SDK.
  2. Fate clic sul componente per modificare l’URL, il nome utente e la password del server di configurazione.
  3. Esaminate le impostazioni e fate clic su Salva .
Anche se le proprietà sono auto-esplicative, quelle importanti sono le seguenti:
  • URL server - Specifica l'URL del server LiveCycle. Se desiderate che LiveCycle e AEM comunichino mediante https, avviate AEM con la seguente JVM
    argument
     -Djavax.net.ssl.trustStore=<<em>path to LC keystore</em>>
    
    
    opzione.
  • Nome utente - Specifica il nome utente dell'account utilizzato per stabilire la comunicazione tra AEM e LiveCycle. L'account è un account utente di LiveCycle che dispone delle autorizzazioni necessarie per avviare Document Services.
  • Password - Specifica la password.
  • Nome servizio - Specifica i servizi avviati utilizzando le credenziali utente fornite nei campi Nome utente e Password. Per impostazione predefinita, non vengono passate credenziali all'avvio dei servizi LiveCycle.

Avvio di Document Services

Le applicazioni client possono avviare i servizi LiveCycle a livello di programmazione utilizzando un'API Java, servizi Web, eventi remoti e REST. Per i client Java, l'applicazione può utilizzare LiveCycle SDK. L'SDK di LiveCycle fornisce un'API Java per avviare questi servizi in remoto. Ad esempio, per convertire un documento di Microsoft Word in PDF, il client avvia GeneratePDFService. Il flusso di chiamata è costituito dai seguenti passaggi:
  1. Creare un'istanza ServiceClientFactory.
  2. Ogni servizio fornisce una classe client. Per avviare un servizio, create un'istanza client del servizio.
  3. Avviare il servizio ed elaborare il risultato.
AEM LiveCycle Connector semplifica il flusso esponendo queste istanze client come servizi OSGi a cui è possibile accedere utilizzando i mezzi OSGi standard. Il connettore LiveCycle offre le seguenti funzionalità:
  • Istanze client come servizio OSGi: I client inclusi in pacchetti OSGI sono elencati nella sezione Elenco di Document Services. Ogni Jar client registra l’istanza client come servizio OSGi con il Registro di servizio OSGi.
  • Propagazione credenziali utente: I dettagli di connessione necessari per connettersi al server LiveCycle sono gestiti in una posizione centrale.
  • ServiceClientFactory: Per avviare i processi, l'applicazione client può accedere all'istanza ServiceClientFactory.

Avvio tramite i riferimenti di servizio dal Registro di sistema OSGi

Per avviare un servizio esposto dall’interno di AEM, effettuate le seguenti operazioni:
  1. Determinare le dipendenze del cielo. Aggiungi la dipendenza al Jar client richiesto nel file pom.xml maven. Come minimo, aggiungete una dipendenza agli jar 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>
    
    
    Per avviare un servizio, aggiungete la corrispondente dipendenza Maven per il servizio. Per l'elenco delle dipendenze, vedere Elenco servizi documenti. Ad esempio, per il servizio Genera PDF aggiungere la seguente dipendenza:
    <dependency>
      <groupId>com.adobe.livecycle</groupId>
      <artifactId>adobe-generatepdf-client</artifactId>
      <version>11.0.0</version>
    </dependency>
    
    
  2. Ottenete il riferimento del servizio. Ottenere un handle per l'istanza del servizio. Se si scrive una classe Java, è possibile utilizzare le annotazioni dei servizi dichiarativi.
    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
                );
    
    
    Lo snippet di codice riportato sopra avvia l'API createPDF di GeneratePdfServiceClient per convertire un documento in PDF. È possibile eseguire chiamate simili in una JSP utilizzando il seguente codice. La differenza principale sta nel seguente codice che utilizza Sling ScriptHelper per accedere a 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
                );
    
    

Avvio tramite ServiceClientFactory

In alcuni casi, la classe ServiceClientFactory è obbligatoria. Ad esempio, per chiamare i processi è necessario ServiceClientFactory.
import com.adobe.livecycle.dsc.clientsdk.ServiceClientFactoryProvider;
import com.adobe.idp.dsc.clientsdk.ServiceClientFactory;

@Reference
ServiceClientFactoryProvider scfProvider;

...
ServiceClientFactory scf = scfProvider.getDefaultServiceClientFactory();
...

Supporto RunAs

In LiveCycle, quasi tutti i Document Service richiedono l'autenticazione. Potete utilizzare una delle seguenti opzioni per avviare questi servizi senza fornire credenziali esplicite nel codice:

Configurazione whitelist

La configurazione dell'SDK del client LiveCycle contiene un'impostazione relativa ai nomi dei servizi. Questa configurazione è un elenco di servizi per i quali la logica di chiamata utilizza le credenziali dell'amministratore. Ad esempio, se si aggiungono servizi DirectoryManager (parte dell'API di gestione utente) a questo elenco, qualsiasi codice client può utilizzare direttamente il servizio e il livello di chiamata trasmette automaticamente le credenziali configurate come parte della richiesta inviata al server LiveCycle

RunAsManager

Come parte dell'integrazione, viene fornito un nuovo servizio RunAsManager. Consente di controllare a livello di programmazione le credenziali da utilizzare per effettuare una chiamata al server 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 si desidera trasmettere credenziali diverse, è possibile utilizzare il metodo overload che accetta un'istanza PasswordCredential.
PasswordCredential credential = new PasswordCredential("administrator","password");
List<Component> components = runAsManager.doPrivileged(new PrivilegedAction<List<Component>>() {
    public List<Component> run() {
        return componentRegistry.getComponents();
    }
},credential);

InvocationRequest, proprietà

Se si chiama un processo o si utilizza direttamente la classe ServiceClientFactory e si crea una richiesta di chiamata, è possibile specificare una proprietà per indicare che il livello di chiamata deve utilizzare le credenziali configurate.
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);

Elenco di Document Services

Bundle API Adobe LiveCycle Client SDK

Sono disponibili i seguenti servizi:
  • 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

Dipendenze Paradiso

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

Adobe LiveCycle Client SDK Bundle

Sono disponibili i seguenti servizi:
  • com.adobe.livecycle.dsc.clientsdk.security.RunAsManager
  • com.adobe.livecycle.dsc.clientsdk.ServiceClientFactoryProvider

Dipendenze Paradiso

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

Pacchetto Adobe LiveCycle TaskManager Client

Sono disponibili i seguenti servizi:
  • 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

Dipendenze Paradiso

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

Adobe LiveCycle Workflow Client Bundle

È disponibile il seguente servizio:
  • com.adobe.idp.workflow.client.WorkflowServiceClient

Dipendenze Paradiso

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

Pacchetto client Adobe LiveCycle PDF Generator

È disponibile il seguente servizio:
  • com.adobe.livecycle.generatepdf.client.GeneratePdfServiceClient

Dipendenze Paradiso

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

Pacchetto client Adobe LiveCycle Application Manager

Sono disponibili i seguenti servizi:
  • com.adobe.idp.applicationmanager.service.ApplicationManager
  • com.adobe.livecycle.applicationmanager.client.ApplicationManager
  • com.adobe.livecycle.design.service.DesigntimeService

Dipendenze Paradiso

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

Pacchetto client Adobe LiveCycle Assembler

È disponibile il seguente servizio:
  • com.adobe.livecycle.assembler.client.AssemblerServiceClient

Dipendenze Paradiso

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

Pacchetto Adobe LiveCycle Form Data Integration Client

È disponibile il seguente servizio:
  • com.adobe.livecycle.formdataintegration.client.FormDataIntegrationClient

Dipendenze Paradiso

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

Pacchetto Adobe LiveCycle Forms Client

È disponibile il seguente servizio:
  • com.adobe.livecycle.formsservice.client.FormsServiceClient

Dipendenze Paradiso

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

Pacchetto Adobe LiveCycle Output Client

È disponibile il seguente servizio:
  • com.adobe.livecycle.output.client.OutputClient

Dipendenze Paradiso

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

Pacchetto client Adobe LiveCycle Reader Extensions

È disponibile il seguente servizio:
  • com.adobe.livecycle.readerextensions.client.ReaderExtensionsServiceClient

Dipendenze Paradiso

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

Pacchetto Adobe LiveCycle Rights Manager Client

Sono disponibili i seguenti servizi:
  • 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

Dipendenze Paradiso

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

Pacchetto Adobe LiveCycle Signatures Client

È disponibile il seguente servizio:
  • com.adobe.livecycle.signatures.client.SignatureServiceClientInterface

Dipendenze Paradiso

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

Pacchetto client Adobe LiveCycle Truststore

Sono disponibili i seguenti servizi:
  • com.adobe.truststore.dsc.TrustConfigurationService
  • com.adobe.truststore.dsc.CRLService
  • com.adobe.truststore.dsc.CredentialService
  • com.adobe.truststore.dsc.CertificateService

Dipendenze Paradiso

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

Pacchetto client di repository di Adobe LiveCycle

Sono disponibili i seguenti servizi:
  • com.adobe.repository.bindings.ResourceRepository
  • com.adobe.repository.bindings.ResourceSynchronizer

Dipendenze Paradiso

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