1 14 15 package echoserver; 16 17 import org.quickserver.net.server.*; 18 import java.io.*; 19 import java.util.*; 20 import org.quickserver.net.AppException; 21 22 25 public class EchoAuthenticatorHandler extends QuickAuthenticationHandler { 26 public AuthStatus askAuthentication(ClientHandler handler) 27 throws IOException, AppException { 28 Data data = (Data) handler.getClientData(); 29 data.setLastAsked("U"); 30 handler.sendClientMsg("User Name :"); 31 return null; } 33 34 public AuthStatus handleAuthentication(ClientHandler handler, String command) 35 throws IOException, AppException { 36 Data data = (Data)handler.getClientData(); 37 38 if(data.getLastAsked().equals("U")) { 39 data.setUsername(command); 40 data.setLastAsked("P"); 41 handler.sendClientMsg("Password :"); 42 } else if(data.getLastAsked().equals("P")) { 43 data.setPassword(command.getBytes()); 44 45 if(validate(handler, data.getUsername(), data.getPassword())) { 46 handler.sendClientMsg("Auth OK"); 47 data.setPassword(null); 48 return AuthStatus.SUCCESS; 49 } else { 50 handler.sendClientMsg("Auth Failed"); 51 data.setPassword(null); 52 return AuthStatus.FAILURE; 53 } 54 } else { 55 throw new AppException("Unknown LastAsked!"); 56 } 57 58 return null; } 60 61 65 protected static boolean validate(ClientHandler handler, String username, byte[] password) { 66 return Arrays.equals(password,username.getBytes()); 67 } 68 } 69 | Popular Tags |