View Javadoc
1 package org.argosfields.service; 2 3 import org.apache.commons.lang.NullArgumentException; 4 import org.apache.commons.logging.Log; 5 import org.apache.commons.logging.LogFactory; 6 import org.argosfields.multi.server.GameServer; 7 import org.argosfields.multi.server.IGameServer; 8 import org.argosfields.multi.server.Session; 9 import org.argosfields.persistence.Account; 10 import org.eclipse.jface.preference.IPreferenceStore; 11 import org.eclipse.jface.preference.JFacePreferences; 12 13 /*** 14 * LoginManager.java 15 * @author Xavier Cho 16 * @version $Revision: 1.2 $ $Date: 2004/04/17 08:59:18 $ 17 */ 18 public class LoginManager implements ILoginManager { 19 20 private static Log log = LogFactory.getLog(LoginManager.class); 21 22 private IAccountManager accountManager; 23 24 /*** 25 * @see org.argosfields.service.ILoginManager#login(java.lang.String, 26 * java.lang.String) 27 */ 28 public String login(final String userName, final String password) 29 throws LoginException { 30 31 if (userName == null) { 32 throw new NullArgumentException("userName"); 33 } 34 35 if (password == null) { 36 throw new NullArgumentException("password"); 37 } 38 39 if (log.isDebugEnabled()) { 40 log.debug("Authenticating user : " + userName); 41 } 42 43 Account account = accountManager.getAccount(userName); 44 if (account == null) { 45 if (log.isDebugEnabled()) { 46 log.debug("The specified user name does not exist : " 47 + userName); 48 } 49 50 throw new LoginException("error.invalid.user"); 51 } else { 52 if (!password.equals(account.getPassword())) { 53 if (log.isDebugEnabled()) { 54 log.debug("Incorrect password for user : " + userName); 55 } 56 57 throw new LoginException("error.incorrect.password"); 58 } 59 } 60 61 IGameServer server = GameServer.getInstance(); 62 Session session = server.login(userName); 63 64 if (log.isDebugEnabled()) { 65 log.debug("User has been authenticated successfully : " 66 + userName); 67 } 68 69 return session.getSessionId(); 70 } 71 72 /*** 73 * @see org.argosfields.service.ILoginManager#logout(java.lang.String) 74 */ 75 public void logout(final String sessionId) { 76 if (sessionId == null) { 77 throw new NullArgumentException("sessionId"); 78 } 79 80 IGameServer server = GameServer.getInstance(); 81 server.logout(sessionId); 82 } 83 84 /*** 85 * @see org.argosfields.service.ILoginManager#createAccount(org.argosfields.persistence.Account) 86 */ 87 public String createAccount(final Account account) 88 throws CreateAccountException, LoginException { 89 90 IPreferenceStore preferences = JFacePreferences.getPreferenceStore(); 91 if (!preferences.getBoolean("allow.new.user")) { 92 throw new CreateAccountNotAllowedException(); 93 } 94 95 String userName = account.getUserName(); 96 if (accountManager.getAccount(userName) == null) { 97 accountManager.createAccount(account); 98 99 IGameServer server = GameServer.getInstance(); 100 Session session = session = server.login(userName); 101 102 return session.getSessionId(); 103 } else { 104 if (log.isDebugEnabled()) { 105 log.debug("The specified user name already exists : " 106 + userName); 107 } 108 109 throw new DuplicateAccountException(); 110 } 111 } 112 113 /*** 114 * @return Returns the accountManager. 115 */ 116 public IAccountManager getAccountManager() { 117 return accountManager; 118 } 119 120 /*** 121 * @param accountManager 122 * The accountManager to set. 123 */ 124 public void setAccountManager(final IAccountManager accountManager) { 125 this.accountManager = accountManager; 126 } 127 }

This page was automatically generated by Maven