| 1 16 package org.jmanage.webui; 17 18 import org.jmanage.core.auth.UserManager; 19 import org.jmanage.core.auth.User; 20 import org.jmanage.core.auth.AuthConstants; 21 import org.jmanage.core.util.PasswordField; 22 import org.jmanage.core.util.JManageProperties; 23 import org.jmanage.core.crypto.Crypto; 24 25 import java.net.Socket ; 26 import java.net.InetAddress ; 27 import java.io.OutputStream ; 28 29 37 public class Shutdown { 38 39 private static int _port = Integer.parseInt(JManageProperties.getStopPort()); 40 private static String _key; 41 42 public static void main(String [] args) throws Exception { 43 UserManager userManager = UserManager.getInstance(); 44 User user = null; 45 char[] password = null; 46 int invalidAttempts = 0; 47 48 if(args.length == 1){ 49 password = args[0].toCharArray(); 50 user = userManager.verifyUsernamePassword( 51 AuthConstants.USER_ADMIN, password); 52 53 if(user == null){ 54 invalidAttempts ++; 55 } 56 } 57 58 while(user == null){ 59 if(invalidAttempts > 0){ 60 System.out.println("Invalid Admin Password."); 61 } 62 63 password = PasswordField.getPassword("Enter password:"); 64 65 user = userManager.verifyUsernamePassword( 66 AuthConstants.USER_ADMIN, password); 67 invalidAttempts ++; 68 if(invalidAttempts >= 3){ 69 break; 70 } 71 } 72 73 74 if(user == null){ 75 System.out.println("Number of invalid attempts exceeded. Exiting !"); 76 return; 77 } 78 79 final JettyStopKey stopKey = new JettyStopKey(new String (password)); 80 _key = stopKey.toString(); 81 82 System.out.println("Shutting down..."); 83 84 stop(); 85 } 86 87 90 static void stop(){ 91 try{ 92 Socket s = new Socket (InetAddress.getLocalHost(), _port); 93 OutputStream out = s.getOutputStream(); 94 out.write((_key+"\r\nstop\r\n").getBytes()); 95 out.flush(); 96 s.shutdownOutput(); 97 s.close(); 98 }catch (Exception e){ 99 e.printStackTrace(); 100 } 101 } 102 } 103 | Popular Tags |