Gå til innhold

løst: web-loginproblemer for javaprogrammet


Anbefalte innlegg

javaprogrammet jeg lager skal logge inn på denne websiden:

 

https://www.mikrotik.com/client/index.php

 

det fungerte tidligere, men nå har mikrotik 'oppgradert' sidene sine, og da fungerer ikke den forrige login-logikken (enkel POST-ing av brukernavn/passord)

 

hvis man studerer kildekoden så ser man at det kjøres en javascript-funksjon på bla. passordet og en unik verdi før man kan sende inn POST'en til sida.

 

dette er funksjonen som kjøres når sida postes:

onsubmit="return hash('uni_id', 'passwd', 'real_pass2');

 

denne funksjonen må altså returnere true før man kan submitte.

 

Den unike verdien ('uni_id') er unik for hver gang man reloader sida

 

kildekoden til funksjonen:

function hash(md5var, passvar, real_pass) { // hash funkcija
   var uni_id = document.getElementById( md5var );
   var passwd = document.getElementById( passvar );
   var realpass = document.getElementById( real_pass );

   if (uni_id) {
if (passwd) {
    normalstring = uni_id.value + passwd.value;
    hashstring = hex_md5(normalstring);
    realpass.value = hashstring;
    return true;
} else {
    alert("Incorrect password!");
    return false;
}
   } else {
alert("Uni_id=null");
return false;
   }
}

 

så langt har jeg kommet:

 

- først henter jeg en blank login-side uten noe posting, og henter du den unike-iden fra denne.

- deretter forsøker jeg å poste de variablene jeg har, men det ser ikke ut til at jeg får til å poste slik at javascriptfunksjonen returnerer true..

 

en bit av kildekoden:

  	String html = "";
 	
        // Construct data
        String data = URLEncoder.encode(usernameField, "UTF-8") + "=" + URLEncoder.encode(username, "UTF-8");
        data += "&" + URLEncoder.encode(passwordField, "UTF-8") + "=" + URLEncoder.encode(password, "UTF-8");
        data += "&" + URLEncoder.encode("uni_id", "UTF-8") + "=" + URLEncoder.encode(uni_id, "UTF-8");
        // login
        URL url = new URL(urlLogin); 
        URLConnection conn = url.openConnection();
        conn.setDoOutput(true);
        OutputStreamWriter wr = new OutputStreamWriter(conn.getOutputStream());
        wr.write(data);
        wr.flush();
    
        // Get the response
        BufferedReader rd = new BufferedReader(new InputStreamReader(conn.getInputStream()));
        String line;
        while ((line = rd.readLine()) != null) {
            // Process line...
         //System.out.println(line);
         html += line;
        }

 

har noen en smart idé på hvordan man skal få logget inn skikkelig?

 

og ja, jeg har riktig brukernavn/passord :)

Endret av diZrupt0r
Lenke til kommentar
Videoannonse
Annonse

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...