Einloggen auf Website

Status
Nicht offen für weitere Antworten.

letdoch

Aktives Mitglied
Schönen Guten Tag ich sitze jetzt seit einigen Tagen an einem Problem, bei welchem ich mir die Zähne ausbeiße.

Ich will von einer Login-gesicherten Seite, die dahinter liegende, sprich die geschützte Seite auslesen. Die Logindaten liegen mir vor sowie auch der Quelltext der Loginseite.

Meine Frage ist grundsätzlich: Wie kann ich in diesem Fall in einem Javaprogramm den Loginvorgang bewältigen?

Dazu gebe ich noch Infos, die ich bereits gesammallte habe:

1. die URL die aufgerufen wird lautet im Prinzip erstmal "http://www.xyz.de"
2. Die Loginseite selbst ist durch "htaccess" gesichert
--> sprich ein doppel login
3. Der eigentliche Loginvorgang läuft per "POST" ab
4. Bei dem Login wird ein Cookie für die gesamte Sitzung gesetzt

Quelltext der Seite:
HTML:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de" lang="de">
<head>
<!-- <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> -->
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<meta http-equiv="Pragma" content="no-cache">
<meta http-equiv="expires" content="0">
<title>&nbsp;Login</title>
<meta name="author" content="">
<meta name="copyright" content="">
<meta name="date" content="">
<meta name="description" content="">
<meta name="keywords" content="">
<meta name="publisher" content="">
<meta name="robots" content="ALL">
<link rel="stylesheet" type="text/css" href="css/xyz.agent.css" media="screen" />

<link rel="stylesheet" type="text/css" href="js/ext/resources/css/ext-all.css" />
<link rel="stylesheet" type="text/css" href="js/ext/examples.css" />
<link rel="stylesheet" type="text/css" href="js/ext/resources/css/xtheme-gray.css" />
<link rel="stylesheet" type="text/css" href="js/ext/resources/css/xtheme-gray.css" />

<script type="text/javascript" src="js/jquery/jquery-1.2.6.pack.js"></script>
<script type="text/javascript" src="js/jquery/widgets/animatedcollapse.js"></script>

<script type="text/javascript" src="js/sj_agent.js"></script>
<script type="text/javascript" src="js/sj_agent_ajax.js"></script>

<script type="text/javascript" src="js/ext/adapter/ext/ext-base.js"></script>

<script type="text/javascript" src="js/ext/ext-all.js"></script>


<script type="text/javascript" src="js/ext/examples.js"></script>

<script type="text/javascript" src="js/application.js"></script>
<script type="text/javascript" src="js/ResourceManager.js"></script>

<link rel="shortcut icon" href="favicon.ico" type="image/x-icon" />
<script type="text/javascript">
			Ext.onReady(function(){
				xyz.sendNotification('{"success":"empty"}');
			});
		</script>
</head>

<body onload="updateTakenCharacters();">
<div id="pageSpacer">&nbsp;</div>
<div id="page">
<div id="pageContent">
<div id="pageTitle">Login</div>
<div id="pageHeadline">Herzlich willkommen</div>
Um das Interface benutzen zu können, müssen Sie sich mit den Ihnen zur Verfügung gestellten Benutzerdaten anmelden.<br />
<hr />
<div id="ajaxResponse"></div>
 <!-- LoginForm begin -->
<div class="tiny">
<form id="agentLoginForm" name="agentLoginForm"
	action="?controller=login.action" method="post"
	enctype="multipart/form-data"><input type="hidden"
	name="agentLoginFormSubmitted" value="1" />
<ul class="tiny">

	<li class="first header"><label for="agentLogin">Benutzer</label><input
		name="submit" type="image" src="img/spacer.gif" style="border:0px" /></li>
	<li><input type="text" id="agentLogin" name="agentLogin" size="20"
		value="" /></li>
	<li class="header"><label class="required" for="agentPassword">Passwort</label></li>
	<li class="last"><input type="password" id="agentPassword"
		name="agentPassword" size="20" /></li>
</ul>
</form>
</div>

