KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > raptus > owxv3 > api > usermgr > UserMgrFactory


1 package com.raptus.owxv3.api.usermgr;
2
3 import com.raptus.owxv3.*;
4 /**
5  * Singleton class, used to create a security manager , when is needed one
6  */

7 public class UserMgrFactory implements UserMgrFactoryIF
8 {
9     /**
10      * Cached instance of the security manager factory.
11      */

12     private static UserMgrFactoryIF _instance=null;
13     
14     public static void initialize()
15     {
16         LoggingManager.log("Initialising User manager!");
17         
18         XMLConfigManager cm = XMLConfigManager.getInstance();
19         
20         String JavaDoc clazz=cm.getPropertyByTree("/virtualhost/globalconfig/usermanager/managerfactory","class");
21         LoggingManager.log("User manager factory class is "+clazz);
22   
23         try
24         {
25             Class JavaDoc c = Class.forName(clazz);
26             _instance = (UserMgrFactoryIF) c.newInstance();
27
28             UserMgr um = _instance.createUserManager(null);
29             
30             // create initial roles and users
31
String JavaDoc[] roles=cm.getStringArrayByTree(
32                 "/virtualhost/vmodules/vmodule?name=usermgr/initial_roles","roles");
33             if(roles == null)
34             {
35                 LoggingManager.log("No initial roles!");
36             }
37             else
38             {
39                 for(int i=0;i<roles.length;i++)
40                 {
41                     if(um.getRole(roles[i])==null)
42                     {
43                         LoggingManager.log("Creating role "+roles[i]);
44                         String JavaDoc description=cm.getPropertyByTree(
45                             "/virtualhost/vmodules/vmodule?name=usermgr/initial_roles/role?name="+roles[i],"description");
46                         um.addRole(roles[i], ""+description);
47                     }
48                     else
49                     {
50                         LoggingManager.log("Role "+roles[i]+"already exist!");
51                     }
52                 }
53             }
54             
55             // now the users
56
String JavaDoc[] users=cm.getStringArrayByTree(
57                 "/virtualhost/vmodules/vmodule?name=usermgr/initial_users","usernames");
58             if(users == null)
59             {
60                 LoggingManager.log("No initial users!");
61             }
62             else
63             {
64                 for(int i=0;i<users.length;i++)
65                 {
66                     if(um.getUser(users[i])==null)
67                     {
68                         LoggingManager.log("Creating user "+users[i]);
69                         String JavaDoc name=cm.getPropertyByTree(
70                             "/virtualhost/vmodules/vmodule?name=usermgr/initial_users/user?username="+users[i],"name");
71                         String JavaDoc password=cm.getPropertyByTree(
72                             "/virtualhost/vmodules/vmodule?name=usermgr/initial_users/user?username="+users[i],"password");
73                         String JavaDoc email=cm.getPropertyByTree(
74                             "/virtualhost/vmodules/vmodule?name=usermgr/initial_users/user?username="+users[i],"email");
75                         String JavaDoc locale=cm.getPropertyByTree(
76                             "/virtualhost/vmodules/vmodule?name=usermgr/initial_users/user?username="+users[i],"locale");
77                         
78                         if(!um.addUser(name, password, users[i], email, locale, null))
79                         {
80                             LoggingManager.log("Error adding user "+users[i]);
81                             continue;
82                         }
83                         
84                         // add user roles
85
roles=cm.getStringArrayByTree(
86                         "/virtualhost/vmodules/vmodule?name=usermgr/initial_users/user?username="+users[i],"roles");
87                         
88                         User u = um.getUser(users[i]);
89                         um.setRolesForUser(u,roles);
90                     }
91                     else
92                     {
93                         LoggingManager.log("User "+users[i]+" already exists!");
94                     }
95                 }
96             }
97             
98         }
99         catch(Exception JavaDoc ex)
100         {
101             _instance =null;
102             LoggingManager.log("Can't initialize user manager :"+ex.getMessage());
103         }
104     }
105
106     
107     /**
108      * Return a security manager
109      * This will create a new security manager, according to param object
110      */

111     public UserMgr createUserManager(Object JavaDoc param)
112     {
113        return _instance.createUserManager(param);
114     }
115     
116     public static UserMgrFactoryIF getInstance()
117     {
118         if(_instance == null)
119         {
120             initialize();
121             //_instance = new com.raptus.owxv3.api.securitymgr.tomcat.UserMgrFactory();
122
}
123
124         return _instance;
125     }
126     
127 }
128
129
Popular Tags