Vous consultez actuellement l'aide de la version:
AEM Forms Document Security Java SDK fournit des API permettant à un compte d’utilisateur de protéger un document au nom d’un autre utilisateur sans avoir les autorisations nécessaires pour modifier le document. Vous pouvez utiliser l’API dans un processus de flux ou par programmation en tant que service de document. Les nouvelles API sont les suivantes :
- protectDocument Utilisez l’API ProtectDocument pour appliquer une stratégie à un document au nom d’un
autre compte utilisateur. Les autorisations du compte utilisateur utilisé pour appliquer la stratégie restent limitées à la protection du document. Elles ne permettent pas d’ouvrir et d’afficher le document. RMSecureDocumentResult protectDocument(Document inDoc, String documentName, String policySetName, String policyName, RMLocale locale, boolean bExactMatchForNames) - createLicense Utilisez l’API CreateLicense pour créer une licence pour une stratégie au nom d’un autre compte utilisateur. PublishLicenseDTO createLicense(String policyId, String documentName, boolean logSecureDocEvent)
- protectDocumentWithCoverPage Utilisez l’API ProtectDocumentWithCoverPage pour appliquer une stratégie et ajouter une page de garde à un document au nom d’un autre utilisateur. Les autorisations du compte utilisateur utilisé pour appliquer la stratégie restent limitées à la protection du document. Elles ne permettent pas d’ouvrir et d’afficher le document. RMSecureDocumentResult protectDocumentWithCoverPage(Document inDoc, String documentName, String policySetName, String policyName, Document coverDoc, boolean bExactMatchForNames)
Procédez comme suit pour protéger un document au nom d’un autre utilisateur et sans obtenir les autorisations nécessaires pour modifier le document :
-
Créez un rôle. Par exemple, Rôle1. Fournissez l’autorisation Service Invoke au nouveau rôle créé. Créez un utilisateur avec le rôle nouvellement créé. Par exemple, Utilisateur2.Vous pouvez utiliser Utilisateur2 ou un administrateur pour créer une connexion SDK et appeler le service protectDocument.
Maintenant, vous pouvez exécuter l’exemple de code suivant pour protéger un document sans fournir d’autorisations permettant de modifier le document à l’utilisateur protégeant le document :
import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.util.Properties; import com.adobe.edc.common.dto.PublishLicenseDTO; import com.adobe.edc.sdk.SDKException; import com.adobe.idp.Document; import com.adobe.idp.dsc.clientsdk.ServiceClientFactory; import com.adobe.idp.dsc.clientsdk.ServiceClientFactoryProperties; import com.adobe.livecycle.rightsmanagement.RMSecureDocumentResult; import com.adobe.livecycle.rightsmanagement.client.DocumentManager; import com.adobe.livecycle.rightsmanagement.client.RightsManagementClient; import com.adobe.livecycle.rightsmanagement.client.RightsManagementClient2; public class PublishAsProtectAPI { private static final String unprotectedFileName = "C:\\unprotected.pdf"; private static final String protectedFileName = "C:\\protect.pdf"; private static final String coverFileName = "C:\\CoverPage.pdf"; private static final String POLICY_ID = "2EF66008-5E2D-1034-9B06-00000A292C18"; public static void main(String[] args) { try { Properties connectionProps = new Properties(); connectionProps.setProperty(ServiceClientFactoryProperties.DSC_DEFAULT_SOAP_ENDPOINT,"http://localhost:8080"); connectionProps.setProperty(ServiceClientFactoryProperties.DSC_TRANSPORT_PROTOCOL,ServiceClientFactoryProperties.DSC_SOAP_PROTOCOL); connectionProps.setProperty(ServiceClientFactoryProperties.DSC_SERVER_TYPE, "JBoss"); connectionProps.setProperty(ServiceClientFactoryProperties.DSC_CREDENTIAL_USERNAME,"administrator"); connectionProps.setProperty(ServiceClientFactoryProperties.DSC_CREDENTIAL_PASSWORD,"password"); // Create a ServiceClientFactory instance ServiceClientFactory factory = ServiceClientFactory.createInstance(connectionProps); testProtectDocument(factory); testProtectDocumentWithCoverPage(factory); testProtectDocumentJavaPPL(factory); } catch (Exception ex) { ex.printStackTrace(); } } private static void testProtectDocument(ServiceClientFactory factory) throws FileNotFoundException, SDKException { // Create a RightsManagementClient object RightsManagementClient rmClient = new RightsManagementClient(factory); // Create a Document Manager object DocumentManager documentManager = rmClient.getDocumentManager(); //Reference a policy-protected PDF document from which to remove a policy FileInputStream is = new FileInputStream(unprotectedFileName); Document inPDF = new Document(is); long startTime = System.currentTimeMillis(); //Remove a policy from the policy-protected PDF document RMSecureDocumentResult securePDF = documentManager.protectDocument(inPDF, "test", "newPolicySet", "latest", "DefaultDom", "administrator", null, true); System.out.println("Total Time taken for protectDocument = " + (System.currentTimeMillis() - startTime)); //Save the unsecured PDF document File myFile = new File(protectedFileName); securePDF.getProtectedDoc().copyToFile(myFile); } private static void testProtectDocumentWithCoverPage(ServiceClientFactory factory) throws FileNotFoundException, SDKException { // Create a RightsManagementClient object RightsManagementClient rmClient = new RightsManagementClient(factory); // Create a Document Manager object DocumentManager documentManager = rmClient.getDocumentManager(); //Reference a policy-protected PDF document from which to remove a policy FileInputStream is = new FileInputStream(unprotectedFileName); Document inPDF = new Document(is); FileInputStream coverIS = new FileInputStream(coverFileName); Document inCoverPDF = new Document(coverIS); long startTime = System.currentTimeMillis(); //Remove a policy from the policy-protected PDF document RMSecureDocumentResult securePDF = documentManager.protectDocumentWithCoverPage(inPDF, "test", "newPolicySet", "latestPolicy", inCoverPDF, true); System.out.println("Total Time taken for Page0ProtectDocument = " + (System.currentTimeMillis() - startTime)); //Save the unsecured PDF document File myFile = new File(protectedFileName); securePDF.getProtectedDoc().copyToFile(myFile); } private static PublishLicenseDTO testProtectDocumentJavaPPL (ServiceClientFactory factory) throws SDKException, FileNotFoundException, IOException { // Create a RightsManagementClient object RightsManagementClient2 rmClient2 = new RightsManagementClient2(factory); // Create a Document Manager object DocumentManager documentManager = rmClient2.getDocumentManager(); long startTime = System.currentTimeMillis(); PublishLicenseDTO license = documentManager.createLicense(POLICY_ID, "Out.pdf", true); System.out.println("Create License totalTime = " + (System.currentTimeMillis() - startTime)); startTime = System.currentTimeMillis(); // Reference a PDF document to which a policy is applied InputStream inputFileStream = new FileInputStream(unprotectedFileName); // Apply a policy to the PDF document InputStream protectPDF = rmClient2.getRightsManagementEncryptionService().protectDocument(inputFileStream, license); // Save the policy-protected PDF document File myFile = new File(protectedFileName); // write the inputStream to a FileOutputStream FileOutputStream outputStream = new FileOutputStream(myFile); int read = 0; byte[] bytes = new byte[1024]; while ((read = protectPDF.read(bytes)) != -1) { outputStream.write(bytes, 0, read); } System.out.println("protectPDFDocument totalTime = " + (System.currentTimeMillis() - startTime)); outputStream.close(); inputFileStream.close(); System.out.println("Document Protected Successfully"); return license; } }