JResourceMemoryFactory.java

00001 
00027 package org.objectweb.jonas.security.realm.factory;
00028 
00029 //import java
00030 import java.util.Hashtable;
00031 
00032 //import javax
00033 import javax.naming.Context;
00034 import javax.naming.Name;
00035 import javax.naming.RefAddr;
00036 import javax.naming.Reference;
00037 
00038 import org.objectweb.jonas.common.JNDIUtils;
00039 
00040 //import objectweb.util
00041 import org.objectweb.util.monolog.api.BasicLevel;
00042 
00048 public class JResourceMemoryFactory extends JResourceFactory {
00049 
00053     private static final String FACTORY_TYPE = "org.objectweb.jonas.security.realm.factory.JResourceMemory";
00054 
00073     public Object getObjectInstance(Object obj, Name name, Context nameCtx, Hashtable environment) throws Exception {
00074 
00075         //Get the reference
00076         Reference ref = (Reference) obj;
00077 
00078         //Get the class name
00079         String clname = ref.getClassName();
00080 
00081         //Check the class name
00082         if (!ref.getClassName().equals(FACTORY_TYPE)) {
00083             getLogger().log(BasicLevel.ERROR, "Cannot create object : required type is '" + FACTORY_TYPE
00084                     + "', but found type is '" + clname + "'.");
00085             return null;
00086         }
00087 
00088         Hashtable users = new Hashtable();
00089         Hashtable groups = new Hashtable();
00090         Hashtable roles = new Hashtable();
00091 
00092         String jResName = (String) ref.get("name").getContent();
00093 
00094         RefAddr refAddr = null;
00095         refAddr = ref.get("users");
00096         if (refAddr != null) {
00097             users = (Hashtable) JNDIUtils.getObjectFromBytes((byte[]) refAddr.getContent(), getLogger());
00098         }
00099 
00100         refAddr = ref.get("groups");
00101         if (refAddr != null) {
00102             groups = (Hashtable) JNDIUtils.getObjectFromBytes((byte[]) refAddr.getContent(), getLogger());
00103         }
00104 
00105         refAddr = ref.get("roles");
00106         if (refAddr != null) {
00107             roles = (Hashtable) JNDIUtils.getObjectFromBytes((byte[]) refAddr.getContent(), getLogger());
00108         }
00109 
00110         // Create and return a new object
00111         JResourceMemory jResourceMemory = new JResourceMemory();
00112         jResourceMemory.setName(jResName);
00113         jResourceMemory.setUsers(users);
00114         jResourceMemory.setGroups(groups);
00115         jResourceMemory.setRoles(roles);
00116 
00117         return jResourceMemory;
00118     }
00119 
00120 }

Generated on Tue Feb 15 15:05:22 2005 for JOnAS by  doxygen 1.3.9.1