Advertisement
Guest User

Untitled

a guest
Jul 26th, 2016
73
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.64 KB | None | 0 0
  1. package model;
  2.  
  3. import java.util.Hashtable;
  4.  
  5. import javax.naming.Context;
  6. import javax.naming.NamingException;
  7. import javax.naming.directory.Attribute;
  8. import javax.naming.directory.Attributes;
  9. import javax.naming.directory.BasicAttribute;
  10. import javax.naming.directory.BasicAttributes;
  11. import javax.naming.ldap.InitialLdapContext;
  12. import javax.naming.ldap.LdapContext;
  13.  
  14. public class NewUser {
  15.  
  16. private static final String DOMAIN_NAME = "Dom215-01";
  17. private static final String DOMAIN_ROOT = "DC=Dom215-01,DC=local";
  18. private static final String DOMAIN_URL = "ldap://10.18.215.112:389";
  19. private static final String ADMIN_NAME = "CN=Administrator,CN=Users,DC=Dom215-01,DC=local";
  20. private static final String ADMIN_PASS = "g18";
  21.  
  22. private String userName, firstName, lastName, password, organisationUnit;
  23. private LdapContext context;
  24.  
  25. public NewUser(String userName, String firstName, String lastName,
  26. String password, String organisationUnit) {
  27.  
  28. this.userName = userName;
  29. this.firstName = firstName;
  30. this.lastName = lastName;
  31. this.password = password;
  32. this.organisationUnit = organisationUnit;
  33.  
  34. Hashtable<String, String> env = new Hashtable<String, String>();
  35.  
  36. env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory");
  37.  
  38. // set security credentials, note using simple cleartext authentication
  39. env.put(Context.SECURITY_AUTHENTICATION, "simple");
  40. env.put(Context.SECURITY_PRINCIPAL, ADMIN_NAME);
  41. env.put(Context.SECURITY_CREDENTIALS, ADMIN_PASS);
  42.  
  43. // connect to my domain controller
  44. env.put(Context.PROVIDER_URL, DOMAIN_URL);
  45.  
  46. try {
  47. this.context = new InitialLdapContext(env, null);
  48. } catch (NamingException e) {
  49. System.err.println("Problem creating object: ");
  50. e.printStackTrace();
  51. }
  52.  
  53. }
  54.  
  55. public boolean addUser() throws NamingException {
  56.  
  57. // Create a container set of attributes
  58. Attributes container = new BasicAttributes();
  59.  
  60. // Create the objectclass to add
  61. Attribute objClasses = new BasicAttribute("objectClass");
  62. objClasses.add("top");
  63. objClasses.add("person");
  64. objClasses.add("organizationalPerson");
  65. objClasses.add("user");
  66.  
  67. // Assign the username, first name, and last name
  68. String cnValue = new StringBuffer(firstName).append(" ").append(lastName).toString();
  69. Attribute cn = new BasicAttribute("cn", cnValue);
  70. Attribute sAMAccountName = new BasicAttribute("sAMAccountName", userName);
  71. Attribute principalName = new BasicAttribute("userPrincipalName", userName
  72. + "@" + DOMAIN_NAME);
  73. Attribute givenName = new BasicAttribute("givenName", firstName);
  74. Attribute sn = new BasicAttribute("sn", lastName);
  75. Attribute uid = new BasicAttribute("uid", userName);
  76.  
  77. // Add password
  78. Attribute userPassword = new BasicAttribute("userpassword", password);
  79.  
  80. // Add these to the container
  81. container.put(objClasses);
  82. container.put(sAMAccountName);
  83. container.put(principalName);
  84. container.put(cn);
  85. container.put(sn);
  86. container.put(givenName);
  87. container.put(uid);
  88. container.put(userPassword);
  89.  
  90. // Create the entry
  91. try {
  92. context.createSubcontext(getUserDN(cnValue, organisationUnit), container);
  93. return true;
  94. } catch (Exception e) {
  95. return false;
  96. }
  97. }
  98.  
  99. private static String getUserDN(String aUsername, String aOU) {
  100. return "cn=" + aUsername + ",ou=" + aOU + "," + DOMAIN_ROOT;
  101. }
  102. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement