Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Servlet, Session i Browser

[es] :: Java :: Servlet, Session i Browser

[ Pregleda: 2274 | Odgovora: 8 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

ttjmm
Student

Član broj: 250885
Poruke: 5
..885.banqu1.customer.tele.dk.



Profil

icon Servlet, Session i Browser11.02.2010. u 09:35 - pre 172 meseci
E ovako.
Imam Servlete koji trebaju da se zaštite lozinkom. Činim to tako što na ulazu u svaki čekiram HttpSession objekat na sledeći način:

HttpSession session = request.getSession(true);

Znači prvi put kada uđem na jedan od Servlet-a ako ne postoji HttpSession on bude kreiran.
U slučaju da user nije logiran pokažem mu login formu.
User ukuca pass i pošalje serveru.
Na serveru čekiram pass na internu vrijednost pass.
Ako je pass tačan pokažem stranicu i na session stavim attribut:

session.setAttribute("logged");

Svaki sledeći put kada uđem na jedan od Servlet-a provjerim vrijednost ovog attributa.

String logged = (String)session.getAttribute("logged");

if(logged == null){
// prikaži login form
}else{
// prikaži sadržaj servlet-a
}


To je do sada radilo kako treba. Ali zbog nekih settinga ili update-a nešto se poremetilo. Vrlo tehnički znam .

Evo opisa u čemu je ustvari stvar:

Kada sam se ranije otvarao jedan od Servlet-a browser-om dobijao sam isti session.getID();. Sada kada uđem na jedan, loggujem se i sve ok prodje. Ali ako odem na drugi Servlet session.getID(); se mjenja. Čekirao sam sa Firefox-om i sa IE, da provjerio sam da su cookies doyvoljeni i u oba. Mislim da ako ne radi ni u jednom da je do OS-a ili možda firewall-a. Čak sam komunikaciju snimio Wireshark-om, vidivši da kada browser-om šaljem informacije ka serveru onda u header-u sessionID ne bude dodat, kao što bi trebao.

Ima li neko možda ideju zašto browseri ne šalju sessionID kao dio header-a?

Hvala unaprijed
 
Odgovor na temu

reg
java,java,java
bgd

Član broj: 249663
Poruke: 30
*.dynamic.sbb.rs.



Profil

icon Re: Servlet, Session i Browser11.02.2010. u 17:33 - pre 172 meseci
Isprobaj ovaj SessionSnoop code
pa javi kako se ponasa aplikacija:

http://www.servlets.com/jservlet2/examples/ch07/SessionSnoop.java
 
Odgovor na temu

ttjmm
Student

Član broj: 250885
Poruke: 5
..885.banqu1.customer.tele.dk.



Profil

icon Re: Servlet, Session i Browser12.02.2010. u 10:35 - pre 172 meseci
Hvala na odgovoru.

Super je ovaj Session Snoop. Izgleda kao da cookie nekako bude izključen, jer:

Session id: session.90.1265987188486 (keep it secret)
New session: true
Timeout: 1200 (20 minutes)
Creation time: 1265987188486 (Fri Feb 12 10:06:28 GMT-05:00 2010)
Last access time: -1 (Wed Dec 31 18:59:59 GMT-05:00 1969)
Requested session ID from cookie: false
Requested session ID from URL: false
Requested session ID valid: false


Po mom nebi trebalo da New session bude true, jer bi trebao da se formira prvi put kada uđem na Servlet. To takođe važi za Requested session ID from cookie, jer u slučaju kada HttpSession objektu dodam attribut logged onda bi trebalo da cookie postoji. Što sam takođe potrvdio Wireshark-om.

Znači u slučaju kada Servlet pošalje SessionID browseru, browser ne vrati nikakav SessionID nazad. Pitanje je sada zbog čega?
Kao što sam već napisao provjerio sam da su cookies uključeni u oba browser. Jeli postoji mogućnost da browser ignoriše cookies od određenog servera?
 
Odgovor na temu

reg
java,java,java
bgd

Član broj: 249663
Poruke: 30
*.dynamic.sbb.rs.



Profil

icon Re: Servlet, Session i Browser12.02.2010. u 14:42 - pre 172 meseci
Pogledaj response header od servera,
prvi put kada ga browser pogodi.

Tu moras da skapiras sta se dogadja ispod i
da li sam server mozda kreira persistent cookie koje vraca browseru
ili se samo koriste session cookies koji ostaju samo u memoriji browsera
ali se ne pisu na korisnikov hard disk.

Dakle u response header nadji:

Set-Cookie: name=value




EXPIRATION DATE:

U Set-Cookie moze da bude 6 parametara, samo su name i value obavezni:

Name
value,
expiration date,
path the cookie is valid for,
domain the cookie is valid for,
and secure connection.

Obrati paznju na 'expiration date' parametar

"The expires parameter lets you determine the lifetime of the cookie.'
... expires=Mon, 01-Jan-2001 00:00:00 GMT ...
If Expires is not set explicitly, then it defaults to end-of-session.
The length of a session can vary depending on browsers and servers,
but generally a session is the length of time that the browser is open for (even if the user is no longer at that site)."


"As a cookie expires, it is discarded from memory and it is no longer saved to the hard drive.
If a cookie has expired, the browser does not send that particular cookie to the server with the page request;
instead, the expired cookie is deleted"


If you do not set the cookie's expiration,
the cookie is created but it is not stored on the user's hard disk.
Instead, the cookie is maintained as part of the user's session information.
When the user closes the browser or if the session times out, the cookie is discarded."

da li ovo ima smisla?

 
Odgovor na temu

ttjmm
Student

Član broj: 250885
Poruke: 5
..885.banqu1.customer.tele.dk.



Profil

icon Re: Servlet, Session i Browser15.02.2010. u 10:06 - pre 172 meseci
Imao sam malo vremena da se igram sa ovim ovaj vikend. Tražio sam po netu, ali nikako da nađem nekog sa sličnim problemom.

U network trace-u vidim da browser sa mog pc-a ne šalje Cookie i Session ID, dok Server pošalje. Ni jedan od ta dva ne stavlja expiration u header, zbog toga ne mislim da je istekao. Testa radi sam pokušao da na server se konektujem sa drugog pc-a i šta se desilo, je da je sve radilo kako treba. Set-Cookie je bio tu i Session ID je bio tu.

Browser je poslao
Cookie: JSESSIONID=session.10.1265828898005

Server je odgovorio
Set-Cookie: JSESSIONID=session.10.1265828898005;Path=/;Version=0

Dok kada ulazim sa svog pc-a ovoga nema. I to znači ni sa Firefox-om ni Explorer-om.

Sledece ima smisla. Jer na ovom pc-u na kojem radi, poslije jedno 5 min ja pokušam da uđem na sajt i Servlet me pošalje na login stranicu. Tako da mislim da postoji neki timeout koji kontroliše kada ističe. Mada istekne i kada se browser se zatvori kao što piše.

Citat:
The length of a session can vary depending on browsers and servers,
but generally a session is the length of time that the browser is open for (even if the user is no longer at that site)."



Zbog toga sam došao do zaključka da Browser-i na mom pc-u ne šalju Cookie ni Session ID. Ali to je samo slučaj kada se konektujem na ovaj svoj server. Inače mi Cookies rade kako treba. Kao što rekoh pokušao sam na net-u da nađem nekog sa sličnim problemom, ali bez sreće.

Jeli moguće, da browser zbog nekog setting-a ne šalje Cookies određenom host-u?
 
Odgovor na temu

reg
java,java,java
bgd

Član broj: 249663
Poruke: 30
*.dynamic.sbb.rs.



Profil

icon Re: Servlet, Session i Browser15.02.2010. u 15:53 - pre 172 meseci
Koji servlet container koristis? Tomcat... ? Neki drugi ?
 
Odgovor na temu

ttjmm
Student

Član broj: 250885
Poruke: 5
..885.banqu1.customer.tele.dk.



Profil

icon Re: Servlet, Session i Browser17.02.2010. u 14:22 - pre 172 meseci
Znači ne slažeš se s mojim zaključkom?
Ne vjerujem da je do Servleta. Jer kao što rekoh, ako pokušam sa drugog pc-a onda radi. Sniffer pokazuje isto. Browser nikako ne šalje Cookies i Session ID.

Imam neku ideju da je Cookies od ovog servera blokiran, zbog toga ne mislim da je u pitanju Servlet.
 
Odgovor na temu

franticnick

Član broj: 19656
Poruke: 372
*.newsfeed.sdlintl.com.

Sajt: www.franticnick.com


+30 Profil

icon Re: Servlet, Session i Browser18.02.2010. u 11:04 - pre 172 meseci
Jesi li probao URL rewriting?

2 Ways To Implement Session Tracking

 
Odgovor na temu

ttjmm
Student

Član broj: 250885
Poruke: 5
..885.banqu1.customer.tele.dk.



Profil

icon Re: Servlet, Session i Browser22.02.2010. u 14:51 - pre 172 meseci

Hvala na ideji, ali url-rewriting nije opcija koju mogu da koristim.

Znate li jeli moguće da se u browser-u ili firewall-u blokira Session objekat za određenu IP adressu?
 
Odgovor na temu

[es] :: Java :: Servlet, Session i Browser

[ Pregleda: 2274 | Odgovora: 8 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.