<ul class="formButtons">
	<li><a href="javascript:document.agentLoginForm.submit()"
		title="Anmelden">Anmelden</a></li>

</ul>

<!-- agentLoginForm end -->

Mein derzeit größtes Problem ist, dass ich es nicht scharfe mich per URL einzuloggen. Damit meine ich vom Schema her: "http://xyz.de/?name=lolrofl&pw=cool"

Aus dem Quelltext erschließt sich mir, dass für den Login 4 Variablen wichtig sind:

controller=login.action
agentLoginFormSubmitted=1
agentLogin=DEINNAME
agentPassword=DEINPASSWORT

Das Ding ist nur, selbst wenn ich also folgenden Link erstelle und auch nutze(im Browese selbst):
"http://www.xyz.de/?controller=login.action&agentLoginFormSubmitted=1&agentlogin=lol&agentPassword=rofl"
gibt mir die Seite selber den Fehler zurück, dass ich keinen Benutzernamen und kein Passwort eingegeben habe.

Wenn ich den Quelltext analysiere, will
HTML:
<li class="header"><label class="required" for="agentPassword">Passwort</label></li>
	<li class="last"><input type="password" id="agentPassword"
		name="agentPassword" size="20" /></li>
auch gar keine Value haben.

Was mache ich falsch?
 
U

Unregistriert

Gast
Der Server erwartet HTTP POST, nicht GET. Guck dir mal URL#openConnection() an. Wenn das Protokoll HTTP ist, bekommst du eine HTTPURLConnection zurück und kannst die entsprechend in den POST modus setzen.
 

Fry

Aktives Mitglied
Hallo,

wie ist denn dein Code zum Einloggen? Wenn du die URL eingibst ist das glaube ich ja per GET und nicht per POST. Hast du denn mal versucht dich per Code mit POST einzuloggen oder immer die URL nachgebaut?

Edit: ok zu langsam :)

Gruß
Fry
 

letdoch

Aktives Mitglied
Der Server erwartet HTTP POST, nicht GET. Guck dir mal URL#openConnection() an. Wenn das Protokoll HTTP ist, bekommst du eine HTTPURLConnection zurück und kannst die entsprechend in den POST modus setzen.

Ich habe es bereits mit urlConnection gemacht, jedoch passiert da auch nichts anderes.

Mal zum Grundverständnis: Ne gebaute UML wie oben beschrieben, ist also GET-Methode?

Hiermal der geschriebene Quelltext, den ich bereits geschrieben hatte:

HTML:
   public void Login (String u1, String u2, String pw1, String pw2, URL url1, URL url2){
        final String USERNAME = u1;
        final String PASSWORT = pw1;
        Authenticator.setDefault(new Authenticator(){
            protected PasswordAuthentication getPasswordAuthentication() {
                return new PasswordAuthentication(USERNAME,PASSWORT.toCharArray());
                }
            }
        );
        try{
            String post = URLEncoder.encode("agentLoginFormSubmitted", "iso-8859-1") + "=" + URLEncoder.encode("1", "iso-8859-1");
            post += "&" + URLEncoder.encode("agentLogin", "iso-8859-1") + "=" + URLEncoder.encode(u2, "iso-8859-1");
            post += "&" + URLEncoder.encode("password", "iso-8859-1") + "=" + URLEncoder.encode(pw2, "iso-8859-1");
            post += "&" + URLEncoder.encode("controller", "iso-8859-1") + "=" + URLEncoder.encode("login.action", "iso-8859-1");
            s=post;
            HttpURLConnection urlConn;
            urlConn=(HttpURLConnection)url2.openConnection();
            urlConn.setRequestMethod("POST");
            urlConn.setDoInput(true);
            urlConn.setDoOutput(true);
            urlConn.setUseCaches (false);
            urlConn.setAllowUserInteraction(true);
            urlConn.setFollowRedirects(true);
            urlConn.setInstanceFollowRedirects(true);
            urlConn.setRequestProperty ("Content-Type", "text/html; charset=iso-8859-1");
            //URLConnection urlConnection = url2.openConnection();
            //urlConnection.setDoOutput(true);
            //urlConnection.setRequestMethod("POST");
            OutputStreamWriter osw = new OutputStreamWriter(urlConn.getOutputStream());
            osw.write(post);
            osw.flush();
            osw.close();
            BufferedReader br = new BufferedReader (new InputStreamReader(url2.openStream()));
            FileWriter fr = new FileWriter("D:/lol.htm");
            while(br.ready()){
                fr.write(br.readLine());
            }
            fr.close();
            //br2.close();
            br.close();
        }
        catch(Exception e){
            System.out.println(e);
        }

    }

Bei der Reihenfolge der Variablen, habe ich im übrigen alle möglichen Kombinationen ausprobiert.
 

Fry

Aktives Mitglied
Probier das mal so

Java:
try {
       
        String post = URLEncoder.encode("agentLoginFormSubmitted", "iso-8859-1") + "=" + URLEncoder.encode("1", "iso-8859-1");
            post += "&" + URLEncoder.encode("agentLogin", "iso-8859-1") + "=" + URLEncoder.encode(u2, "iso-8859-1");
            post += "&" + URLEncoder.encode("password", "iso-8859-1") + "=" + URLEncoder.encode(pw2, "iso-8859-1");
            post += "&" + URLEncoder.encode("controller", "iso-8859-1") + "=" + URLEncoder.encode("login.action", "iso-8859-1");

    
        // Send data
        URL url = new URL("http://hostname:80/cgi");
        URLConnection conn = url.openConnection();
        conn.setDoOutput(true);
        OutputStreamWriter wr = new OutputStreamWriter(conn.getOutputStream());
        wr.write(post);
        wr.flush();
    
        // Get the response
        BufferedReader rd = new BufferedReader(new InputStreamReader(conn.getInputStream()));
        String line;
        while ((line = rd.readLine()) != null) {
            // Process line...
        }
        wr.close();
        rd.close();
    } catch (Exception e) {
    }

was kommt da zurück?
 

letdoch

Aktives Mitglied
Probier das mal so

Java:
try {
       
        String post = URLEncoder.encode("agentLoginFormSubmitted", "iso-8859-1") + "=" + URLEncoder.encode("1", "iso-8859-1");
            post += "&" + URLEncoder.encode("agentLogin", "iso-8859-1") + "=" + URLEncoder.encode(u2, "iso-8859-1");
            post += "&" + URLEncoder.encode("password", "iso-8859-1") + "=" + URLEncoder.encode(pw2, "iso-8859-1");
            post += "&" + URLEncoder.encode("controller", "iso-8859-1") + "=" + URLEncoder.encode("login.action", "iso-8859-1");

    
        // Send data
        URL url = new URL("http://hostname:80/cgi");
        URLConnection conn = url.openConnection();
        conn.setDoOutput(true);
        OutputStreamWriter wr = new OutputStreamWriter(conn.getOutputStream());
        wr.write(post);
        wr.flush();
    
        // Get the response
        BufferedReader rd = new BufferedReader(new InputStreamReader(conn.getInputStream()));
        String line;
        while ((line = rd.readLine()) != null) {
            // Process line...
        }
        wr.close();
        rd.close();
    } catch (Exception e) {
    }

was kommt da zurück?

HTML:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de" lang="de">
<head>
<!-- <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> -->
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<meta http-equiv="Pragma" content="no-cache">
<meta http-equiv="expires" content="0">
<title>&nbsp;Login</title>
<meta name="author" content="">
<meta name="copyright" content="">
<meta name="date" content="">
<meta name="description" content="">
<meta name="keywords" content="">
<meta name="publisher" content="">
<meta name="robots" content="ALL">
<link rel="stylesheet" type="text/css" href="css/xyz.agent.css" media="screen" />

<link rel="stylesheet" type="text/css" href="js/ext/resources/css/ext-all.css" />
<link rel="stylesheet" type="text/css" href="js/ext/examples.css" />
<link rel="stylesheet" type="text/css" href="js/ext/resources/css/xtheme-gray.css" />
<link rel="stylesheet" type="text/css" href="js/ext/resources/css/xtheme-gray.css" />

