The following Java code example creates a new Policy named Allow Extended Authentication.This
policy overrides the Authentication Options configured on the server,
and allows only Extended Authentication. The policy set to which
the policy is added is named Global Policy Set.
This policy set exists by default. (See Creating Policies.)
/*
* This Java Quick Start uses the SOAP mode and contains the following JAR files
* in the class path:
* 1. adobe-rightsmanagement-client.jar
* 2. namespace.jar (if LiveCycle ES is deployed on JBoss)
* 3. jaxb-api.jar (if LiveCycle ES is deployed on JBoss)
* 4. jaxb-impl.jar (if LiveCycle ES is deployed on JBoss)
* 5. jaxb-libs.jar (if LiveCycle ES is deployed on JBoss)
* 6. jaxb-xjc.jar (if LiveCycle ES is deployed on JBoss)
* 7. relaxngDatatype.jar (if LiveCycle ES is deployed on JBoss)
* 8. xsdlib.jar (if LiveCycle ES is deployed on JBoss)
* 9. adobe-livecycle-client.jar
* 10. adobe-usermanager-client.jar
* 11. adobe-utilities.jar
* 12. jbossall-client.jar (use a different JAR file if LiveCycle ES is not deployed on JBoss)
* 13. activation.jar (required for SOAP mode)
* 14. axis.jar (required for SOAP mode)
* 15. commons-codec-1.3.jar (required for SOAP mode)
* 16. commons-collections-3.1.jar (required for SOAP mode)
* 17. commons-discovery.jar (required for SOAP mode)
* 18. commons-logging.jar (required for SOAP mode)
* 19. dom3-xml-apis-2.5.0.jar (required for SOAP mode)
* 20. jaxen-1.1-beta-9.jar (required for SOAP mode)
* 21. jaxrpc.jar (required for SOAP mode)
* 22. log4j.jar (required for SOAP mode)
* 23. mail.jar (required for SOAP mode)
* 24. saaj.jar (required for SOAP mode)
* 25. wsdl4j.jar (required for SOAP mode)
* 26. xalan.jar (required for SOAP mode)
* 27. xbean.jar (required for SOAP mode)
* 28. xercesImpl.jar (required for SOAP mode)
*
* These JAR files are located in the following path:
* <install directory>/Adobe/Adobe LiveCycle ES4/sdk/client-libs/common
*
* The adobe-utilities.jar file is located in the following path:
* <install directory>/Adobe/Adobe LiveCycle ES4/sdk/client-libs/jboss
*
* The jbossall-client.jar file is located in the following path:
* <install directory>/Adobe/Adobe LiveCycle ES4/jboss/client
*
* SOAP required JAR files are located in the following path:
* <install directory>/Adobe/Adobe LiveCycle ES4/sdk/client-libs/thirdparty
*
* If you want to invoke a remote LiveCycle server instance and there is a
* firewall between the client application and LiveCycle server, then it is
* recommended that you use the SOAP mode. When using the SOAP mode,
* you have to include these additional JAR files
*
* For information about the SOAP
* mode, see "Setting connection properties" in Programming
* with LiveCycle server
*/
import java.util.*;
import com.adobe.idp.dsc.clientsdk.ServiceClientFactory;
import com.adobe.idp.dsc.clientsdk.ServiceClientFactoryProperties;
import com.adobe.idp.um.api.infomodel.Principal;
import com.adobe.livecycle.rightsmanagement.client.*;
import com.adobe.livecycle.rightsmanagement.client.infomodel.*;
public class CreatePolicySoap {
public static void main(String[] args) {
try
{
//Set connection properties required to invoke LiveCycle using SOAP mode
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, "weblogic");
connectionProps.setProperty(ServiceClientFactoryProperties.DSC_CREDENTIAL_USERNAME, "administrator");
connectionProps.setProperty(ServiceClientFactoryProperties.DSC_CREDENTIAL_PASSWORD, "password");
//Create a ServiceClientFactory object
ServiceClientFactory myFactory = ServiceClientFactory.createInstance(connectionProps);
//Create a RightsManagementClient object
RightsManagementClient rightsClient = new RightsManagementClient(myFactory);
//Create a Policy object that represents the new policy
Policy myPolicy = InfomodelObjectFactory.createPolicy();
//Set policy attributes that are used by the policy
myPolicy.setName("Allow Extended Authentication");
myPolicy.setDescription("This policy overrides the authentication options configured on the server");
myPolicy.setPolicySetName("Global Policy Set");
myPolicy.setOfflineLeasePeriod(30);
myPolicy.setTracked(true);
//Set the Extended Usage Tracking option to True. Ensure that the Tracking is enabled on the Server
if ( myPolicy.isExtendedUsageTrackingEnabled()!= true)
myPolicy.setExtendedUsageTrackingEnabled(true);
//Set the OverrideAuthenticationSettings option to True
if ( myPolicy.isOverrideAuthenticationSettings()!= true)
myPolicy.setOverrideAuthenticationSettings(true);
//Enable ExtendedAuthentication
myPolicy.setThirdPartyAuthenticationAllowed(true);
//Disable UserName Password Authentication
myPolicy.setUsernamePwdAuthenticationAllowed(false);
//Enable Certification Authentication
myPolicy.setCertificateAuthenticationAllowed(false);
//Disable Kerberos Authentication
myPolicy.setKerberosAuthenticationAllowed(false);
//Set the validity period to 30 days
ValidityPeriod validityPeriod = InfomodelObjectFactory.createValidityPeriod();
validityPeriod.setRelativeExpirationDays(30);
myPolicy.setValidityPeriod(validityPeriod);
//Create a PolicyEntry object
PolicyEntry myPolicyEntry = InfomodelObjectFactory.createPolicyEntry();
//Specify the permissions
Permission onlinePermission = InfomodelObjectFactory.createPermission(Permission.OPEN_ONLINE) ;
Permission copyPermission = InfomodelObjectFactory.createPermission(Permission.COPY);
//Add permissions to the policy entry
myPolicyEntry.addPermission(onlinePermission);
myPolicyEntry.addPermission(copyPermission);
//Create principal object
Principal publisherPrincipal = InfomodelObjectFactory.createSpecialPrincipal(InfomodelObjectFactory.PUBLISHER_PRINCIPAL);
//Add a principal object to the policy entry
myPolicyEntry.setPrincipal(publisherPrincipal);
//Attach the policy entry to the policy
myPolicy.addPolicyEntry(myPolicyEntry);
//Register the policy
PolicyManager policyManager = rightsClient.getPolicyManager();
policyManager.registerPolicy(myPolicy,"Global Policy Set");
System.out.println("The policy was successfully created.");
}
catch (Exception ex)
{
ex.printStackTrace();
}
}
}
|
|
|