1 package org.ultramonkey.l7.model;
3 import java.util.Vector;
5 import javax.servlet.http.*;
7 import org.apache.log4j.Logger;
15 * Copyright(c) NTT COMWARE 2008
20 public final class UserManager {
21 static final long serialVersionUID = 1;
24 * userdata save filename ("/opt/l7vsd/userdata.dat")
26 protected static final String FileName = "/opt/l7vsd/userdata.dat";
29 * instance of this class (singleton)
31 protected static UserManager instance = null;
36 protected Vector<UserData> uservec = null;
37 protected Vector<UserData> olduservec = null;
39 protected UserManager() throws FileNotReadException {
40 // --- debug log (constructor) ---
41 Logger userLogger = Logger.getLogger(LogCategorySet.GUI_USER_MANAGE);
42 if (userLogger.isDebugEnabled()) {
43 userLogger.debug("11011 class UserManager created.");
45 // --- debug log (constructor) ---
47 uservec = new Vector<UserData>();
57 * @return instance of this class.
59 public synchronized static UserManager getInstance() {
60 // --- debug log (in method) ---
61 Logger userLogger = Logger.getLogger(LogCategorySet.GUI_USER_MANAGE);
62 if (userLogger.isDebugEnabled()) {
63 userLogger.debug("11012 UserManager::getInstance() in");
65 // --- debug log (in method) ---
67 if (instance == null) {
69 instance = new UserManager();
70 } catch (FileNotReadException e) {
71 userLogger.error("41002 Exception occured: " + e.getMessage());
72 // --- debug log (out method) ---
73 if (userLogger.isDebugEnabled()) {
74 userLogger.debug("11013 UserManager::getInstance() out return=null");
76 // --- debug log (out method) ---
81 // --- debug log (out method) ---
82 if (userLogger.isDebugEnabled()) {
83 userLogger.debug("11014 UserManager::getInstance() out return=(" + instance + ")");
85 // --- debug log (out method) ---
94 protected void saveToFile() throws FileNotWriteException {
95 // --- debug log (in method) ---
96 Logger userLogger = Logger.getLogger(LogCategorySet.GUI_USER_MANAGE);
97 if (userLogger.isDebugEnabled()) {
98 userLogger.debug("11015 UserManager::saveToFile() throws FileNotWriteException in");
100 // --- debug log (in method) ---
103 ObjectOutputStream oos = new ObjectOutputStream(
104 new FileOutputStream(FileName));
105 oos.writeObject(uservec);
107 } catch (IOException e) {
108 this.uservec = this.olduservec;
109 FileNotWriteException exception = new FileNotWriteException();
110 exception.setFileName(FileName);
111 exception.setErrMessage("Cannot write file.");
112 userLogger.error("41003 Exception occured: " + e.getMessage());
113 // --- debug log (out method) ---
114 if (userLogger.isDebugEnabled()) {
115 userLogger.debug("11016 UserManager::saveToFile() throws FileNotWriteException out exception=\"" + exception.toString() + "\"");
117 // --- debug log (out method) ---
121 // --- debug log (out method) ---
122 if (userLogger.isDebugEnabled()) {
123 userLogger.debug("11017 UserManager::saveToFile() throws FileNotWriteException out");
125 // --- debug log (out method) ---
133 protected void loadFromFile() throws FileNotReadException {
134 // --- debug log (in method) ---
135 Logger userLogger = Logger.getLogger(LogCategorySet.GUI_USER_MANAGE);
136 if (userLogger.isDebugEnabled()) {
137 userLogger.debug("11018 UserManager::loadFromFile() throws FileNotReadException in");
139 // --- debug log (in method) ---
142 ObjectInputStream ois = new ObjectInputStream(
143 new FileInputStream(FileName));
144 uservec = (Vector<UserData>) ois.readObject();
146 } catch (FileNotFoundException ex) {
147 FileNotReadException exception = new FileNotReadException();
148 exception.setFileName(FileName);
149 exception.setErrMessage("Cannot read file.");
150 userLogger.error("41004 Exception occured: " + ex.getMessage());
151 // --- debug log (out method) ---
152 if (userLogger.isDebugEnabled()) {
153 userLogger.debug("11019 UserManager::loadFromFile() throws FileNotReadException out exception=\"" + exception.toString() + "\"");
155 // --- debug log (out method) ---
157 } catch (IOException ex) {
158 FileNotReadException exception = new FileNotReadException();
159 exception.setFileName(FileName);
160 exception.setErrMessage("Catch IOException: " + ex.getMessage());
161 userLogger.error("41005 Exception occured: " + ex.getMessage());
162 // --- debug log (out method) ---
163 if (userLogger.isDebugEnabled()) {
164 userLogger.debug("11020 UserManager::loadFromFile() throws FileNotReadException out exception=\"" + exception.toString() + "\"");
166 // --- debug log (out method) ---
168 } catch (ClassNotFoundException ex) {
169 FileNotReadException exception = new FileNotReadException();
170 exception.setFileName(FileName);
171 exception.setErrMessage("Catch ClassNotFoundException.");
172 userLogger.error("41006 Exception occured: " + ex.getMessage());
173 // --- debug log (out method) ---
174 if (userLogger.isDebugEnabled()) {
175 userLogger.debug("11021 UserManager::loadFromFile() throws FileNotReadException out exception=\"" + exception.toString() + "\"");
177 // --- debug log (out method) ---
181 // --- debug log (out method) ---
182 if (userLogger.isDebugEnabled()) {
183 userLogger.debug("11022 UserManager::loadFromFile() throws FileNotReadException out");
185 // --- debug log (out method) ---
198 public UserData authUser(String userid, String userpass) {
199 // --- debug log (in method) ---
200 Logger userLogger = Logger.getLogger(LogCategorySet.GUI_USER_MANAGE);
201 if (userLogger.isDebugEnabled()) {
202 StringBuffer buf = new StringBuffer();
203 buf.append("UserManager::authUser(String userid, String userpass) in ");
204 buf.append("userid=\"" + userid + "\", ");
205 buf.append("userpass=\"" + userpass + "\"");
206 userLogger.debug("11023 " + buf.toString());
208 // --- debug log (in method) ---
211 if (userid != null || userpass != null) {
212 for (UserData data : uservec) {
213 if (data.userName.equals(userid) && data.passwd.equals(userpass)) {
220 // --- debug log (out method) ---
221 if (userLogger.isDebugEnabled()) {
222 StringBuffer buf = new StringBuffer();
223 buf.append("UserManager::authUser(String userid, String userpass) out ");
224 buf.append("return=(" + ret + ")");
225 userLogger.debug("11024 " + buf.toString());
227 // --- debug log (out method) ---
239 public void closeUser(HttpServletRequest request) {
240 // --- debug log (in method) ---
241 Logger userLogger = Logger.getLogger(LogCategorySet.GUI_USER_MANAGE);
242 if (userLogger.isDebugEnabled()) {
243 userLogger.debug("11025 UserManager::closeUser(HttpServletRequest request) in request=(" + request +")");
245 // --- debug log (in method) ---
247 if (request != null) {
248 HttpSession session = request.getSession();
249 if (session != null) {
250 session.invalidate();
254 // --- debug log (out method) ---
255 if (userLogger.isDebugEnabled()) {
256 userLogger.debug("11026 UserManager::closeUser(HttpServletRequest request) out");
258 // --- debug log (out method) ---
262 * check userid in userlist
267 public UserData findUser(String userid) {
268 // --- debug in (out method) ---
269 Logger userLogger = Logger.getLogger(LogCategorySet.GUI_USER_MANAGE);
270 if (userLogger.isDebugEnabled()) {
271 userLogger.debug("11027 UserManager::findUser(String userid) in userid=\"" + userid + "\"");
273 // --- debug log (in method) ---
276 if (userid != null) {
277 for (UserData data : uservec) {
278 if (data.userName.equals(userid)) {
284 // --- debug log (out method) ---
285 if (userLogger.isDebugEnabled()) {
286 userLogger.debug("11028 UserManager::findUser(String userid) out return=(" + ret + ")");
288 // --- debug log (out method) ---
293 * user data add in UserDatas
302 * UserData can't write
304 public boolean addUser(String userid, String password, int acl,
305 String description) throws FileNotWriteException {
306 // --- debug log (in method) ---
307 Logger userLogger = Logger.getLogger(LogCategorySet.GUI_USER_MANAGE);
308 if (userLogger.isDebugEnabled()) {
309 StringBuffer buf = new StringBuffer();
310 buf.append("UserManager::addUser(String userid, String password, int acl, String description) throws FileNotWriteException in ");
311 buf.append("userid=\"" + userid + "\", ");
312 buf.append("password=\"" + password + "\", ");
313 buf.append("acl=" + acl + ", ");
314 buf.append("description=\"" + description + "\"");
315 userLogger.debug("11029 " + buf.toString());
317 // --- debug log (in method) ---
319 if (userid == null || password == null || description == null) {
320 // --- debug log (out method) ---
321 if (userLogger.isDebugEnabled()) {
322 userLogger.debug("11030 UserManager::addUser(String userid, String password, int acl, String description) throws FileNotWriteException out return=false");
324 // --- debug log (out method) ---
327 UserData data = findUser(userid);
329 data = new UserData();
330 data.userName = userid;
331 data.passwd = password;
333 data.description = description;
338 // --- debug log (out method) ---
339 if (userLogger.isDebugEnabled()) {
340 userLogger.debug("11031 UserManager::addUser(String userid, String password, int acl, String description) throws FileNotWriteException out return=false");
342 // --- debug log (out method) ---
346 // --- debug log (out method) ---
347 if (userLogger.isDebugEnabled()) {
348 userLogger.debug("11032 UserManager::addUser(String userid, String password, int acl, String description) throws FileNotWriteException out return=true");
350 // --- debug log (out method) ---
362 * @throws FileNotWriteException
364 public boolean changeUser(UserData data) throws FileNotWriteException {
365 // --- debug log (in method) ---
366 Logger userLogger = Logger.getLogger(LogCategorySet.GUI_USER_MANAGE);
367 if (userLogger.isDebugEnabled()) {
368 userLogger.debug("11033 UserManager::changeUser(UserData data) throws FileNotWriteException in data=(" + data + ")");
370 // --- debug log (in method) ---
373 // --- debug log (out method) ---
374 if (userLogger.isDebugEnabled()) {
375 userLogger.debug("11034 UserManager::changeUser(UserData data) throws FileNotWriteException out return=false");
377 // --- debug log (out method) ---
380 UserData found = findUser(data.userName);
383 found.passwd = data.passwd;
384 found.acl = data.acl;
385 found.description = data.description;
388 // --- debug log (out method) ---
389 if (userLogger.isDebugEnabled()) {
390 userLogger.debug("11035 UserManager::changeUser(UserData data) throws FileNotWriteException out return=false");
392 // --- debug log (out method) ---
396 // --- debug log (out method) ---
397 if (userLogger.isDebugEnabled()) {
398 userLogger.debug("11036 UserManager::changeUser(UserData data) throws FileNotWriteException out return=true");
400 // --- debug log (out method) ---
405 * user data delete from UserDatas
410 public boolean delUser(String userid) throws FileNotWriteException {
411 // --- debug log (in method) ---
412 Logger userLogger = Logger.getLogger(LogCategorySet.GUI_USER_MANAGE);
413 if (userLogger.isDebugEnabled()) {
414 userLogger.debug("11037 UserManager::delUser(String userid) throws FileNotWriteException in userid=\"" + userid + "\"");
416 // --- debug log (in method) ---
418 if (userid == null) {
419 // --- debug log (out method) ---
420 if (userLogger.isDebugEnabled()) {
421 userLogger.debug("11038 UserManager::delUser(String userid) throws FileNotWriteException out return=false");
423 // --- debug log (out method) ---
426 UserData data = findUser(userid);
427 if (data != null && uservec.size() > 1) {
429 uservec.remove(data);
431 // --- debug log (out method) ---
432 if (userLogger.isDebugEnabled()) {
433 userLogger.debug("11039 UserManager::delUser(String userid) throws FileNotWriteException out return=true");
435 // --- debug log (out method) ---
439 // --- debug log (out method) ---
440 if (userLogger.isDebugEnabled()) {
441 userLogger.debug("11040 UserManager::delUser(String userid) throws FileNotWriteException out return=false");
443 // --- debug log (out method) ---
455 public Vector<UserData> getUserList() throws FileNotReadException {
456 // --- debug log (in/out method) ---
457 Logger userLogger = Logger.getLogger(LogCategorySet.GUI_USER_MANAGE);
458 if (userLogger.isDebugEnabled()) {
459 userLogger.debug("11041 UserManager::getUserList() in");
460 userLogger.debug("11042 UserManager::getUserList() out return=(" + uservec + ")");
462 // --- debug log (in/out method) ---
474 public void setUserList(Vector<UserData> uservec) throws FileNotWriteException {
475 // --- debug log (in method) ---
476 Logger userLogger = Logger.getLogger(LogCategorySet.GUI_USER_MANAGE);
477 if (userLogger.isDebugEnabled()) {
478 userLogger.debug("11043 UserManager::setUserList(Vector<UserData> uservec) in uservec=(" + uservec + ")");
480 // --- debug log (in method) ---
483 this.uservec = uservec;
486 // --- debug log (out method) ---
487 if (userLogger.isDebugEnabled()) {
488 userLogger.debug("11044 UserManager::setUserList(Vector<UserData> uservec) out");
490 // --- debug log (out method) ---
493 protected void deepCopy() {
494 this.olduservec = new Vector<UserData>();
495 for (UserData cur : this.uservec) {
496 UserData copy = new UserData(cur);
497 olduservec.add(copy);