If you don't have access to a database, then creating some kind of in-memory database and storing it in the servlet context is a good alternative. Use a Struts plugin for setup and cleanup of whatever you use.
One thing you will have to be careful of is using up all your memory. If you are storing token/timestamp/status for a large number of users, it will add up. Wiebe -----Original Message----- From: Andrew Hill [mailto:[EMAIL PROTECTED] Sent: Wednesday, October 13, 2004 8:23 PM To: Struts Users Mailing List Subject: Re: sending/maintaning a download link It wouldnt survive a server restart, but this may well be acceptable if you dont expect the server to restart very often and your token expiry is only a day or two and its easy to get another token if needs be. Im not sure what the deal is with stuff added to servlet context after startup in a clustered environment however. If your in a cluster you would need to check up on that in the docs as it may not be available to all servers in the cluster? Richard wrote: > Hi Wiebe, > > What if im not going to use any database? can I just store this in the > servlet context? > > Thanks > Richard > > > On Wed, 13 Oct 2004 10:12:38 -0700, Wiebe de Jong <[EMAIL PROTECTED]> wrote: > >>The only way to make a link go away is to make it dynamic. That means that >>the link you email will have to be to an action that returns the file. There >>have been quite a few threads recently on this mailing list about how to get >>actions to return files, including .pdf and .csv, so I won't cover that >>here. >> >>Here is a list of steps for how I would go about implementing this feature: >> >>1 - generate a unique token and store it in the database with a >>timestamp=now() and status=valid. >>2 - add this token to the url you send in the email: >>http://www.mycompany.com/myapp/download.do?token=123abc >>3 - when the user calls the action via the supplied url, the action checks >>the database to see if the token is still valid. >>4 - if token is valid, send the file, and then invalidate the token so it >>can't be used again. (status=used) >>5 - if token not valid, display a message to the user telling them that the >>link has either expired or already been used. >>6 - have a background process run periodically (1 per day, every hour, >>whatever) that checks the timestamps in the database and expires tokens if >>the timestamp is more than 24 hours old. (status=expired) >> >>The background process can be run via Quartz, which was also covered >>recently in this list. >> >>Wiebe de Jong >> >> >> >>-----Original Message----- >>From: Richard [mailto:[EMAIL PROTECTED] >>Sent: Wednesday, October 13, 2004 2:14 AM >>To: Struts Users Mailing List >>Subject: sending/maintaning a download link >> >>hi guys, >> >>how do i do this in struts? >> >>i want to send a download link ( via email - resolved ) to a newly >>registered user and that download link will expire after 24hrs. >> >>is there and apache project for this? >> >>please help >> >>thanks in advance >>richard >> >>--------------------------------------------------------------------- >>To unsubscribe, e-mail: [EMAIL PROTECTED] >>For additional commands, e-mail: [EMAIL PROTECTED] >> >>--------------------------------------------------------------------- >>To unsubscribe, e-mail: [EMAIL PROTECTED] >>For additional commands, e-mail: [EMAIL PROTECTED] >> >> > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > > --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]