00001
00027 package org.objectweb.jonas.security.realm.factory;
00028
00029
00030 import java.util.Hashtable;
00031
00032
00033 import javax.naming.Context;
00034 import javax.naming.Name;
00035 import javax.naming.Reference;
00036
00037
00038 import org.objectweb.util.monolog.api.BasicLevel;
00039
00045 public class JResourceDSFactory extends JResourceFactory {
00046
00050 private static final String FACTORY_TYPE = "org.objectweb.jonas.security.realm.factory.JResourceDS";
00051
00070 public Object getObjectInstance(Object obj, Name name, Context nameCtx, Hashtable environment) throws Exception {
00071
00072
00073 Reference ref = (Reference) obj;
00074
00075
00076 String clname = ref.getClassName();
00077
00078
00079 if (!ref.getClassName().equals(FACTORY_TYPE)) {
00080 getLogger().log(BasicLevel.ERROR, "Cannot create object : required type is '" + FACTORY_TYPE
00081 + "', but found type is '" + clname + "'.");
00082 return (null);
00083 }
00084
00085 String jResName = (String) ref.get("name").getContent();
00086 String dsName = (String) ref.get("dsName").getContent();
00087 String userTable = (String) ref.get("userTable").getContent();
00088 String userTableUsernameCol = (String) ref.get("userTableUsernameCol").getContent();
00089 String userTablePasswordCol = (String) ref.get("userTablePasswordCol").getContent();
00090 String roleTable = (String) ref.get("roleTable").getContent();
00091 String roleTableUsernameCol = (String) ref.get("roleTableUsernameCol").getContent();
00092 String roleTableRolenameCol = (String) ref.get("roleTableRolenameCol").getContent();
00093 String userPrincipalsQuery = (String) ref.get("userPrincipalsQuery").getContent();
00094 String userRolesQuery = (String) ref.get("userRolesQuery").getContent();
00095 String algorithm = (String) ref.get("algorithm").getContent();
00096
00097
00098 JResourceDS jResourceDS = new JResourceDS();
00099 jResourceDS.setName(jResName);
00100 jResourceDS.setDsName(dsName);
00101 jResourceDS.setUserTable(userTable);
00102 jResourceDS.setUserTableUsernameCol(userTableUsernameCol);
00103 jResourceDS.setUserTablePasswordCol(userTablePasswordCol);
00104 jResourceDS.setRoleTable(roleTable);
00105 jResourceDS.setRoleTableUsernameCol(roleTableUsernameCol);
00106 jResourceDS.setRoleTableRolenameCol(roleTableRolenameCol);
00107 jResourceDS.setUserPrincipalsQuery(userPrincipalsQuery);
00108 jResourceDS.setUserRolesQuery(userRolesQuery);
00109 jResourceDS.setAlgorithm(algorithm);
00110
00111 return jResourceDS;
00112 }
00113
00114 }