Just because it's fun to have that one last kick at the dead horse...

You really can't rely on any cookie being set, can you?  I mean most users
are simply not this savvy (or stupid, depending on how you feel about it),
but I can set my browser to prompt for every cookie, and I as the (idiot?)
user can reject the session cookie, and then accept every other cookie. Or,
I can accept the session cookie (because it's a *session* cookie, the kind
that disappear), and reject all others. In fact, doesn't one of them there
browsers have a setting like that, to automatically accept session cookies,
but prompt for the other ones?
 
So no, I don't think you can reliably use isRequestedSessionIdFromCookie to
tell whether or not a client "accepts cookies".  Not all cookies are alike.


> -----Original Message-----
> From: Pid [mailto:[EMAIL PROTECTED] 
> Sent: Thursday, June 22, 2006 12:50 PM
> To: Tomcat Users List
> Subject: Re: How does Tomcat detect whether a browser accepts cookies
> 
> 
> You could use the session id location as an indicator, 
> assuming there's a session already.
> 
>  if (hreq.isRequestedSessionIdFromCookie()) {
>       // we're good, do whatever
>  }
>  else {
>       // no cookies, begone!
>  }
> 
> if your initial point of contact does a single instant 
> redirect to the detector, then Tomcat should sort out the 
> session location by the time you need to detect it.
> 
>  servlet1(redirect) > servet2(detect)
> 
> this is the same as was suggested before, but at least you 
> don't have to write your own cookie addition/detection routine.
> 
> 
> 
> Garey Mills wrote:
> > David -
> > 
> >     Thanks for the clear, concise answer.
> > 
> > Garey Mills
> > Library Systems Office
> > UC Berkeley
> > 
> > The brain is not where you think
> > 
> > On Wed, 21 Jun 2006, David Smith wrote:
> > 
> >> On first response, Tomcat both set's a cookie JSESSIONID 
> and appends 
> >> the
> >> same to the page links (when properly coded). If the 
> cookie comes back 
> >> on the next request, url rewriting is dropped in favor of 
> the cookie. No 
> >> magic, tomcat just covers all it's bases up front.
> >>
> >> See HttpServletResponse.encodeURL(String) in the servlet spec for 
> >> more info.
> >>
> >> -- David
> >>
> >> Garey Mills wrote:
> >>> David -
> >>>
> >>>   Tomcat uses cookies to establish a session with the 
> browser. If it 
> >>> can't use cookies, it uses URL rewriting. So whenever 
> someone uses 
> >>> my app, Tomcat tries to set a cookie.
> >>>
> >>>   If it was the case that Tomcat didn't know whether the browser 
> >>> accepted cookies until after it tried to set one at the first 
> >>> access, users of browsers that did not accept cookies 
> would not have 
> >>> a session that recorded their first access. I don't think 
> that would 
> >>> be considered acceptable, so I assume that Tomcat knows, 
> before my 
> >>> app is reached, whether the browser accepts cookies. But is my 
> >>> assumption correct, I don't know. That is what I am asking.
> >>>
> >>>
> >>>   
> >>>
> >>> Garey Mills
> >>> Library Systems Office
> >>> UC Berkeley
> >>>
> >>> The brain is not where you think
> >>>
> >>> On Wed, 21 Jun 2006, David Kerber wrote:
> >>>
> >>>   
> >>>> Why would it try until your app tells it to?  AFAIK (admittedly, 
> >>>> not
> >>>> very far; I don't use cookies)  think it needs to be 
> handled by your app.
> >>>>
> >>>>
> >>>> Garey Mills wrote:
> >>>>
> >>>>     
> >>>>> David -
> >>>>>
> >>>>>         Well, okay then, but how can my app find out 
> what Tomcat knows 
> >>>>> about whether the browser accepts cookies or not? And when does 
> >>>>> Tomcat try? Before control is passed to my app?
> >>>>>
> >>>>> Garey Mills
> >>>>> Library Systems Office
> >>>>> UC Berkeley
> >>>>>
> >>>>> The brain is not where you think
> >>>>>
> >>>>> On Wed, 21 Jun 2006, David Kerber wrote:
> >>>>>
> >>>>>  
> >>>>>
> >>>>>       
> >>>>>> I think what he's getting at is that Tomcat (or any other web 
> >>>>>> server)
> >>>>>> cannot tell how a browser is set wrt cookies without 
> trying to set one 
> >>>>>> and then seeing if it's there.
> >>>>>>
> >>>>>> Garey Mills wrote:
> >>>>>>
> >>>>>>    
> >>>>>>
> >>>>>>         
> >>>>>>> Martin -
> >>>>>>>
> >>>>>>>       I guess I'm being obtuse, but WHAT won't work? 
> What I want to 
> >>>>>>> know is how Tomcat detects whether the browser 
> accepts cookies, 
> >>>>>>> that is, whether it is set to accept cookies or not?
> >>>>>>>
> >>>>>>> Garey Mills
> >>>>>>> Library Systems Office
> >>>>>>> UC Berkeley
> >>>>>>>
> >>>>>>> The brain is not where you think
> >>>>>>>
> >>>>>>> On Wed, 21 Jun 2006, Martin Gainty wrote:
> >>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>>      
> >>>>>>>
> >>>>>>>           
> >>>>>>>> Garey-
> >>>>>>>>
> >>>>>>>> Unfortunately that wont work if your Browser 
> disallows cookies 
> >>>>>>>> If its IE Check out the IE options-
> >>>>>>>>
> >>>>>>>> Tools
> >>>>>>>> Internet Options
> >>>>>>>> Privacy
> >>>>>>>> Advanced
> >>>>>>>> look at "switched on Always allow Session Cookies"
> >>>>>>>>
> >>>>>>>> HTH,
> >>>>>>>>
> >>>>>>>> Martin --
> >>>>>>>> 
> ***************************************************************
> >>>>>>>> ******
> >>>>>>>> This email message and any files transmitted with it 
> contain confidential
> >>>>>>>> information intended only for the person(s) to whom 
> this email message is
> >>>>>>>> addressed.  If you have received this email message 
> in error, please notify
> >>>>>>>> the sender immediately by telephone or email and 
> destroy the original
> >>>>>>>> message without making a copy.  Thank you.
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>
> >>>>>>>> ----- Original Message -----
> >>>>>>>> From: "Garey Mills" <[EMAIL PROTECTED]>
> >>>>>>>> To: "Tomcat Users List" <users@tomcat.apache.org>
> >>>>>>>> Sent: Wednesday, June 21, 2006 12:50 PM
> >>>>>>>> Subject: Re: How does Tomcat detect whether a 
> browser accepts cookies
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>   
> >>>>>>>>
> >>>>>>>>        
> >>>>>>>>
> >>>>>>>>             
> >>>>>>>>> Leon -
> >>>>>>>>>
> >>>>>>>>> Thank you for your response, but I don't understand 
> it. I have 
> >>>>>>>>> a key question:
> >>>>>>>>>
> >>>>>>>>> how does Tomcat detect that a browser does not 
> accept cookies?
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>>> There are a number of different ways to detect it inside my 
> >>>>>>>>> application, but all of them seem to need a 
> roundtrip to the 
> >>>>>>>>> browser. If, as I suspect, Tomcat can tell without the 
> >>>>>>>>> redirect, I would like to use Tomcat's knowledge. If Tomcat 
> >>>>>>>>> uses a roundtrip, I would still like to use Tomcat's 
> >>>>>>>>> knowledge, so that I don't have to duplicate the 
> work inside 
> >>>>>>>>> my app.
> >>>>>>>>>
> >>>>>>>>> Garey Mills
> >>>>>>>>> Library Systems Office
> >>>>>>>>> UC Berkeley
> >>>>>>>>>
> >>>>>>>>> The brain is not where you think
> >>>>>>>>>
> >>>>>>>>> On Wed, 21 Jun 2006, Leon Rosenberg wrote:
> >>>>>>>>>
> >>>>>>>>>     
> >>>>>>>>>
> >>>>>>>>>          
> >>>>>>>>>
> >>>>>>>>>               
> >>>>>>>>>> You could check for your cookie in first request 
> and if not 
> >>>>>>>>>> present just set the cookie in the  request and 
> redirect to 
> >>>>>>>>>> another page which reads  the cookie (btw, it can also be 
> >>>>>>>>>> done with javascript without user-visible-reload). The 
> >>>>>>>>>> difference to your approach that each user will be 
> redirected 
> >>>>>>>>>> exactly once, since you are checking for your 
> cookie in first 
> >>>>>>>>>> request and it should remain persistent for next visits.
> >>>>>>>>>>
> >>>>>>>>>> regards
> >>>>>>>>>> Leon
> >>>>>>>>>>
> >>>>>>>>>> On 6/21/06, Garey Mills 
> <[EMAIL PROTECTED]> wrote:
> >>>>>>>>>>       
> >>>>>>>>>>
> >>>>>>>>>>            
> >>>>>>>>>>
> >>>>>>>>>>                 
> >>>>>>>>>>> Hi -
> >>>>>>>>>>>
> >>>>>>>>>>>       I have an application that does not work correctly 
> >>>>>>>>>>> when the browser does not accept cookies. I added 
> some code 
> >>>>>>>>>>> that rewrites the query string the first time the app is 
> >>>>>>>>>>> entered to include a new parameter and then 
> redirects to the 
> >>>>>>>>>>> app. I watch for that parameter and if I find it I check 
> >>>>>>>>>>> whether the session id is from a cookie. If it 
> isn't I put 
> >>>>>>>>>>> up a "Sorry, you need cookies message" and exit.
> >>>>>>>>>>>
> >>>>>>>>>>>       This solution is not optimal, since I am seeing a 
> >>>>>>>>>>> blank page the first time I try to get into the 
> application.
> >>>>>>>>>>>
> >>>>>>>>>>>       So my question is: Tomcat must ascertain 
> whether the 
> >>>>>>>>>>> browser accepts cookies in order to decide whether to use 
> >>>>>>>>>>> cookies or URL rewriting. How does it do it? and 
> can I check 
> >>>>>>>>>>> Tomcat to find out, too?
> >>>>>>>>>>>
> >>>>>>>>>>> Garey Mills
> >>>>>>>>>>> Library Systems Office
> >>>>>>>>>>> UC Berkeley
> >>>>>>>>>>>
> >>>>>>>>>>> The brain is not where you think
> >>>>>>>>>>>              
> >>>>>>>>>>>
> >>>>>>>>>>>                   
> >>>> 
> -------------------------------------------------------------------
> >>>> --
> >>>> To start a new topic, e-mail: users@tomcat.apache.org
> >>>> To unsubscribe, e-mail: [EMAIL PROTECTED]
> >>>> For additional commands, e-mail: [EMAIL PROTECTED]
> >>>>
> >>>>
> >>>>     
> >>>
> >>> 
> --------------------------------------------------------------------
> >>> -
> >>> To start a new topic, e-mail: users@tomcat.apache.org
> >>> To unsubscribe, e-mail: [EMAIL PROTECTED]
> >>> For additional commands, e-mail: [EMAIL PROTECTED]
> >>>
> >>>   
> >>
> >> 
> ---------------------------------------------------------------------
> >> To start a new topic, e-mail: users@tomcat.apache.org
> >> To unsubscribe, e-mail: [EMAIL PROTECTED]
> >> For additional commands, e-mail: [EMAIL PROTECTED]
> >>
> >>
> > 
> > 
> > 
> ---------------------------------------------------------------------
> > To start a new topic, e-mail: users@tomcat.apache.org
> > To unsubscribe, e-mail: [EMAIL PROTECTED]
> > For additional commands, e-mail: [EMAIL PROTECTED]
> > 
> > 
> > 
> 
> ---------------------------------------------------------------------
> To start a new topic, e-mail: users@tomcat.apache.org
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
> 
> 


---------------------------------------------------------------------
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to