1 19 20 package org.lucane.server.auth; 21 22 import org.lucane.common.*; 23 import org.lucane.common.concepts.UserConcept; 24 import org.lucane.common.net.ObjectConnection; 25 import org.lucane.server.ConnectInfoManager; 26 import org.lucane.server.Server; 27 import org.lucane.server.store.Store; 28 29 import java.util.Map ; 30 import java.util.HashMap ; 31 32 public class DefaultAuthenticator extends Authenticator 33 { 34 public AuthResponse authenticate(AuthRequest request) 35 { 36 Store store = Server.getInstance().getStore(); 37 ConnectInfo userInfo = request.getUserInfo(); 38 39 UserConcept user = null; 41 try { 42 user = store.getUserStore().getUser(userInfo.getName()); 43 } catch(Exception e) { 44 e.printStackTrace(); 45 } 46 47 if(user == null) 48 return new AuthResponse(AuthResponse.BAD_CREDENTIALS); 49 50 if(user.isLocked()) 51 return new AuthResponse(AuthResponse.USER_LOCKED); 52 53 if(!store.getUserStore().checkUserPassword(user, request.getMd5Passwd())) 54 return new AuthResponse(AuthResponse.BAD_CREDENTIALS); 55 56 if(userInfo.isClient() && ConnectInfoManager.getInstance().isConnected(userInfo)) 58 { 59 ConnectInfo oldUser = ConnectInfoManager.getInstance(). 60 getCompleteConnectInfo(request.getUserInfo()); 61 62 try { 63 Map action = new HashMap (); 64 action.put("command", "DISCONNECT"); 65 ObjectConnection oc = Server.getInstance().sendMessageTo(oldUser, "Client", action); 66 oc.close(); 67 } catch (Exception e) { 68 } 70 ConnectInfoManager.getInstance().removeConnectInfo(oldUser); 71 } 72 73 ConnectInfoManager.getInstance().addConnectInfo(userInfo); 75 76 return new AuthResponse(AuthResponse.AUTH_ACCEPTED); 77 } 78 } | Popular Tags |