1 24 25 package com.rift.coad.lib.security.user.xml; 27 28 import java.util.Map ; 30 31 import org.apache.log4j.Logger; 33 34 import com.rift.coad.lib.security.login.AuthValues; 36 import com.rift.coad.lib.security.login.LoginHandler; 37 import com.rift.coad.lib.security.login.LoginException; 38 import com.rift.coad.lib.security.login.LoginInfoHandler; 39 import com.rift.coad.lib.security.UserSession; 40 41 47 public class XMLLoginHandler implements LoginHandler { 48 49 private Logger log = 51 Logger.getLogger(XMLLoginHandler.class.getName()); 52 private Map users = null; 53 private UserSession user = null; 54 55 58 public XMLLoginHandler(Map users) { 59 this.users = users; 60 } 61 62 69 public UserSession getUserInfo() throws LoginException { 70 if (user == null) { 71 throw new LoginException( 72 "No valid login request has been processed by this object."); 73 } 74 return user; 75 } 76 77 78 86 public boolean login(LoginInfoHandler loginInfoHandler) 87 throws LoginException { 88 try { 89 Map parameters = loginInfoHandler.getInfo(); 90 String username = (String )parameters.get(AuthValues.USERNAME); 91 if (username == null) { 92 throw new LoginException( 93 "The login information handler has not supplied the " + 94 "username"); 95 } 96 UserData userData = (UserData)users.get(username); 97 if (userData == null) { 98 log.debug("Username [" + username + "] was not found."); 99 return false; 100 } 101 String password = (String )parameters.get(AuthValues.PASSWORD); 102 if (userData.getPassword().equals(password) == false) { 103 return false; 104 } 105 user = userData.getUser(); 106 return true; 107 } catch (Exception ex) { 108 throw new LoginException("Failed to log the user in because : " + 109 ex.getMessage(),ex); 110 } 111 } 112 } 113 | Popular Tags |