<script type="text/javascript" src="js/jquery/jquery-1.2.6.pack.js"></script>
<script type="text/javascript" src="js/jquery/widgets/animatedcollapse.js"></script>

<script type="text/javascript" src="js/sj_agent.js"></script>
<script type="text/javascript" src="js/sj_agent_ajax.js"></script>

<script type="text/javascript" src="js/ext/adapter/ext/ext-base.js"></script>

<script type="text/javascript" src="js/ext/ext-all.js"></script>


<script type="text/javascript" src="js/ext/examples.js"></script>

<script type="text/javascript" src="js/application.js"></script>
<script type="text/javascript" src="js/ResourceManager.js"></script>

<link rel="shortcut icon" href="favicon.ico" type="image/x-icon" />
<script type="text/javascript">
			Ext.onReady(function(){
				xyz.sendNotification('{"success":"empty"}');
			});
		</script>
</head>

<body onload="updateTakenCharacters();">
<div id="pageSpacer">&nbsp;</div>
<div id="page">
<div id="pageContent">
<div id="pageTitle">Login</div>
<div id="pageHeadline">Herzlich willkommen</div>
Um das Interface benutzen zu können, müssen Sie sich mit den Ihnen zur Verfügung gestellten Benutzerdaten anmelden.<br />
<hr />
<div id="ajaxResponse"></div>
 <!-- LoginForm begin -->
<div class="tiny">
<form id="agentLoginForm" name="agentLoginForm"
	action="?controller=login.action" method="post"
	enctype="multipart/form-data"><input type="hidden"
	name="agentLoginFormSubmitted" value="1" />
<ul class="tiny">

	<li class="first header"><label for="agentLogin">Benutzer</label><input
		name="submit" type="image" src="img/spacer.gif" style="border:0px" /></li>
	<li><input type="text" id="agentLogin" name="agentLogin" size="20"
		value="" /></li>
	<li class="header"><label class="required" for="agentPassword">Passwort</label></li>
	<li class="last"><input type="password" id="agentPassword"
		name="agentPassword" size="20" /></li>
</ul>
</form>
</div>

<ul class="formButtons">
	<li><a href="javascript:document.agentLoginForm.submit()"
		title="Anmelden">Anmelden</a></li>

</ul>

<!-- agentLoginForm end -->

Also das selbe wie ganz oben. Den htaccess passiert das Tool doch danach ist sense. In wieweit könnten Cookies daran einen Anteil haben?
 

Fry

Aktives Mitglied
Moin,

nochmal zum Verständnis. Du hast ein geschütztes Verzeichnis, wenn du das aufrufst, dann kommt per Popup der übliche Dialog bei geschützten Verzeichnissen. Da mußt du dich einloggen und danach nochmal per Post?

Gruß
Fry
 

letdoch

Aktives Mitglied
Moin,

nochmal zum Verständnis. Du hast ein geschütztes Verzeichnis, wenn du das aufrufst, dann kommt per Popup der übliche Dialog bei geschützten Verzeichnissen. Da mußt du dich einloggen und danach nochmal per Post?

Gruß
Fry

Ich geh auf eine Seite nehmen wird die fiktive seite lolrofl.de. Diese ist mit htaccess gesichert. Wenn ich die richtigen Nutzerdaten eingegeben habe, dann bin ich zwar immer noch auf lolrofl.de aber bin nun beim eigentlichen Login angekommen. Was der Login verlangt, steht letzendlich oben im ersten Beitrag.

