scott now that you have a rw access, when you have the time how about making
this a MBean that people configure on startup.  Also put the relevant
configuration in the xml files (jboss.xml).

and please please please, a little blurb on how to set it up for
documentation,

marc


|-----Original Message-----
|From: [EMAIL PROTECTED]
|[mailto:[EMAIL PROTECTED]]On Behalf Of Scott M Stark
|Sent: Monday, January 08, 2001 2:16 AM
|To: jBoss
|Subject: Re: [jBoss-User] JNDI implementation
|
|
|I'm using LDAP with JBoss by binding my LDAP server's initial context into
|the JBoss JNDI namespace and this works great. About 30 lines of code is
|all it takes:
|
| private void initializeLdap(InitialContext iniCtx) throws NamingException
| {
|  Properties env = new Properties();
|  env.setProperty(Context.INITIAL_CONTEXT_FACTORY,
|"com.sun.jndi.ldap.LdapCtxFactory");
|  env.setProperty(Context.PROVIDER_URL, "ldap://banshee-int:389/");
|  env.setProperty(Context.SECURITY_PRINCIPAL, "cn=Directory Manager");
|  env.setProperty(Context.SECURITY_AUTHENTICATION, "simple");
|  env.setProperty(Context.SECURITY_CREDENTIALS, "secret");
|
|  try
|  {
|   InitialLdapContext ldapCtx = new InitialLdapContext(env, null);
|   //Bind a reference to the LDAP root context using
|NonSerializableWrapper as the ObjectFactory
|   NonSerializableWrapper.add(ldapJndiName, ldapCtx);
|   String className = "javax.naming.ldap.InitialLdapContext";
|   String factory = NonSerializableWrapper.class.getName();
|   StringRefAddr addr = new StringRefAddr("nns", ldapJndiName);
|   Reference memoryRef = new Reference(className, addr, factory, null);
|   iniCtx.rebind(ldapJndiName, memoryRef);
|   PkgCategory.info("Bound projects ldap context at: "+ldapJndiName);
|  }
|  catch(Throwable t)
|  {
|   PkgCategory.alert("Failed to setup projects ldap context", t);
|   NamingException ne = new NamingException("Failed to setup
|projects ldap context");
|   ne.setRootCause(t);
|   throw ne;
|  }
| }
|
|The NonSerializableWrapper class is just a simple in memory object factory:
|public class NonSerializableWrapper implements ObjectFactory
|{
| private static Map wrapperMap = Collections.synchronizedMap(new
|HashMap());
|
| public static void add(String key, Object target)
| {
|  wrapperMap.put(key, target);
| }
|
|// --- Begin ObjectFactory interface methods
| public Object getObjectInstance(Object obj, Name name, Context
|nameCtx, Hashtable env) throws Exception
| { // Get the nns value from the Reference obj and use it as the map key
|  Reference ref = (Reference) obj;
|  RefAddr addr = ref.get("nns");
|  String key = (String) addr.getContent();
|  Object target = wrapperMap.get(key);
|  return target;
| }
|// --- End ObjectFactory interface methods
|}
|
|>> Furthermore, as it does not seem to be persistant, does anyone
|use another
|>> JNDI implementation with JBoss which would be :
|>>         - Java
|>>         - Directory
|>>         - persistant
|>
|>You mean like a Java LDAP server? I don't know of anyone like that, no.
|>
|>regards,
|>  Rickard
|
|
|
|
|--
|--------------------------------------------------------------
|To subscribe:        [EMAIL PROTECTED]
|To unsubscribe:      [EMAIL PROTECTED]
|List Help?:          [EMAIL PROTECTED]
|
|



--
--------------------------------------------------------------
To subscribe:        [EMAIL PROTECTED]
To unsubscribe:      [EMAIL PROTECTED]
List Help?:          [EMAIL PROTECTED]

Reply via email to