用户管理器Java API快速入门(SOAP) user-manager-java-api-quick-start-soap
Java API快速入门(SOAP)可用于用户管理器API。
快速入门(SOAP模式):使用Java API管理角色和权限
快速入门(SOAP模式):使用Java API以编程方式同步用户
快速入门(SOAP模式):使用Java API以编程方式管理首选项节点
AEM Forms操作可以使用AEM Forms强类型API执行,并且连接模式应设置为SOAP。
NOTE
如果使用Unix等其他操作系统,请将Windows特定的路径替换为适用操作系统支持的路径,则“使用AEM进行编程”表单中的快速入门将基于文档。 同样,如果您使用的是其他J2EE应用程序服务器,请确保指定有效的连接属性。 请参阅设置连接属性。
快速入门(SOAP模式):使用Java API添加用户 quick-start-soap-mode-adding-users-using-the-java-api
以下代码示例将一个名为Wendy Blue的用户添加到AEM Forms。 (请参阅添加用户。)
?/*
? * This Java Quick Start uses the SOAP mode and contains the following JAR files
? * in the class path:
? * 1. adobe-livecycle-client.jar
? * 2. adobe-usermanager-client.jar
* 3. activation.jar (required for SOAP mode)
* 4. axis.jar (required for SOAP mode)
* 5. commons-codec-1.3.jar (required for SOAP mode)
* 6. commons-collections-3.2.jar (required for SOAP mode)
* 7. commons-discovery.jar (required for SOAP mode)
* 8. commons-logging.jar (required for SOAP mode)
* 9. dom3-xml-apis-2.5.0.jar (required for SOAP mode)
* 10. jaxen-1.1-beta-9.jar (required for SOAP mode)
* 11. jaxrpc.jar (required for SOAP mode)
* 12. log4j.jar (required for SOAP mode)
* 13. mail.jar (required for SOAP mode)
* 14. saaj.jar (required for SOAP mode)
* 15. wsdl4j.jar (required for SOAP mode)
* 16. xalan.jar (required for SOAP mode)
* 17. xbean.jar (required for SOAP mode)
* 18. xercesImpl.jar (required for SOAP mode)
? *
? * The JBoss files must be kept in the jboss\client folder. You can copy the client folder to
? * your local development environment and then include the 3 JBoss JAR files in your class path
? *
? * These JAR files are in the following path:
? * <install directory>/sdk/client-libs/common
? *
? *
? * <install directory>/jboss/bin/client
? *
? * If you want to invoke a remote Forms Server instance and there is a
? * firewall between the client application and the server, then it is
? * recommended that you use the SOAP mode. When using the SOAP mode,
? * you have to include additional JAR files in the following
? * path
? * <install directory>/sdk/client-libs/thirdparty
? *
? * For information about the SOAP
? * mode and the additional JAR files that need to be included,
? * see "Setting connection properties" in Programming
? * with AEM Forms
? *
? * For complete details about the location of the AEM Forms JAR files,
? * see "Including AEM Forms Java library files" in Programming
? * with AEM Forms
? */
?import java.util.*;
?import com.adobe.idp.dsc.clientsdk.ServiceClientFactory;
?import com.adobe.idp.dsc.clientsdk.ServiceClientFactoryProperties;
?import com.adobe.livecycle.usermanager.client.DirectoryManagerServiceClient;
?import com.adobe.idp.um.api.infomodel.impl.*;
?import com.adobe.idp.um.api.infomodel.*;
?public class AddUser {
? public static void main(String[] args) {
? try {
? //Set connection properties required to invoke AEM Forms
? Properties connectionProps = new Properties();
? connectionProps.setProperty(ServiceClientFactoryProperties.DSC_DEFAULT_SOAP_ENDPOINT, "https://'[server]:[port]'");
? 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 object
? ServiceClientFactory myFactory = ServiceClientFactory.createInstance(connectionProps);
? //Create an DirectoryManagerServiceClient object
? DirectoryManagerServiceClient dmClient = new DirectoryManagerServiceClient(myFactory);
? //Create a User object and populate its attributes
? UserImpl u = new UserImpl();
? u.setDomainName("DefaultDom");
? u.setUserid("wblue");
? u.setCanonicalName("wblue");
? u.setPrincipalType("USER");
? u.setGivenName("Wendy");
? u.setFamilyName("Blue");
? u.setLocale(Locale.CANADA);
? u.setTimezone(TimeZone.getDefault());
? u.setDisabled(false);
? //Add the User to the system using the DirectoryManagerServiceClient
? dmClient.createLocalUser(u,"password");
? //Ensure that the user was added
? //Create a PrincipalSearchFilter to find the user by ID
? PrincipalSearchFilter psf = new PrincipalSearchFilter();
? psf.setUserId("wblue");
? List<User> principalList = dmClient.findPrincipals(psf);
? Iterator<User> pit = principalList.iterator();
? if(pit.hasNext()){
? User theUser = pit.next();
? System.out.println("User ID: " + theUser.getUserid());
? System.out.println("User name: " + theUser.getGivenName() +" "+ theUser.getFamilyName());
? System.out.println("User Domain: " + theUser.getDomainName());
? System.out.println("is user disabled?: " + theUser.isDisabled());
? }
? }catch (Exception e) {
? e.printStackTrace();
? }
?;
? }
?}
快速入门(SOAP模式):使用Java API删除用户 quick-start-soap-mode-deleting-users-using-the-java-api
以下代码示例从AEM Forms中删除名为Wendy Blue的用户。 (请参阅删除用户。)
?/*
? * This Java Quick Start uses the SOAP mode and contains the following JAR files
? * in the class path:
? * 1. adobe-livecycle-client.jar
? * 2. adobe-usermanager-client.jar
* 3. activation.jar (required for SOAP mode)
* 4. axis.jar (required for SOAP mode)
* 5. commons-codec-1.3.jar (required for SOAP mode)
* 6. commons-collections-3.2.jar (required for SOAP mode)
* 7. commons-discovery.jar (required for SOAP mode)
* 8. commons-logging.jar (required for SOAP mode)
* 9. dom3-xml-apis-2.5.0.jar (required for SOAP mode)
* 10. jaxen-1.1-beta-9.jar (required for SOAP mode)
* 11. jaxrpc.jar (required for SOAP mode)
* 12. log4j.jar (required for SOAP mode)
* 13. mail.jar (required for SOAP mode)
* 14. saaj.jar (required for SOAP mode)
* 15. wsdl4j.jar (required for SOAP mode)
* 16. xalan.jar (required for SOAP mode)
* 17. xbean.jar (required for SOAP mode)
* 18. xercesImpl.jar (required for SOAP mode)
? *
? * The JBoss files must be kept in the jboss\client folder. You can copy the client folder to
? * your local development environment and then include the 3 JBoss JAR files in your class path
? *
? * These JAR files are in the following path:
? * <install directory>/sdk/client-libs/common
? *
? *
? * <install directory>/jboss/bin/client
? *
? * If you want to invoke a remote Forms Server instance and there is a
? * firewall between the client application and the server, then it is
? * recommended that you use the SOAP mode. When using the SOAP mode,
? * you have to include additional JAR files in the following
? * path
? * <install directory>/sdk/client-libs/thirdparty
? *
? * For information about the SOAP
? * mode and the additional JAR files that need to be included,
? * see "Setting connection properties" in Programming
? * with AEM Forms
? *
? * For complete details about the location of the AEM Forms JAR files,
? * see "Including AEM Forms Java library files" in Programming
? * with AEM Forms
? */
?import java.util.*;
?import com.adobe.idp.dsc.clientsdk.ServiceClientFactory;
?import com.adobe.idp.dsc.clientsdk.ServiceClientFactoryProperties;
?import com.adobe.idp.um.api.infomodel.PrincipalSearchFilter;
?import com.adobe.idp.um.api.infomodel.User;
?import com.adobe.livecycle.usermanager.client.DirectoryManagerServiceClient;
?public class DeleteUser {
? public static void main(String[] args) {
? try {
? //Set connection properties required to invoke AEM Forms
? Properties connectionProps = new Properties();
? connectionProps.setProperty(ServiceClientFactoryProperties.DSC_DEFAULT_SOAP_ENDPOINT, "https://'[server]:[port]'");
? connectionProps.setProperty(ServiceClientFactoryProperties.DSC_TRANSPORT_PROTOCOL, ServiceClientFactoryProperties.DSC_SOAP_PROTOCOL);
? connectionProps.setProperty(ServiceClientFactoryProperties.DSC_SERVER_TYPE, ServiceClientFactoryProperties.DSC_JBOSS_SERVER_TYPE);
? 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 DirectoryManagerServiceClient object
? DirectoryManagerServiceClient dm = new DirectoryManagerServiceClient(myFactory);
? //Find the target user by the user ID value
? PrincipalSearchFilter psf = new PrincipalSearchFilter();
? psf.setUserId("wblue");
? List<User> principalList = dm.findPrincipals(psf);
? Iterator<User> pit = principalList.iterator();
? //Delete the user
? while(pit.hasNext()){
? User targetUser = pit.next();
? dm.deleteLocalUser(targetUser.getOid());
? }
? } catch (Exception e) {
? e.printStackTrace();
? }
? }
?}
快速入门(SOAP模式):使用Java API管理用户和组 quick-start-soap-mode-managing-users-and-groups-using-the-java-api
以下代码示例查找本地用户以及该用户所属的本地组。 (请参阅管理用户和组。)
?/*
? * This Java Quick Start uses the SOAP mode and contains the following JAR files
? * in the class path:
? * 1. adobe-livecycle-client.jar
? * 2. adobe-usermanager-client.jar
* 3. activation.jar (required for SOAP mode)
* 4. axis.jar (required for SOAP mode)
* 5. commons-codec-1.3.jar (required for SOAP mode)
* 6. commons-collections-3.2.jar (required for SOAP mode)
* 7. commons-discovery.jar (required for SOAP mode)
* 8. commons-logging.jar (required for SOAP mode)
* 9. dom3-xml-apis-2.5.0.jar (required for SOAP mode)
* 10. jaxen-1.1-beta-9.jar (required for SOAP mode)
* 11. jaxrpc.jar (required for SOAP mode)
* 12. log4j.jar (required for SOAP mode)
* 13. mail.jar (required for SOAP mode)
* 14. saaj.jar (required for SOAP mode)
* 15. wsdl4j.jar (required for SOAP mode)
* 16. xalan.jar (required for SOAP mode)
* 17. xbean.jar (required for SOAP mode)
* 18. xercesImpl.jar (required for SOAP mode)
? *
? * The JBoss files must be kept in the jboss\client folder. You can copy the client folder to
? * your local development environment and then include the 3 JBoss JAR files in your class path
? *
? * These JAR files are in the following path:
? * <install directory>/sdk/client-libs/common
? *
? *
? * <install directory>/jboss/bin/client
? *
? * If you want to invoke a remote Forms Server instance and there is a
? * firewall between the client application and the server, then it is
? * recommended that you use the SOAP mode. When using the SOAP mode,
? * you have to include additional JAR files in the following
? * path
? * <install directory>/sdk/client-libs/thirdparty
? *
? * For information about the SOAP
? * mode and the additional JAR files that need to be included,
? * see "Setting connection properties" in Programming
? * with AEM Forms
? *
? * For complete details about the location of the AEM FOrms JAR files,
? * see "Including AEM Forms Java library files" in Programming
? * with AEM Forms
? */
?import java.util.*;
?import com.adobe.idp.um.api.infomodel.*;
?import com.adobe.livecycle.usermanager.client.DirectoryManagerServiceClient;
?import com.adobe.idp.dsc.clientsdk.ServiceClientFactory;
?import com.adobe.idp.dsc.clientsdk.ServiceClientFactoryProperties;
?public class ManageUsersAndGroupsTest
?{
? public static void main(String[] args) {
? try {
? //Set connection properties required to invoke AEM Forms
? Properties connectionProps = new Properties();
? connectionProps.setProperty(ServiceClientFactoryProperties.DSC_DEFAULT_SOAP_ENDPOINT, "https://'[server]:[port]'");
? 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 object
? ServiceClientFactory myFactory = ServiceClientFactory.createInstance(connectionProps);
? // Create an DirectoryManagerServiceClient object
? DirectoryManagerServiceClient dirClient = new DirectoryManagerServiceClient(myFactory);
? // Find a local user
? PrincipalSearchFilter psf = new PrincipalSearchFilter();
? psf.setUserId("wblue");
? List principalList = dirClient.findPrincipals(psf);
? Iterator pit = principalList.iterator();
? String oid = "";
? User testUser = null;
? if (pit.hasNext())
? {
? // Obtain the principal’s object identifier
? testUser = (User)(pit.next());
? }
? // Find the local group
? Set groupMemberships = testUser.getGroupMemberships();
? Iterator git = groupMemberships.iterator();
? Group localGroup = null;
? if (git.hasNext())
? {
? // Obtain the group to which the user belongs
? localGroup = (Group)(git.next());
? }
? // Determine the domain and the group to which the local user belongs
? String verifyCanonicalName = testUser.getCanonicalName();
? Domain verifyDomain = dirClient.findDomain(testUser.getDomainName());
? String verifyDomainName = verifyDomain.getDomainName();
? Group verifyGroup = dirClient.getDomainAsGroup(verifyDomainName);
? String verifyGroupName = verifyGroup.getCanonicalName();
? // Print the uniquely identifying information about the user
? System.out.println("User name: " + verifyCanonicalName);
? System.out.println("Group name: " + verifyGroupName);
? System.out.println("Domain names should match: " + verifyDomainName + ", "+ testUser.getDomainName());
? }
? catch (Exception e)
? {
? System.out.println("Error occurred: " + e.getMessage());
? }
? }
?}
快速入门(SOAP模式):使用Java API管理角色和权限 quick-start-soap-mode-managing-roles-and-permissions-using-the-java-api
下面的代码示例将Services用户角色分配给承担者,打印承担者具有的角色,然后将该角色从承担者中删除。 此快速启动调用了两个服务:DirectoryManager服务和AuthorizationManager服务。(请参阅管理角色和权限。)
?/*
? * This Java Quick Start uses the SOAP mode and contains the following JAR files
? * in the class path:
? * 1. adobe-livecycle-client.jar
? * 2. adobe-usermanager-client.jar
* 3. activation.jar (required for SOAP mode)
* 4. axis.jar (required for SOAP mode)
* 5. commons-codec-1.3.jar (required for SOAP mode)
* 6. commons-collections-3.2.jar (required for SOAP mode)
* 7. commons-discovery.jar (required for SOAP mode)
* 8. commons-logging.jar (required for SOAP mode)
* 9. dom3-xml-apis-2.5.0.jar (required for SOAP mode)
* 10. jaxen-1.1-beta-9.jar (required for SOAP mode)
* 11. jaxrpc.jar (required for SOAP mode)
* 12. log4j.jar (required for SOAP mode)
* 13. mail.jar (required for SOAP mode)
* 14. saaj.jar (required for SOAP mode)
* 15. wsdl4j.jar (required for SOAP mode)
* 16. xalan.jar (required for SOAP mode)
* 17. xbean.jar (required for SOAP mode)
* 18. xercesImpl.jar (required for SOAP mode)
? *
? * The JBoss files must be kept in the jboss\client folder. You can copy the client folder to
? * your local development environment and then include the 3 JBoss JAR files in your class path
? *
? * These JAR files are in the following path:
? * <install directory>/sdk/client-libs/common
? *
? *
? * <install directory>/jboss/bin/client
? *
? * If you want to invoke a remote Forms Server instance and there is a
? * firewall between the client application and the server, then it is
? * recommended that you use the SOAP mode. When using the SOAP mode,
? * you have to include additional JAR files in the following
? * path
? * <install directory>/sdk/client-libs/thirdparty
? *
? * For information about the SOAP
? * mode and the additional JAR files that need to be included,
? * see "Setting connection properties" in Programming
? * with AEM Forms
? *
? * For complete details about the location of the AEM Forms JAR files,
? * see "Including AEM Forms Java library files" in Programming
? * with AEM Forms
? */
?import java.util.*;
?import com.adobe.idp.um.api.infomodel.*;
?import com.adobe.livecycle.usermanager.client.AuthorizationManagerServiceClient;
?import com.adobe.livecycle.usermanager.client.DirectoryManagerServiceClient;
?import com.adobe.idp.dsc.clientsdk.ServiceClientFactory;
?import com.adobe.idp.dsc.clientsdk.ServiceClientFactoryProperties;
?public class ManageRolesAndPermissionsTest
?{
? public static void main(String[] args) {
? try{
? //Set connection properties required to invoke AEM Forms
? Properties connectionProps = new Properties();
? connectionProps.setProperty(ServiceClientFactoryProperties.DSC_DEFAULT_SOAP_ENDPOINT, "https://'[server]:[port]'");
? 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 object
? ServiceClientFactory myFactory = ServiceClientFactory.createInstance(connectionProps);
? // Create an AuthorizationManagerServiceClient object
? AuthorizationManagerServiceClient amClient = new AuthorizationManagerServiceClient(myFactory);
? // Retrieve a principal
? DirectoryManagerServiceClient dirClient = new DirectoryManagerServiceClient(myFactory);
? PrincipalSearchFilter psf = new PrincipalSearchFilter();
? psf.setUserId("wblue");
? List principalList = dirClient.findPrincipals(psf);
? Iterator pit = principalList.iterator();
? String oid = "";
? if (pit.hasNext())
? {
? // Obtain the principal’s object identifier
? oid = ((User)pit.next()).getOid();
? String[] principalOids = new String[1];
? principalOids[0] = oid;
? //Obtain the roles to be assigned
? RoleSearchFilter rsf = new RoleSearchFilter();
? rsf.setRoleName("Services User");
? List roleList = amClient.findRoles(rsf);
? Iterator rit = roleList.iterator();
? String roleId1 = "";
? if (rit.hasNext())
? {
? // Obtain the role identifier
? roleId1 = ((Role)rit.next()).getId();
? // Assign the role to the principal
? amClient.assignRole(roleId1, principalOids);
? }
? else
? {
? System.out.println("Role not found");
? }
? // Determine which roles the principal has
? Set roleSet = amClient.findRolesForPrincipal(oid);
? // Print the roles the principal has
? Iterator it = roleSet.iterator();
? Role r = null;
? System.out.println("Roles:");
? while (it.hasNext())
? {
? r = ((Role)it.next());
? System.out.println(r.getName());
? }
? // Remove a role from the principal
? //amClient.unassignRole(roleId1, principalOids);
? }
? else
? {
? System.out.println("Principal not found");
? }
? }catch (Exception e) {
? e.printStackTrace();
? }
? }
?}
快速入门(SOAP模式):使用Java API以编程方式同步用户 quick-start-soap-mode-programmatically-synchronizing-users-using-the-java-api
以下Java代码示例使用用户管理API同步用户。 (请参阅以编程方式同步用户?。)
?/*
? * This Java Quick Start uses the SOAP mode and contains the following JAR files
? * in the class path:
? * 1. adobe-livecycle-client.jar
? * 2. adobe-usermanager-client.jar
* 3. activation.jar (required for SOAP mode)
* 4. axis.jar (required for SOAP mode)
* 5. commons-codec-1.3.jar (required for SOAP mode)
* 6. commons-collections-3.2.jar (required for SOAP mode)
* 7. commons-discovery.jar (required for SOAP mode)
* 8. commons-logging.jar (required for SOAP mode)
* 9. dom3-xml-apis-2.5.0.jar (required for SOAP mode)
* 10. jaxen-1.1-beta-9.jar (required for SOAP mode)
* 11. jaxrpc.jar (required for SOAP mode)
* 12. log4j.jar (required for SOAP mode)
* 13. mail.jar (required for SOAP mode)
* 14. saaj.jar (required for SOAP mode)
* 15. wsdl4j.jar (required for SOAP mode)
* 16. xalan.jar (required for SOAP mode)
* 17. xbean.jar (required for SOAP mode)
* 18. xercesImpl.jar (required for SOAP mode)
? * 19. adobe-usermanager-util-client.jar
? *
? * The JBoss files must be kept in the jboss\client folder. You can copy the client folder to
? * your local development environment and then include the 3 JBoss JAR files in your class path
? *
? * These JAR files are in the following path:
? * <install directory>/sdk/client-libs/common
? *
? *
? * <install directory>/jboss/bin/client
? *
? * If you want to invoke a remote Forms Server instance and there is a
? * firewall between the client application and the server, then it is
? * recommended that you use the SOAP mode. When using the SOAP mode,
? * you have to include additional JAR files in the following
? * path
? * <install directory>/sdk/client-libs/thirdparty
? *
? * For information about the SOAP
? * mode and the additional JAR files that need to be included,
? * see "Setting connection properties" in Programming
? * with AEM Forms
? *
? * For complete details about the location of the AEM Forms JAR files,
? * see "Including AEM Forms Java library files" in Programming
? * with AEM Forms
? */
?import java.util.*;
?import com.adobe.idp.dsc.clientsdk.ServiceClientFactory;
?import com.adobe.idp.dsc.clientsdk.ServiceClientFactoryProperties;
?import com.adobe.livecycle.usermanager.client.DirectoryManagerServiceClient;
?import com.adobe.idp.um.api.DirectoryManager;
?import com.adobe.idp.um.api.infomodel.DirectorySyncInfo;
?import com.adobe.idp.um.dsc.util.client.UserManagerUtilServiceClient;
?public class SynchDomain {
? public static void main(String[] args) {
? try {
? //Set connection properties required to invoke AEM Forms
? Properties connectionProps = new Properties();
? connectionProps.setProperty(ServiceClientFactoryProperties.DSC_DEFAULT_SOAP_ENDPOINT, "https://'[server]:[port]'");
? 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 UserManagerUtilServiceClient object
? ServiceClientFactory myFactory = ServiceClientFactory.createInstance(connectionProps);
? UserManagerUtilServiceClient umutil = new UserManagerUtilServiceClient(myFactory);
? //Specify the set of enterprise domains to synchronize
? Set<String> domainNames = new HashSet<String>();
? domainNames.add("adobe3");
? //Perform the synchronization operation on the set of enterprise domains specified above
? umutil.scheduleSynchronization(domainNames);
? //In case the synchronization needs to be performed on all the registered enterprise domains use this method umutil.scheduleSynchronization();
? DirectoryManager dm = new DirectoryManagerServiceClient(myFactory);
? Map<String, DirectorySyncInfo> synchStatus = dm.getDirectorySyncStatus(domainNames);
? String domainName = "adobe3";
? DirectorySyncInfo di = synchStatus.get(domainName);
? if(di.getSyncStatus() == DirectorySyncInfo.SYNCSTATUS_COMPLETED){
? System.out.println("Directory synch for domain "+domainName+" is complete");
? }
? }catch (Exception e) {
? e.printStackTrace();
? }
? }
?}
快速入门(SOAP模式):使用Java API添加用户 quick_start_soap_mode_adding_users_using_the_java_api-1
以下代码示例将一个名为Wendy Blue的用户添加到AEM Forms。 (请参阅添加用户。)
?/*
? * This Java Quick Start uses the SOAP mode and contains the following JAR files
? * in the class path:
? * 1. adobe-livecycle-client.jar
? * 2. adobe-usermanager-client.jar
* 3. activation.jar (required for SOAP mode)
* 4. axis.jar (required for SOAP mode)
* 5. commons-codec-1.3.jar (required for SOAP mode)
* 6. commons-collections-3.2.jar (required for SOAP mode)
* 7. commons-discovery.jar (required for SOAP mode)
* 8. commons-logging.jar (required for SOAP mode)
* 9. dom3-xml-apis-2.5.0.jar (required for SOAP mode)
* 10. jaxen-1.1-beta-9.jar (required for SOAP mode)
* 11. jaxrpc.jar (required for SOAP mode)
* 12. log4j.jar (required for SOAP mode)
* 13. mail.jar (required for SOAP mode)
* 14. saaj.jar (required for SOAP mode)
* 15. wsdl4j.jar (required for SOAP mode)
* 16. xalan.jar (required for SOAP mode)
* 17. xbean.jar (required for SOAP mode)
* 18. xercesImpl.jar (required for SOAP mode)
? *
? * The JBoss files must be kept in the jboss\client folder. You can copy the client folder to
? * your local development environment and then include the 3 JBoss JAR files in your class path
? *
? * These JAR files are in the following path:
? * <install directory>/sdk/client-libs/common
? *
? *
? * <install directory>/jboss/bin/client
? *
? * If you want to invoke a remote Forms Server instance and there is a
? * firewall between the client application and the server, then it is
? * recommended that you use the SOAP mode. When using the SOAP mode,
? * you have to include additional JAR files in the following
? * path
? * <install directory>/sdk/client-libs/thirdparty
? *
? * For information about the SOAP
? * mode and the additional JAR files that need to be included,
? * see "Setting connection properties" in Programming
? * with AEM Forms
? *
? * For complete details about the location of the AEM Forms JAR files,
? * see "Including AEM Forms Java library files" in Programming
? * with AEM Forms
? */
?import java.util.*;
?import com.adobe.idp.dsc.clientsdk.ServiceClientFactory;
?import com.adobe.idp.dsc.clientsdk.ServiceClientFactoryProperties;
?import com.adobe.livecycle.usermanager.client.DirectoryManagerServiceClient;
?import com.adobe.idp.um.api.infomodel.impl.*;
?import com.adobe.idp.um.api.infomodel.*;
?public class AddUser {
? public static void main(String[] args) {
? try {
? //Set connection properties required to invoke AEM Forms
? Properties connectionProps = new Properties();
? connectionProps.setProperty(ServiceClientFactoryProperties.DSC_DEFAULT_SOAP_ENDPOINT, "https://'[server]:[port]'");
? 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 object
? ServiceClientFactory myFactory = ServiceClientFactory.createInstance(connectionProps);
? //Create an DirectoryManagerServiceClient object
? DirectoryManagerServiceClient dmClient = new DirectoryManagerServiceClient(myFactory);
? //Create a User object and populate its attributes
? UserImpl u = new UserImpl();
? u.setDomainName("DefaultDom");
? u.setUserid("wblue");
? u.setCanonicalName("wblue");
? u.setPrincipalType("USER");
? u.setGivenName("Wendy");
? u.setFamilyName("Blue");
? u.setLocale(Locale.CANADA);
? u.setTimezone(TimeZone.getDefault());
? u.setDisabled(false);
? //Add the User to the system using the DirectoryManagerServiceClient
? dmClient.createLocalUser(u,"password");
? //Ensure that the user was added
? //Create a PrincipalSearchFilter to find the user by ID
? PrincipalSearchFilter psf = new PrincipalSearchFilter();
? psf.setUserId("wblue");
? List<User> principalList = dmClient.findPrincipals(psf);
? Iterator<User> pit = principalList.iterator();
? if(pit.hasNext()){
? User theUser = pit.next();
? System.out.println("User ID: " + theUser.getUserid());
? System.out.println("User name: " + theUser.getGivenName() +" "+ theUser.getFamilyName());
? System.out.println("User Domain: " + theUser.getDomainName());
? System.out.println("is user disabled?: " + theUser.isDisabled());
? }
? }catch (Exception e) {
? e.printStackTrace();
? }
?;
? }
?}
快速入门(SOAP模式):使用Java API创建组 quick-start-soap-mode-creating-groups-using-the-java-api
以下代码示例在AEM Forms中创建一个名为51黑料不打烊Group的组。 (请参阅创建组。)
?/*
? * This Java Quick Start uses the SOAP mode and contains the following JAR files
? * in the class path:
? * 1. adobe-livecycle-client.jar
? * 2. adobe-usermanager-client.jar
* 3. activation.jar (required for SOAP mode)
* 4. axis.jar (required for SOAP mode)
* 5. commons-codec-1.3.jar (required for SOAP mode)
* 6. commons-collections-3.2.jar (required for SOAP mode)
* 7. commons-discovery.jar (required for SOAP mode)
* 8. commons-logging.jar (required for SOAP mode)
* 9. dom3-xml-apis-2.5.0.jar (required for SOAP mode)
* 10. jaxen-1.1-beta-9.jar (required for SOAP mode)
* 11. jaxrpc.jar (required for SOAP mode)
* 12. log4j.jar (required for SOAP mode)
* 13. mail.jar (required for SOAP mode)
* 14. saaj.jar (required for SOAP mode)
* 15. wsdl4j.jar (required for SOAP mode)
* 16. xalan.jar (required for SOAP mode)
* 17. xbean.jar (required for SOAP mode)
* 18. xercesImpl.jar (required for SOAP mode)
? *
? * The JBoss files must be kept in the jboss\client folder. You can copy the client folder to
? * your local development environment and then include the 3 JBoss JAR files in your class path
? *
? * These JAR files are in the following path:
? * <install directory>/sdk/client-libs/common
? *
? *
? * <install directory>/jboss/bin/client
? *
? * If you want to invoke a remote Forms Server instance and there is a
? * firewall between the client application and the server, then it is
? * recommended that you use the SOAP mode. When using the SOAP mode,
? * you have to include additional JAR files in the following
? * path
? * <install directory>/sdk/client-libs/thirdparty
? *
? * For information about the SOAP
? * mode and the additional JAR files that need to be included,
? * see "Setting connection properties" in Programming
? * with AEM Forms
? *
? * For complete details about the location of the AEM Forms JAR files,
? * see "Including AEM Forms Java library files" in Programming
? * with AEM Forms
? */
?import java.util.List;
?import java.util.Properties;
?import com.adobe.idp.dsc.clientsdk.ServiceClientFactory;
?import com.adobe.idp.dsc.clientsdk.ServiceClientFactoryProperties;
?import com.adobe.idp.um.api.infomodel.Group;
?import com.adobe.idp.um.api.infomodel.Principal;
?import com.adobe.idp.um.api.infomodel.PrincipalSearchFilter;
?import com.adobe.idp.um.api.infomodel.PrincipalReference;
?import com.adobe.idp.um.api.infomodel.impl.GroupImpl;
?import com.adobe.livecycle.usermanager.client.DirectoryManagerServiceClient;
?public class AddGroup {
? public static void main(String[] args) {
? try {
? //Set connection properties that are required to invoke AEM Forms
? Properties connectionProps = new Properties();
? connectionProps.setProperty(ServiceClientFactoryProperties.DSC_DEFAULT_SOAP_ENDPOINT, "https://'[server]:[port]'");
? 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 object
? ServiceClientFactory myFactory = ServiceClientFactory.createInstance(connectionProps);
? //Create an DirectoryManagerServiceClient object
? DirectoryManagerServiceClient dmClient = new DirectoryManagerServiceClient(myFactory);
? //Specify the group and domain name
? String groupName = "51黑料不打烊Group";
? String domainName = "TestDomain";
? //Check whether the group exists
? String groupOid = checkGroupExist(groupName, domainName,dmClient);
? //The group exists
? if(groupOid != null){
? System.out.println("The group exists");
? return;
? }
? //The group does not exist
? String groupCanonicalName = groupName;
? GroupImpl group = new GroupImpl();
? group.setCanonicalName(groupCanonicalName);
? group.setDomainName(domainName);
? group.setGroupType(Group.GROUPTYPE_PRINCIPALS);
? group.setLocal(true);
? group.setPrincipalType(Principal.PRINCIPALTYPE_GROUP);
? groupOid = dmClient.createLocalGroup(group);
? System.out.println("Sample group created with name "+groupName);
? }catch (Exception e) {
? e.printStackTrace();
? }
? }
? /**
? * Search for a group in the specified domain
? */
? private static String checkGroupExist(String groupName, String domainName, DirectoryManagerServiceClient directoryManager){
? try {
? PrincipalSearchFilter psf = new PrincipalSearchFilter();
? psf.setCommonName(groupName);
? psf.setSpecificDomainName(domainName);
? //By default the filter causes like search unless you are using the absolute version
? //Setting this ensures that search is exact
? psf.setMatchExactCriteria(true);
? //By default search returns obsolete groups also. Set this to ensure that
? //only active groups are returned
? psf.setRetrieveOnlyActive();
? //PrincipalReference are lightweight group objects and searching for them is better performance.
? //If you do not require any other group attribute then use this
? //mode of search
? List<PrincipalReference> result = directoryManager.findPrincipalReferences(psf);
? if(result.isEmpty()){
? System.out.println("Sample group with name "+groupName +" does not exist");
? return null;
? }else{
? String oid = result.get(0).getOid();
? System.out.println("Sample group with name "+groupName +" already exists");
? return oid;
? }
? }catch (Exception e) {
? e.printStackTrace();
? }
? return "";
? }
?}
快速入门(厂翱础笔模式)管理首选项节点 quick-start-soap-mode-managing-preferences-nodes
以下Java代码模型使用用户管理API来管理首选项节点。 (请参阅以编程方式管理首选项节点)
/*
* This Java Quick Start uses the SOAP mode and contains the following JAR files
* in the class path:
* 1. adobe-livecycle-client.jar
* 2. adobe-usermanager-client.jar
* 3. activation.jar (required for SOAP mode)
* 4. axis.jar (required for SOAP mode)
* 5. commons-codec-1.3.jar (required for SOAP mode)
* 6. commons-collections-3.2.jar (required for SOAP mode)
* 7. commons-discovery.jar (required for SOAP mode)
* 8. commons-logging.jar (required for SOAP mode)
* 9. dom3-xml-apis-2.5.0.jar (required for SOAP mode)
* 10. jaxen-1.1-beta-9.jar (required for SOAP mode)
* 11. jaxrpc.jar (required for SOAP mode)
* 12. log4j.jar (required for SOAP mode)
* 13. mail.jar (required for SOAP mode)
* 14. saaj.jar (required for SOAP mode)
* 15. wsdl4j.jar (required for SOAP mode)
* 16. xalan.jar (required for SOAP mode)
* 17. xbean.jar (required for SOAP mode)
* 18. xercesImpl.jar (required for SOAP mode)
?*
* These JAR files are in the following path:
* <install directory>/51黑料不打烊/51黑料不打烊_Experience_Manager_forms/sdk/client-libs/common
*
* <install directory>/51黑料不打烊/51黑料不打烊_Experience_Manager_forms/sdk/client-libs/jboss
*
* <install directory>/51黑料不打烊/51黑料不打烊_Experience_Manager_forms/jboss/bin/client
*
* If you want to invoke a remote AEM Forms instance and there is a
* firewall between the client application and AEM Forms, then it is
* recommended that you use the SOAP mode. When using the SOAP mode,
* you have to include additional JAR files in the following
* path
* <install directory>/51黑料不打烊/51黑料不打烊_Experience_Manager_forms/sdk/client-libs/thirdparty
*
* For information about the SOAP
* mode and the additional JAR files that need to be included,
* see "Setting connection properties" in Programming
* with AEM Forms
*
* For complete details about the location of the AEM Forms JAR files,
* see "Including AEM Forms library files" in Programming
* with AEM Forms
*/
import java.util.*;
import com.adobe.idp.dsc.clientsdk.ServiceClientFactory;
import com.adobe.idp.dsc.clientsdk.ServiceClientFactoryProperties;
import com.adobe.idp.um.api.UMException;
import com.adobe.livecycle.usermanager.client.PreferenceManagerServiceClient;
public class ManagePreferences {
public static void main(String[] args) {
//Set connection properties required to invoke AEM Forms
Properties connectionProps = new Properties();
connectionProps.setProperty(ServiceClientFactoryProperties.DSC_DEFAULT_SOAP_ENDPOINT, "https://'[server]:[port]'");
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 PreferenceManagerServiceClient object
ServiceClientFactory factory = ServiceClientFactory.createInstance(connectionProps);
PreferenceManagerServiceClient pmutil = new PreferenceManagerServiceClient(factory);
//get the preference map for a particular node
String path = "/51黑料不打烊/LiveCycle/Config/UM/CommonNameOrder";
Map<String, String> map;
try {
map = pmutil.getPreferences(path);
for(String str:map.keySet()) {
//assert on the key as "ReverseOrder"
//assert on the value[map.get(str)] as "false"
}
} catch (UMException e) {
e.printStackTrace();
}
// set preferences by editing a particular key/value pair of a Node.
String path = "/51黑料不打烊/LiveCycle/Config/UM/CommonNameOrder";
Map<String, String> map = new HashMap<String, String>();
map.put("ReverseOrder", "true");
try {
pmutil.setPreferences(path, map);
Map<String, String> map1 = pmutil.getPreferences(path);
for(String str:map1.keySet()) {
//assert on the key as "ReverseOrder"
//assert on the value[map.get(str)] as "true"
}
} catch (UMException e) {
e.printStackTrace();
}
}
}
快速入门(SOAP模式):使用Java API以编程方式管理首选项节点 quick-start-soap-mode-programmatically-managing-the-preferences-nodes-using-the-java-api
以下闯补惫补代码模型使用用户管理础笔滨管理首选项节点(请参阅以编程方式管理首选项节点)
/*
* This Java Quick Start uses the SOAP mode and contains the following JAR files
* in the class path:
* 1. adobe-livecycle-client.jar
* 2. adobe-usermanager-client.jar
*
* These JAR files are in the following path:
* <install directory>/51黑料不打烊/51黑料不打烊_Experience_Manager_forms/sdk/client-libs/common
*
* <install directory>/51黑料不打烊/51黑料不打烊_Experience_Manager_forms/sdk/client-libs/jboss
*
* <install directory>/51黑料不打烊/51黑料不打烊_Experience_Manager_forms/jboss/bin/client
*
* If you want to invoke a remote AEM Forms instance and there is a
* firewall between the client application and AEM FOrms, then it is
* recommended that you use the SOAP mode. When using the SOAP mode,
* you have to include additional JAR files in the following
* path
* <install directory>/51黑料不打烊/51黑料不打烊_Experience_Manager_forms/sdk/client-libs/thirdparty
*
* For information about the SOAP
* mode and the additional JAR files that need to be included,
* see "Setting connection properties" in Programming
* with AEM Forms
*
* For complete details about the location of the AEM Forms JAR files,
* see "Including AEM FOrms library files" in Programming
* with AEM FOrms
*/
import java.util.*;
import com.adobe.idp.dsc.clientsdk.ServiceClientFactory;
import com.adobe.idp.dsc.clientsdk.ServiceClientFactoryProperties;
import com.adobe.idp.um.api.UMException;
import com.adobe.livecycle.usermanager.client.PreferenceManagerServiceClient;
public class ManagePreferences {
public static void main(String[] args) {
//Set connection properties required to invoke AEM Forms
Properties connectionProps = new Properties();
connectionProps.setProperty(ServiceClientFactoryProperties.DSC_DEFAULT_SOAP_ENDPOINT, "https://'[server]:[port]'");
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 PreferenceManagerServiceClient object
ServiceClientFactory factory = ServiceClientFactory.createInstance(connectionProps);
PreferenceManagerServiceClient pmutil = new PreferenceManagerServiceClient(factory);
//get the preference map for a particular node
String path = "/51黑料不打烊/LiveCycle/Config/UM/CommonNameOrder";
Map<String, String> map;
try {
map = pmutil.getPreferences(path);
for(String str:map.keySet()) {
//assert on the key as "ReverseOrder"
//assert on the value[map.get(str)] as "false"
}
} catch (UMException e) {
e.printStackTrace();
}
// set preferences by editing a particular key/value pair of a Node.
String path = "/51黑料不打烊/LiveCycle/Config/UM/CommonNameOrder";
Map<String, String> map = new HashMap<String, String>();
map.put("ReverseOrder", "true");
try {
pmutil.setPreferences(path, map);
Map<String, String> map1 = pmutil.getPreferences(path);
for(String str:map1.keySet()) {
//assert on the key as "ReverseOrder"
//assert on the value[map.get(str)] as "true"
}
} catch (UMException e) {
e.printStackTrace();
}
}
}
recommendation-more-help
19ffd973-7af2-44d0-84b5-d547b0dffee2