Bonjour à tous
je suis entrain de developper une portlet d'ajout d'utilisateur via Ldap
voila mon code de LdapProgram.java
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
package com.test;
 
import java.util.Hashtable;
import java.util.Properties;
//import java.util.jar.Attributes;
 
import javax.naming.Context;
import javax.naming.NamingException;
import javax.naming.directory.BasicAttribute;
import javax.naming.directory.BasicAttributes;
import javax.naming.directory.DirContext;
import javax.naming.directory.InitialDirContext;
import javax.portlet.ActionRequest;
import javax.portlet.ActionResponse;
 
//import com.liferay.portal.kernel.xml.Attribute;
//import com.liferay.portal.kernel.xml.Attribute;
import com.liferay.util.bridges.mvc.MVCPortlet;
 
/**
 * Portlet implementation class LdapProgram
 */
public class LdapProgram extends MVCPortlet {
 
 
 
 
 
 
	 public void ajouterLdap(ActionRequest ar , ActionResponse aq) throws Exception {
		 //Properties env = new Properties();
		 Hashtable<String, String> env = new Hashtable<String, String>();
		 env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory");
		 env.put(Context.PROVIDER_URL, "ldap://localhost:10389");
		 env.put(Context.SECURITY_AUTHENTICATION, "simple");
		 env.put(Context.SECURITY_PRINCIPAL,"uid=admin,ou=system"); // specify the username
		 env.put(Context.SECURITY_CREDENTIALS,"secret");// specify the password
		 // TODO code application logic here
 
		 // entry's DN
		 String entryDN = "cn=ali ,dc=example,dc=com";
 
		 // entry's attributes
		 BasicAttribute uid = new BasicAttribute("uid", ar.getParameter("uid")); 
		 //BasicAttribute cn = new BasicAttribute("cn", ar.getParameter("cn"));
		 BasicAttribute sn = new BasicAttribute("sn", ar.getParameter("sn"));
		 BasicAttribute mail = new BasicAttribute("mail", ar.getParameter("mail"));
		 BasicAttribute phone = new BasicAttribute("telephoneNumber",ar.getParameter("phone"));
		 BasicAttribute givenName = new BasicAttribute("givenName",ar.getParameter("givenName"));
		 BasicAttribute userpassword = new BasicAttribute("userpassword",ar.getParameter("userpassword") );
		 BasicAttribute oc = new BasicAttribute("objectClass");
		 oc.add("top");
		 oc.add("person");
		 oc.add("organizationalPerson");
		 oc.add("inetOrgPerson");
 
		 DirContext ctx = null;
 
		 try {
		 // get a handle to an Initial DirContext
		 ctx = new InitialDirContext(env);
 
		 // build the entry
		 BasicAttributes entry = new BasicAttributes();
 
		 entry.put(uid);
		// entry.put(cn);
		 entry.put(givenName);
		 entry.put(sn);
		 entry.put(mail);
		 entry.put(phone);
		 entry.put(userpassword);
		 entry.put(oc);
 
 
 
		 entry.put(oc);
 
		 // Add the entry
 
		 ctx.createSubcontext(entryDN, entry);
		  System.out.println( "AddUser: added entry " + entryDN + ".");
 
		 } catch (NamingException e) {
		 System.err.println("AddUser: error adding entry." + e);
		 }
	 }
}
et voici le code JSP
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
<%@page import="com.bfi.model.impl.EmployeeBaseImpl"%>
<%@page import="com.bfi.service.base.EmployeeLocalServiceBaseImpl"%>
<%@ taglib uri="http://java.sun.com/portlet_2_0" prefix="portlet" %>
       <%@ taglib uri="http://alloy.liferay.com/tld/aui" prefix="aui" %>
      <%@ taglib uri="http://liferay.com/tld/ui" prefix="liferay-ui"%>
 
      <%@ page import="java.util.List" %>
      <%@ page import="com.liferay.portal.kernel.util.ListUtil" %>
 
 
 <%@ page import="com.bfi.model.*" %>
 
 <%@ page import="com.bfi.service.impl.*" %>
 <%@ page import="com.bfi.service.*" %>
  <%@ page import="com.test.*" %>
   <%@ page import="com.bfi.model.*" %>
 
 
 
 
 
 
<portlet:defineObjects />
 
<portlet:actionURL name="ajouterLdap" var="add" />
 
<aui:form name="a" action="<%=add.toString() %>" method="post" >
 
<aui:input type="text" label="uid" name="uid" value="" />
 
 
 <aui:input type="text" label="sn" name="sn" value="" />
  <aui:input type="text" label="mail" name="mail" value="" size="180" />
 <aui:input type="text" label="telephoneNumber" name="phone" value="" />
 <aui:input type="text" label="givenName" name="givenName" value="" />
 <aui:input type="text" label="mot de passe" name="userpassword" value="" />
 
 
 
 
 <aui:button type="submit" value="Save" />
 </aui:form>
Mon problème c'est que à chaque fois je veux ajouter un nouveau utilisateur je suis obliger de modifier
String entryDN = "cn=ali ,dc=example,dc=com"; par un autre cn