1 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 ; 13 import java.util.Collections ; 14 import java.util.List ; 15 import java.util.Properties ; 16 17 18 24 public class FileCredentialsProvider implements com.opensymphony.user.provider.CredentialsProvider { 25 27 private static final Log log = LogFactory.getLog(FileCredentialsProvider.class); 28 29 31 protected FileUsersCache userCache; 32 33 35 public boolean authenticate(String name, String 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 name, String 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 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 name) { 74 if (userCache == null) { 75 return false; 76 } 77 78 return userCache.users.containsKey(name); 79 } 80 81 public boolean init(Properties properties) { 82 return true; 83 } 84 85 public List list() { 86 return Collections.unmodifiableList(new ArrayList (userCache.users.keySet())); 87 } 88 89 public boolean load(String name, Entity.Accessor accessor) { 90 accessor.setMutable(true); 91 92 return true; 93 } 94 95 public boolean remove(String name) { 96 boolean rv = userCache.users.remove(name) != null; 97 98 return rv && userCache.store(); 99 } 100 101 public boolean store(String name, Entity.Accessor accessor) { 102 return userCache.store(); 103 } 104 } 105 | Popular Tags |