# iframe probleme



## Marco1983 (7. Mai 2010)

Hallo,

derzeit habe ich ein seltsames Problem, dessen Ursache ich schon lokalisieren konnte, aber es leider nicht geschafft habe bis jetzt zu lösen. Dazu gesagt sei, dass ich noch sehr neu auf dem Gebiet der Webentwicklung bin.

Es geht darum, dass wir ein WebInterface mit ner Menge .jsp Seiten und Servlets haben. Dabei arbeiten wir mit einem internal Frame, welches den Inhalt des jeweiligen ausgesuchten Menü's beinhaltet (Zum Verständnis habe ich mal 2 Screenshots dran gehangen).

Das Problem ist jetzt, dass sobald die Session abgelaufen ist, eigentlich wieder zur Login-Seite gesprungen werden soll, damit sich der Nutzer neu anmelden kann. Befindet man sich aber bspw. im Hauptmenü und die Session läuft in der Zeit ab und man wählt im Anschluss einen link im Hauptmenü, so wird die Anmeldeseite im internal frame angezeigt (also es verschachtelt sich alles... in bild 2 zu sehen).

Das liegt daran, dass in den jeweiligen links im Hauptmenü als target das iframe angegeben ist:


```
<a href="/bspLink" target="iframe_window" title=""
				class="irgendwas" id="eineID" onclick="irgendeineJavaScriptFunction()">Tralala</a>
```

Dieses target möchte ich ja nun entweder auf _self haben (wenn die session abgelaufen ist) oder auf iframe_window (sonst...).

Nun habe ich schon ein paar Versuche hinter mir (alle erfolglos  ), und würde mich freuen wenn mir jemand einen Denkanstoß geben könnte... Bisher habe ich folgendes ausprobiert:

- Mittels jsp die Angelegenheit Serverseitig regeln: z.B.

```
<% if(request.getSession().getAttribute("verified" != null) { %> // session noch gültig
  // setze target auf iframe_window
  <% } else { %>
  // setze target auf _self
  }
```
aber dabei wird ja nur zum Zeitpunkt in der die jsp aufgerufen wird dieses target gesetzt... was leider zu früh ist. (Also Benutzer ruft die Seite auf --> session ist zu dem Zeitpunkt noch gültig (sonst wäre es nicht möglich gewesen die Seite aufzurufen) --> Benutzer klickt 10 Minuten später auf einen link --> wird daraufhin auf login umgeleitet bleibt aber alles im iframe...)

- Mit Hilfe von Javascript überprüfen ob die Session noch gültig ist... da wollte ich dann die Session in eine Funktion mit übergeben... und dann einfach mittels parent.top.location="/loc" ... bsp:


```
<a href="/bspLink" target="iframe_window" title=""
				class="irgendwas" id="eineID" onclick="checkSession(<%=request.getSession()%>)">Tralala</a>
```

Doch leider musste ich feststellen, dass dies nicht möglich ist... Da hab ich noch an cookies gedacht... die benötigten infos auf dem Client speichern und dort überprüfen lassen bei der Anfrage... doch leider weiß ich nicht ob das Sinn macht oder eher weniger. Weil müsste ja dann auch dort überprüfen ob die idle time überschritten wurde usw. (Was wäre wenn die Systemuhr vom client schon unterschiedlich läuft?)

Ich würde mich über jeden Hinweis sehr freuen.

Viele Grüße,
Marco


----------



## Marco1983 (7. Mai 2010)

Oh... die screenshots vergessen 

screeni1 -> Menü im Normalzustand
screeni2 -> Verbuggtes Menü mit Anmeldung im internal frame
screeni3 -> Anmeldungs Seite im Normalzustand


----------



## Marco1983 (7. Mai 2010)

Mhmhm... Habe mir gerade noch gedacht das man evtl ja nen cookie setzt wo ich das maxAge auf die maximale idle time von der session setze und den cookie einfach überprüfe ob der noch vorhanden ist... Da bleibt allerdings die Frage offen was ist, wenn cookies deaktiviert sind... wenn ich via URL rewriting da was dran hänge kann es ja leicht manipuliert werden?! Oder seh ich da was falsch...? Hidden form fields kommen ja nicht in Frage, weil dafür ja überall formulare benötigt werden oder...? mhm...  Verzweiflung macht sich breit... ich glaub ich mach erstmal Arbeitsschluss und hoffe doch das mir übers Wochenende was besseres einfällt... 

Gruß,
Marco


----------

