1 19 20 package org.lucane.server.auth; 21 22 import org.lucane.common.*; 23 import org.lucane.common.concepts.GroupConcept; 24 import org.lucane.common.concepts.UserConcept; 25 import org.lucane.common.net.ObjectConnection; 26 import org.lucane.server.ConnectInfoManager; 27 import org.lucane.server.Server; 28 import org.lucane.server.store.Store; 29 30 import java.util.Map ; 31 import java.util.HashMap ; 32 33 37 public class DemoAuthenticator extends Authenticator 38 { 39 public AuthResponse authenticate(AuthRequest request) 40 { 41 Store store = Server.getInstance().getStore(); 42 ConnectInfo userInfo = request.getUserInfo(); 43 44 UserConcept user = null; 46 try { 47 user = store.getUserStore().getUser(userInfo.getName()); 48 } catch(Exception e) { 49 e.printStackTrace(); 50 } 51 52 if(user == null) 54 { 55 try { 56 user = new UserConcept(userInfo.getName(), request.getMd5Passwd(), 57 userInfo.getName(), "", "en", false, "org.lucane.applications.quicklaunch"); 58 store.getUserStore().storeUser(user); 59 GroupConcept allUsers = store.getGroupStore().getGroup("AllUsers"); 60 allUsers.addUser(user); 61 store.getGroupStore().updateGroup(allUsers); 62 Logging.getLogger().info("Created user '" + userInfo.getName() + "'."); 63 } catch(Exception e) { 64 Logging.getLogger().warning("Unable to create user '" + userInfo.getName() + "' : " + e); 65 return new AuthResponse(AuthResponse.LOGIN_DISABLED); 66 } 67 } 68 69 if(user.isLocked()) 70 return new AuthResponse(AuthResponse.USER_LOCKED); 71 72 if(!store.getUserStore().checkUserPassword(user, request.getMd5Passwd())) 73 return new AuthResponse(AuthResponse.BAD_CREDENTIALS); 74 75 if(userInfo.isClient() && ConnectInfoManager.getInstance().isConnected(userInfo)) 77 { 78 ConnectInfo oldUser = ConnectInfoManager.getInstance(). 79 getCompleteConnectInfo(request.getUserInfo()); 80 81 try { 82 Map action = new HashMap (); 83 action.put("command", "DISCONNECT"); 84 ObjectConnection oc = Server.getInstance().sendMessageTo(oldUser, "Client", action); 85 oc.close(); 86 } catch (Exception e) { 87 } 89 ConnectInfoManager.getInstance().removeConnectInfo(oldUser); 90 } 91 92 ConnectInfoManager.getInstance().addConnectInfo(userInfo); 94 95 return new AuthResponse(AuthResponse.AUTH_ACCEPTED); 96 } 97 } | Popular Tags |