KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > opensymphony > user > provider > file > FileCredentialsProvider


1 /*
2  * Copyright (c) 2002-2003 by OpenSymphony
3  * All rights reserved.
4  */

5 package com.opensymphony.user.provider.file;
6
7 import com.opensymphony.user.Entity;
8
9 import org.apache.commons.logging.Log;
10 import org.apache.commons.logging.LogFactory;
11
12 import java.util.ArrayList JavaDoc;
13 import java.util.Collections JavaDoc;
14 import java.util.List JavaDoc;
15 import java.util.Properties JavaDoc;
16
17
18 /**
19 * Following properties are <b>required</b>:
20 * <ul>
21 * <li><b>storeFile</b> - the absolute path to the store file (<i>ex:c:\\users.store</i>)</li>
22 * </ul>
23 */

24 public class FileCredentialsProvider implements com.opensymphony.user.provider.CredentialsProvider {
25     //~ Static fields/initializers /////////////////////////////////////////////
26

27     private static final Log log = LogFactory.getLog(FileCredentialsProvider.class);
28
29     //~ Instance fields ////////////////////////////////////////////////////////
30

31     protected FileUsersCache userCache;
32
33     //~ Methods ////////////////////////////////////////////////////////////////
34

35     public boolean authenticate(String JavaDoc name, String JavaDoc password) {
36         FileUser user = (FileUser) userCache.users.get(name);
37
38         if (user == null) {
39             return false;
40         }
41
42         return password.equals(user.password);
43     }
44
45     public boolean changePassword(String JavaDoc name, String JavaDoc password) {
46         FileUser user = (FileUser) userCache.users.get(name);
47
48         if (user == null) {
49             return false;
50         }
51
52         user.password = password;
53
54         return userCache.store();
55     }
56
57     public boolean create(String JavaDoc name) {
58         if (userCache.users.containsKey(name)) {
59             return false;
60         }
61
62         FileUser user = new FileUser();
63         user.name = name;
64         userCache.users.put(name, user);
65
66         return userCache.store();
67     }
68
69     public void flushCaches() {
70         userCache.store();
71     }
72
73     public boolean handles(String JavaDoc name) {
74         if (userCache == null) {
75             return false;
76         }
77
78         return userCache.users.containsKey(name);
79     }
80
81     public boolean init(Properties JavaDoc properties) {
82         return true;
83     }
84
85     public List JavaDoc list() {
86         return Collections.unmodifiableList(new ArrayList JavaDoc(userCache.users.keySet()));
87     }
88
89     public boolean load(String JavaDoc name, Entity.Accessor accessor) {
90         accessor.setMutable(true);
91
92         return true;
93     }
94
95     public boolean remove(String JavaDoc name) {
96         boolean rv = userCache.users.remove(name) != null;
97
98         return rv && userCache.store();
99     }
100
101     public boolean store(String JavaDoc name, Entity.Accessor accessor) {
102         return userCache.store();
103     }
104 }
105
Popular Tags