1 /* 2 * Replica is published under the terms 3 * of the Apache Software License. 4 */ 5 package replica.server.commands; 6 7 import java.util.StringTokenizer; 8 9 import replica.core.ApplicationCommand; 10 import replica.core.ApplicationMessage; 11 import replica.group.GroupManager; 12 import replica.session.Session; 13 14 /*** 15 * Connects a user to the server. 16 * 17 * @author Pedro Costa 18 * @author Helder Silva 19 * @since 20/Jan/2004 20 */ 21 public class ConnectCommand extends ApplicationCommand { 22 23 GroupManager groupManager; 24 25 /*** 26 * 27 */ 28 public ConnectCommand() { 29 super(); 30 } 31 32 /* (non-Javadoc) 33 * @see replica.server.commands.ServerCommand#execute(replica.server.ServerCommandVO) 34 */ 35 public Object execute(ApplicationMessage arg) { 36 37 String receivedCommand = arg.getBody().toString(); 38 39 StringTokenizer tokenizer = new StringTokenizer(receivedCommand); 40 41 tokenizer.nextToken(); 42 43 String connectString = tokenizer.nextToken(); 44 45 if( connectString == null ) 46 return "Error connecting. No connect string provided in format user[/password][@database]"; 47 48 tokenizer = new StringTokenizer( connectString, "@"); 49 50 if( tokenizer.countTokens() < 1 ) 51 return "Error connecting. Connect string must be in format user[/password][@database]"; 52 53 String userAndPassword = tokenizer.nextToken(); 54 55 String database = null; 56 57 if( tokenizer.countTokens() > 0 ) 58 database = tokenizer.nextToken(); 59 60 tokenizer = new StringTokenizer(userAndPassword, "/"); 61 62 String user = tokenizer.nextToken(); 63 String password = null; 64 65 if( tokenizer.countTokens() > 0 ) 66 password = tokenizer.nextToken(); 67 68 Session session = getSessionManager().getSession(arg.getSessionID()); 69 70 getSessionManager().login(session, user, password); 71 72 if( database != null ){ 73 session.putObject("DATABASE_NAME", database); 74 arg.putHeader("DATABASE_NAME", database); 75 } 76 77 arg.putHeader("USER", user); 78 if( password != null ) 79 arg.putHeader("PASSWORD", password); 80 81 // replicate the session to the group members 82 getGroupManager().sendMessage( arg); 83 84 return "Connected."; 85 } 86 87 /*** 88 * @return 89 */ 90 public GroupManager getGroupManager() { 91 return groupManager; 92 } 93 94 /*** 95 * @param manager 96 */ 97 public void setGroupManager(GroupManager manager) { 98 groupManager = manager; 99 } 100 101 }

This page was automatically generated by Maven