Frage geklärt?
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
U mit HTMLunit auf Website einloggen - Formname nicht vorhanden Allgemeine Java-Themen 5
P Mit Java auf einer Website einloggen Allgemeine Java-Themen 6
M Auf Internetseiten via Java einloggen Allgemeine Java-Themen 11
G Mit Java und HTTPClient auf Webseite einloggen Allgemeine Java-Themen 4
V Über Java in einem Forum einloggen/ suchen? Allgemeine Java-Themen 10
O Java Website Stock Bot Allgemeine Java-Themen 3
K Inhalte Parsen von Website Allgemeine Java-Themen 15
torresbig Website login Problem - Jsoup, wie bisher, klappt nicht! Allgemeine Java-Themen 31
J Website mit Kundenbereich Allgemeine Java-Themen 1
E Java Website Login Allgemeine Java-Themen 2
J4n5chmiddi Methoden Website-URL im Browser öffnen nach erfolgreicher Basisauthentifizierung in Java Allgemeine Java-Themen 12
M Website Quelltext mit Java einlesen Allgemeine Java-Themen 10
H HTTP Website-Login Allgemeine Java-Themen 5
Scream_ilias Auf einer Website die anmeldedaten eingeben Allgemeine Java-Themen 9
J Hotel Zimmer Buchungen Website Allgemeine Java-Themen 4
G website programmatisch browsen Allgemeine Java-Themen 2
D Java auf Webserver Website möglich Allgemeine Java-Themen 7
A Website zur Ausnahmeliste hinzufügen (Mac) Allgemeine Java-Themen 3
Javafan01 Website in Java aufrufen Allgemeine Java-Themen 1
J Daten aus Website-Quelltext auslesen Allgemeine Java-Themen 62
Developer_X Website HTML Code von HTTPS URL laden Allgemeine Java-Themen 0
C php-Website mit Proxy aufrufen Allgemeine Java-Themen 6
L Seite einer Partner Website neu laden Allgemeine Java-Themen 1
A Erste Schritte Daten aus einer Website auslesen Allgemeine Java-Themen 7
KeVoZ_ JSoup - Website Inhalt/Element mit String vergleichen Allgemeine Java-Themen 2
K Socket SocketIO Website nicht erreichbar! :( Allgemeine Java-Themen 1
L Login auf website per Java Allgemeine Java-Themen 13
Ananaskirsche Website mit Browser-Check aufrufen Allgemeine Java-Themen 8
K Auf einer Website nach einem String suchen Allgemeine Java-Themen 5
I HTML einer Website auslesen liefert nur head Allgemeine Java-Themen 6
G Daten aus Website auslesen Allgemeine Java-Themen 7
N Input/Output Website Text auslesen und bestimmte Zeilen wiedergeben Allgemeine Java-Themen 4
S Interaktion mit einer website (website als Objekt?) Allgemeine Java-Themen 3
I Inhalt einer Website auslesen Allgemeine Java-Themen 6
K Website in Programm einbinden und auslesen Allgemeine Java-Themen 2
S Buch oder Website mit genialen Algorithmen..? Allgemeine Java-Themen 1
C HTTP OnClick auf Website in Java simulieren Allgemeine Java-Themen 2
N Input/Output Bild von WebSite laden? Allgemeine Java-Themen 3
S Website verbinden Allgemeine Java-Themen 5
K XML Quelltext Website einlesen?! Allgemeine Java-Themen 3
P Applet java 1.7 in Website einbinden ? Allgemeine Java-Themen 7
Q Website auslesen->javascriptauswahl tätigen Allgemeine Java-Themen 6
T Java in Website einbinden klappt i-wie nicht Allgemeine Java-Themen 13
N iText-Nutzung (Version 2.1.7) in kommerzieller Website Allgemeine Java-Themen 8
C Script für Website mit Objekte Ausblenden Allgemeine Java-Themen 3
S Website rendern? Allgemeine Java-Themen 8
C Login auf Website mit Cookies Allgemeine Java-Themen 3
E Performance website download Allgemeine Java-Themen 13
T Website-Login via Java Allgemeine Java-Themen 22
I Irre Website-Wie macht man sowas? Allgemeine Java-Themen 6
L javaformular auf website (eingabe per email zusenden) Allgemeine Java-Themen 3
L java programm läßt sich von website nicht starten. Allgemeine Java-Themen 6
G Applikation in Website einbinden Allgemeine Java-Themen 3
T Datei auf WebSite lesen Allgemeine Java-Themen 4
O website durchsuchen Allgemeine Java-Themen 9

Ähnliche Java Themen

Neue Themen


Oben