Did you check the HttpSession object? Is  the session object same or 
always new?

Jon.Ridgway wrote:

>Hi Kris,
>
>The first code snippet below is the correct one (I think??). I think the
>snippet on Teds site (second snippet below) *may* be wrong...
>
>Jon Ridgway
>
>
>-----Original Message-----
>From: Dhulipala, Kris [mailto:[EMAIL PROTECTED]] 
>Sent: 09 September 2002 15:34
>To: 'Struts Users Mailing List'
>Subject: RE: [Tokens][2] Where can I find more information....
>
>I might be mistaken but isn't that what is supposed to happen?
><snip>
>
>>>===============================
>>>if (isTokenValid(request, true)) {
>>>   System.out.println("TOKEN IS VALID");
>>>  }
>>>  else {
>>>   System.out.println("TOKEN IS NO LONGER VALID");
>>>  }
>>>===============================
>>>
>>>Is the above code assumption correct or am I misinterpreting something?
>>>Because when I submit "add to cart"  I always jump into the else block!
>>>
></snip>
>
><snip>
>
>>    if (isTokenValid(request, true)) {
>>      ... this is a resubmit, so go display an error ...
>>    }
>>
></snip>
>Kris
>
>
>-----Original Message-----
>From: Michael Delamere [mailto:[EMAIL PROTECTED]]
>Sent: Monday, September 09, 2002 6:57 AM
>To: Struts Users Mailing List
>Subject: Re: [Tokens][2] Where can I find more information....
>
>
>I don�t quite agree (sorry) because I want to solve the problem without
>javascript.  I hate javascript and always try to do without it :-)
>
>Regards,
>
>Michael
>
>
>----- Original Message -----
>From: "Andrew Hill" <[EMAIL PROTECTED]>
>To: "Struts Users Mailing List" <[EMAIL PROTECTED]>
>Sent: Monday, September 09, 2002 12:36 PM
>Subject: RE: [Tokens][2] Where can I find more information....
>
>
>>I guess the real trick would be to eliminate the users altogether, as they
>>seem to be the source of most problems.
>>hehe. Maybe I should try and divert the "[OT] JavaScript auto-submit form"
>>thread to this dicussing this idea ;->
>>
>>-----Original Message-----
>>From: Michael Delamere [mailto:[EMAIL PROTECTED]]
>>Sent: Monday, September 09, 2002 18:40
>>To: Struts Users Mailing List
>>Subject: Re: [Tokens][2] Where can I find more information....
>>
>>
>>>Of course its only a problem if one tries to accomodate multitasking
>>>
>>users,
>>
>>>so if users can be trained not to play silly buggers with multiple
>>>
>windows
>
>>>everything should work fine.
>>>
>>Wishful thinking.... :-)
>>
>>
>>----- Original Message -----
>>From: "Andrew Hill" <[EMAIL PROTECTED]>
>>To: "Struts Users Mailing List" <[EMAIL PROTECTED]>
>>Sent: Monday, September 09, 2002 12:21 PM
>>Subject: RE: [Tokens][2] Where can I find more information....
>>
>>
>>>Yep. Thats what I thought. :-(
>>>There are actually quite a few things in struts that seem to have this
>>>
>>issue
>>
>>>in relation to constant session keys.
>>>
>>
>>>Single browser window seems to be an assumption most struts apps make,
>>>
>but
>
>>>it would be nice if the framework provided more support for multiple
>>>
>>windows
>>
>>>(keeping track of which is quite a nightmare!).
>>>
>>>-----Original Message-----
>>>From: Jon.Ridgway [mailto:[EMAIL PROTECTED]]
>>>Sent: Monday, September 09, 2002 18:09
>>>To: 'Struts Users Mailing List'
>>>Subject: RE: [Tokens][2] Where can I find more information....
>>>
>>>
>>>Hi Andrew,
>>>
>>>Read your post properly this time; umm good point the same key is used
>>>
>and
>
>>>one would over right the over, invalidating the first... So yes it looks
>>>like they would interfere...
>>>
>>>Jon Ridgway
>>>
>>>
>>>-----Original Message-----
>>>From: Jon.Ridgway [mailto:[EMAIL PROTECTED]]
>>>Sent: 09 September 2002 11:00
>>>To: 'Struts Users Mailing List'
>>>Subject: RE: [Tokens][2] Where can I find more information....
>>>
>>>Hi Andrew,
>>>
>>>The generateToken method in Action.java generates a unique token each
>>>
>time
>
>>>saveToken is called.
>>>
>>>Jon Ridgway
>>>
>>>
>>>-----Original Message-----
>>>From: Andrew Hill [mailto:[EMAIL PROTECTED]]
>>>Sent: 09 September 2002 10:23
>>>To: Struts Users Mailing List
>>>Subject: RE: [Tokens][2] Where can I find more information....
>>>
>>>Hope you will excuse me stealing this topic for a related question - I
>>>
>>added
>>
>>>a [2] tag to indicate this ;-)
>>>
>>>As far as I can see the key under which the token is saved is a
>>>
>constant.
>
>>>What happens if another browser window is also open on some other form
>>>
>(in
>
>>>same session) and the user is trying to submit something there to
>>>
>another
>
>>>action that also users tokens. (This is one of those anoying users who
>>>
>>opens
>>
>>>fifty billion windows and does stuff in one window while waiting for
>>>submission / page loading in another window to complete)
>>>
>>>Wont the two interfere?
>>>
>>>ie:
>>>User fills in form in window A and submits.
>>>While waiting for that to complete, user enters stuff in window B (for a
>>>different form or record) and submits that.
>>>What happens to the tokens here?
>>>
>>>
>>>btw: heres a copy of the msg Michael refers to in the archive (for those
>>>
>>who
>>
>>>havent time to load the web page)
>>>
>>>>To deal with resubmits, the most important issue is to avoid updating
>>>>
>>the
>>
>>>>database twice when the user accidentally resubmits the same form.
>>>>
>>Struts
>>
>>>>has a feature called "transaction control tokens" that help you avoid
>>>>this, which is very simply used as follows:
>>>>
>>>>* In the Action that sets up your input form (i.e. before you forward
>>>>  to it), execute the following
>>>>
>>>>    saveToken(request)
>>>>
>>>>  to save a special value in the user's session that will be used in
>>>>  the next step.
>>>>
>>>>* In the Action that receives the form and updates the database, add
>>>>  the following logic before you do the update:
>>>>
>>>>    if (isTokenValid(request, true)) {
>>>>      ... this is a resubmit, so go display an error ...
>>>>    }
>>>>
>>>>  The "true" parameter causes the token to be removed from the session
>>>>  so that it doesn't interfere with subsequent form submits.
>>>>
>>>>This way, the submit will work the first time, but fail on any
>>>>
>>accidental
>>
>>>>or on-purpose resubmit, and you avoid adding the information to the
>>>>database twice.  It also prevents the user from navigating directly to
>>>>
>>the
>>
>>>>"myDB.do" URL without going through your normal setup actions --
>>>>
>because
>
>>>>the transaction token would not have been placed in the session, so
>>>>
>the
>
>>>>isTokenValid() test would fail.
>>>>
>>>>Craig
>>>>
>>>-----Original Message-----
>>>From: Michael Delamere [mailto:[EMAIL PROTECTED]]
>>>Sent: Monday, September 09, 2002 17:25
>>>To: Struts Users Mailing List
>>>Subject: Re: [Tokens] Where can I find more information....
>>>
>>>
>>>ok, I found this which pretty much helped me understand what is going
>>>
>on:
>
>>>http://www.mail-archive.com/[email protected]/msg35501.html
>>>
>>>
>>>However I still have a problem:
>>>
>>>In my showProductsAction I have the line: saveToken(request);
>>>
>>>Then next option would be to click "add to cart" in which case I would
>>>
>go
>
>>to
>>
>>>the CartAction accordingly.  In my CartAction I check the token:
>>>
>>>===============================
>>>if (isTokenValid(request, true)) {
>>>   System.out.println("TOKEN IS VALID");
>>>  }
>>>  else {
>>>   System.out.println("TOKEN IS NO LONGER VALID");
>>>  }
>>>===============================
>>>
>>>Is the above code assumption correct or am I misinterpreting something?
>>>Because when I submit "add to cart"  I always jump into the else block!
>>>
>>>
>>>Regards,
>>>
>>>Michael
>>>
>>>
>>>
>>>----- Original Message -----
>>>From: "Michael Delamere" <[EMAIL PROTECTED]>
>>>To: "Struts Users Mailing List" <[EMAIL PROTECTED]>
>>>Sent: Monday, September 09, 2002 9:40 AM
>>>Subject: [Tokens] Where can I find more information....
>>>
>>>
>>>>Hi,
>>>>
>>>>I posted a thread last week about having caching problems and that my
>>>>shopping cart was being incremented by 1 everytime somebody refreshed
>>>>
>>the
>>
>>>>browser.
>>>>
>>>>The answer I got was that one could use tokens.  Sounds like a great
>>>>
>>idea!
>>
>>>>So I had a look at the struts-example to find out what it�s about but
>>>>
>to
>
>>>be
>>>
>>>>honest I don�t understand exactly what is going on.
>>>>
>>>>I tried implementing the code almost exactly as it was done there and
>>>>
>it
>
>>>>keeps on telling me that my token is invalid.  The problem I have here
>>>>
>>is
>>
>>>>that I don�t know what it means or what I have to do to correct this.
>>>>
>>>>1.  Does anyone know where I can find more information on these
>>>>
>tokens?
>
>>>>2.  Would it not be a good idea to include this in the struts-config
>>>>
>>>action
>>>
>>>>configuration,
>>>>      i.e. token="true"?
>>>>
>>>>Any help would be really appreciated!
>>>>
>>>>Thanks,
>>>>
>>>>Michael
>>>>
>>>>
>>>>
>>>>--
>>>>To unsubscribe, e-mail:
>>>>
>>><mailto:[EMAIL PROTECTED]>
>>>
>>>>For additional commands, e-mail:
>>>>
>>><mailto:[EMAIL PROTECTED]>
>>>
>>>
>>>--
>>>To unsubscribe, e-mail:
>>><mailto:[EMAIL PROTECTED]>
>>>For additional commands, e-mail:
>>><mailto:[EMAIL PROTECTED]>
>>>
>>>
>>>--
>>>To unsubscribe, e-mail:
>>><mailto:[EMAIL PROTECTED]>
>>>For additional commands, e-mail:
>>><mailto:[EMAIL PROTECTED]>
>>>
>>>
>>>The contents of this email are intended only for the named addressees
>>>
>and
>
>>>may contain confidential and/or privileged material. If received in
>>>
>error
>
>>>please contact UPCO on +44 (0) 113 201 0600 and then delete the entire
>>>e-mail from your system. Unauthorised review, distribution, disclosure
>>>
>or
>
>>>other use of this information could constitute a breach of confidence.
>>>
>>Your
>>
>>>co-operation in this matter is greatly appreciated.
>>>
>>>--
>>>To unsubscribe, e-mail:
>>><mailto:[EMAIL PROTECTED]>
>>>For additional commands, e-mail:
>>><mailto:[EMAIL PROTECTED]>
>>>
>>>
>>>The contents of this email are intended only for the named addressees
>>>
>and
>
>>>may contain confidential and/or privileged material. If received in
>>>
>error
>
>>>please contact UPCO on +44 (0) 113 201 0600 and then delete the entire
>>>e-mail from your system. Unauthorised review, distribution, disclosure
>>>
>or
>
>>>other use of this information could constitute a breach of confidence.
>>>
>>Your
>>
>>>co-operation in this matter is greatly appreciated.
>>>
>>>--
>>>To unsubscribe, e-mail:
>>><mailto:[EMAIL PROTECTED]>
>>>For additional commands, e-mail:
>>><mailto:[EMAIL PROTECTED]>
>>>
>>>
>>>--
>>>To unsubscribe, e-mail:
>>>
>><mailto:[EMAIL PROTECTED]>
>>
>>>For additional commands, e-mail:
>>>
>><mailto:[EMAIL PROTECTED]>
>>
>>
>>--
>>To unsubscribe, e-mail:
>><mailto:[EMAIL PROTECTED]>
>>For additional commands, e-mail:
>><mailto:[EMAIL PROTECTED]>
>>
>>
>>--
>>To unsubscribe, e-mail:
>>
><mailto:[EMAIL PROTECTED]>
>
>>For additional commands, e-mail:
>>
><mailto:[EMAIL PROTECTED]>
>
>
>
>--
>To unsubscribe, e-mail:
><mailto:[EMAIL PROTECTED]>
>For additional commands, e-mail:
><mailto:[EMAIL PROTECTED]>
>
>--
>To unsubscribe, e-mail:
><mailto:[EMAIL PROTECTED]>
>For additional commands, e-mail:
><mailto:[EMAIL PROTECTED]>
>
>
>The contents of this email are intended only for the named addressees and
>may contain confidential and/or privileged material. If received in error
>please contact UPCO on +44 (0) 113 201 0600 and then delete the entire
>e-mail from your system. Unauthorised review, distribution, disclosure or
>other use of this information could constitute a breach of confidence. Your
>co-operation in this matter is greatly appreciated. 
>
>--
>To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
>For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>
>
>
>

Reply via email to