# Webstart - Wie komme ich an die Session-ID?



## Schängel (9. Feb 2012)

Ich will in einer Webstart-Anwendung die Session-ID für einen geschützten Kundenbereich auslesen. Über die Session-ID und eine MySQL-DB greife ich dann auf die hinterlegten Userdaten zurück.

Die Session-ID lasse ich mir über ein PHP-Script ausgeben: 

```
<?php
echo $_COOKIE["fe_typo_user"];
?>
```

Das klappt auch prima, wenn ich das Script über den Browser aufrufe.

Aus Java heraus funktioniert das aber nicht, es wird nur ein Leerstring zurückgegeben:

```
URL sessionid = new URL("http://dummy.de/sessioninfo.php");
URLConnection session = sessionid.openConnection();
BufferedReader in = new BufferedReader(new InputStreamReader(session.getInputStream()));
String inputLine;
while ((inputLine = in.readLine()) != null) 
in.close();
System.out.println(inputLine);
```
Was mache ich falsch?

Gruß
Schängel


----------



## Tobias (9. Feb 2012)

Dein Java-Programm weiß nichts über Cookies. Es hat den Session-Cookie nie empfangen, ihn nie gespeichert und kann ihn dementsprechend auch nie an den Server schicken, um ihn auslesen zu lassen.


----------



## Schängel (9. Feb 2012)

Ok, danke für die Desillusionierung.

Gibt es denn mit Java-Webstart einen Weg, dies zu bewerkstelligen?
Der User meldet sich auf der Website mit Name/Passwort an und die Webstart-Anwendung soll mit diesen Anmeldedaten arbeiten.

No Chance?


----------



## Tobias (9. Feb 2012)

Dein Programm muss sich selbstständig anmelden, den Session-Cookie empfangen und bei jedem Request an die Webseite schicken. Mögliche Wege wären Webservices oder HTMLUnit.


----------



## Schängel (9. Feb 2012)

Könnte man die Session-ID auf Server-Seite dynamisch in die JNLP-Datei einbetten und übergeben?


----------



## Tobias (9. Feb 2012)

Dafür reichen meine Webstart-Kenntnisse nicht aus.


----------



## Schängel (9. Feb 2012)

Hab's hinbekommen:


```
<?php
$cookie = $_COOKIE["fe_typo_user"];
header("Content-type: application/x-java-jnlp-file");
echo <<<END
<?xml version="1.0" encoding="UTF-8"?>
<jnlp codebase="http://dummy.de/" spec="1.0+">
<information>
  <title>dummy</title>
  <vendor>dummy</vendor>
  <homepage href="http://dummy.de"/>
  <description>dummy</description>
  <description kind="short">dummy</description>
</information>
<security><all-permissions/></security>
<resources>
  <j2se version="1.5+"/>
  <property name="jsessionid" value="$cookie"/>
  <jar eager="true" href="dummy.jar" main="true"/>
</resources>
<application-desc main-class="dummy.Main">
</application-desc>
</jnlp>
END;
?>
```

... und dann in Java:


```
String jsessionid = System.getProperty("jsessionid");
```


----------

