Advertisement
Guest User

Password verification

a guest
Jan 27th, 2016
344
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 5.36 KB | None | 0 0
  1. package com.terminator_nl.UCL;
  2.  
  3. import java.awt.CardLayout;
  4. import java.awt.Color;
  5. import java.io.BufferedReader;
  6. import java.io.InputStreamReader;
  7. import java.io.OutputStream;
  8. import java.net.HttpURLConnection;
  9. import java.net.URL;
  10. import java.net.URLConnection;
  11.  
  12. public class Authenticator {
  13.     public static int lastHTTPRESPONSE= 0;
  14.     public static final int LOGGED_IN_SUCCESS = 0;
  15.     public static final int MIGRATEDACCOUNT = 1;
  16.     public static final int WRONGPASSWORD = 2;
  17.     public static final int OTHER = 3;
  18.     public static boolean isLaunchingGlobal = false;
  19.     public static int isPasswordCorrect(String username, String password){
  20.         int reply;
  21.         try {
  22.             String payload = "{\"agent\":{\"name\":\"Minecraft\",\"version\":1},\"password\":\"" + password + "\",\"username\":\"" + username + "\",\"clientToken\":\"b1629dd4-2d96-4e04-b35e-81638b10fc7d\"}";
  23.             reply = Authenticator.httpRequest(new URL(GlobalVariables.URLAUTHENTICATION), payload);
  24.             payload = null;
  25.         } catch (Exception e) {
  26.             e.printStackTrace();
  27.             return OTHER;
  28.         }
  29.         username = "I dont like";
  30.         password = "password thiefs";
  31.         return reply;
  32.     }
  33.    
  34.     static int httpRequest(URL url, String content) throws Exception {
  35.         byte[] contentBytes = content.getBytes("UTF-8");
  36.         URLConnection connection = url.openConnection();
  37.         connection.setDoInput(true);
  38.         connection.setDoOutput(true);
  39.         connection.setRequestProperty("Accept-Charset", "UTF-8");
  40.         connection.setRequestProperty("Content-Type", "application/json");
  41.         connection.setRequestProperty("Content-Length", Integer.toString(contentBytes.length));
  42.         OutputStream requestStream = connection.getOutputStream();
  43.         requestStream.write(contentBytes, 0, contentBytes.length);
  44.         requestStream.close();
  45.         String response = "";
  46.         BufferedReader responseStream;
  47.         if (((HttpURLConnection) connection).getResponseCode() == 200) {
  48.             responseStream = new BufferedReader(new InputStreamReader(connection.getInputStream(), "UTF-8"));
  49.         } else {
  50.             responseStream = new BufferedReader(new InputStreamReader(((HttpURLConnection) connection).getErrorStream(), "UTF-8"));
  51.         }
  52.         response = responseStream.readLine();
  53.         responseStream.close();
  54.         lastHTTPRESPONSE = ((HttpURLConnection) connection).getResponseCode();
  55.         content = null;
  56.         contentBytes = null;
  57.         connection = null;
  58.         if (lastHTTPRESPONSE == 200){
  59.             return LOGGED_IN_SUCCESS;
  60.         }else if(lastHTTPRESPONSE == 403){
  61.             if(response.contains("migrate")){
  62.                 return MIGRATEDACCOUNT;
  63.             }else if(response.contains("Invalid")){
  64.                 return WRONGPASSWORD;
  65.             }
  66.         }else{
  67.             return OTHER;
  68.         }
  69.         return OTHER;
  70.     }
  71.    
  72.     public static void PromptForPassword(boolean IsLaunching){
  73.         isLaunchingGlobal = IsLaunching;
  74.         System.out.println("Opening account window...");
  75.         Launcher_GUI.Username.setEditable(IsLaunching == false);
  76.         Launcher_GUI.btnLogIn.setEnabled(true);
  77.         if(IsLaunching){
  78.             Launcher_GUI.UserMessagePassword.setText("To change the username do: Abort -> Options -> Edit profile");
  79.             Launcher_GUI.btnLogIn.setText("Log in");
  80.             Launcher_GUI.CancelButton.setText("Abort launch");
  81.         }else{
  82.             Launcher_GUI.UserMessagePassword.setText("Please enter your minecraft credentials below.");
  83.             Launcher_GUI.btnLogIn.setText("Confirm");
  84.             Launcher_GUI.CancelButton.setText("Cancel");
  85.         }
  86.         CardLayout cardLayout = (CardLayout) Launcher_GUI.MainWindow.getLayout();
  87.         cardLayout.show(Launcher_GUI.MainWindow, "TAB_ASKPASSWORD");
  88.         new Thread(){
  89.             @Override
  90.             public void run(){
  91.                 int ReturnCode;
  92.                 do{
  93.                     synchronized(Main_WindowManager.passwordSubmitlock){
  94.                         try {
  95.                             Main_WindowManager.passwordSubmitlock.wait();
  96.                         } catch (InterruptedException e) {
  97.                             e.printStackTrace();
  98.                         }
  99.                     }
  100.                     Launcher_GUI.ProgressBarLoggingIn.setForeground(new Color(51, 153, 255));
  101.                     Launcher_GUI.ProgressBarLoggingIn.setString("Contacting Mojang...");
  102.                     Launcher_GUI.ProgressBarLoggingIn.setIndeterminate(true);
  103.                     ReturnCode = isPasswordCorrect(Launcher_GUI.Username.getText(), new String(Launcher_GUI.Password.getPassword()));
  104.                     Launcher_GUI.ProgressBarLoggingIn.setForeground(new Color(0, 0, 0, 0));
  105.                     Launcher_GUI.ProgressBarLoggingIn.setString("");
  106.                     Launcher_GUI.ProgressBarLoggingIn.setIndeterminate(false);
  107.                     if(ReturnCode == MIGRATEDACCOUNT){
  108.                         Launcher_GUI.UserMessagePassword.setText("Your account has been migrated, please use your E-mail address as username.");
  109.                     }else if(ReturnCode == WRONGPASSWORD){
  110.                         Launcher_GUI.UserMessagePassword.setText("Incorrect username or password");
  111.                     }else if(ReturnCode == OTHER){
  112.                         Launcher_GUI.UserMessagePassword.setText("An error has occurred. Please try again later.");
  113.                     }else if(ReturnCode == LOGGED_IN_SUCCESS){
  114.                         Launcher_GUI.UserMessagePassword.setText("Successfully logged in!");
  115.                         GlobalVariables.setJSONData("Username", Launcher_GUI.Username.getText());
  116.                     }
  117.                 }while(ReturnCode != LOGGED_IN_SUCCESS);
  118.                 Launcher_GUI.txtCurrentlyLoggedIn.setText("Logged in as: " + Launcher_GUI.Username.getText());
  119.                 synchronized(Main_WindowManager.PasswordInputLock){
  120.                     Main_WindowManager.PasswordInputLock.notify();
  121.                 }
  122.             }
  123.         }.start();
  124.     }
  125. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement