14. december 2004 - 11:13Der er
3 kommentarer og 2 løsninger
Ny session til nyt browser vindue
Jeg har en applikation, hvor det nu ønskes at man efter login åbner et nyt browservindue. Vi har login oplysninger på sessions objektet, så det fører til at brugeren også er logget ind i det vindue han kom fra - og det er ikke ønsket. Kan jeg lave en ny session til det nye vindue ? P.T laver jeg en window.open, og så submitter jeg formen over i det nye vindue. Applikationen er lavet så jeg ikke kan sende get parametre med.
Jeg er ikke specialist i browser---web frontend problematikker.
Mit fornemmelse vil være at: - hvis du bruger cookies til session identifikation så er det svært fordi browseren så vidt jeg ved associerer alle åbne vinduer med sitet og sender cookien med - hvis du bruger URL rewriting så bør det være nemt, da det gamle vindue ikke har session ID i link URL's
Du bruger sandsynligvis cookies.
Og du skal nok konsultere en mere browser & cookie kyndig end mig ...
Jeg tror jeg har en løsning hvor jeg laver en side "udenfor" min applikation som kan modtage get paremetre. Derfra kan jeg så lave en form der kan submittes hen til min applikation via en redirect og jeg skal så lige have tilrettet dispatcheren til at vide hvad den skal hvis den får dissse post parametre med. Men jeg er ikke helt sikker på at det vil virke. MEN indtil videre har kunden fået at vide at det vil tage et par dage at lave til dem, så får vi se om de vil betale for det...
Jeg mener ikke det kan lade sig gøre at logge på i et vindue, og derefter "været loget ind" i et andet browservindue. Men du kan jo altid lave noget fusk med javascript, så du sender loginoplysningerne(usernavn+password) over i det andet vindue. Men så kræver det at dette vindue er åbnet af din loginside oprindeligt.
De cookies, som J2EE containeren sender til din browser ved login, er default session-cookies. Med session menes i den sammenhæng browsersessioner. Disse cookies er altså ikke shareable med andre browsersessioner. Det eneste du kan gøre er at håndkode din egen security hvor du selv skriver cookies til dit responseobjekt, og selv configurerer dine cookies så de kan deles mellem browsersessioner.
Min anbefaling er at lave applikationen, så det ikke "gør noget" at det første vindue også er logget på. Hvis det ikke dur, så er der de her løsninger:
1) Brug forskellige domænenavne. Fx, hvis dit site kører på www.mitdomæne.dk, så redirect til secure.mitdomæne.dk som noget af det første i login-processen. Du skal først oprette et DNS-record for secure.mitdomæne.dk, som peger på samme IP som www.mitdomæne.dk
2) Brug URL-rewriting, som Arne foreslår, og gå selv ind og hack url'en til fx fra klienten med javascript. (Grim løsning, der gør det sværere at skifte webcontainer)
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.