Generate activation urls in Java EE 6
I'm developing a web application using Java EE 6 Web Profile. I want to e-mail a new user an activation link for his account. How should I implement this? I'm using JSF2. Is there开发者_开发技巧 any specification or recommended way for doing this?
I have worked on a project that required user to confirm his email-id to activate his registration. The key generation process was like this:
Key Creation
- Create a column
verification_key
inusers
table that holds unique validation key for a user. - Use SHA256 hash of your unique user-name (email-id in this case) with salt as his password.
- Convert the hash to base64 and store in
verification_key
of that user. This will be unique (for practical purposes, I wouldn't go into probability of collision).
so, bottom line, key = Base64(Hash256(uniqueUserName+"."+password))
......
side note: BTW, nothing restricts you to use password as salt. You may just create an arbitrary string on fly as salt.
Verification
- Since we know the
verification_key
is unique, get thekey
from request-parameter and find the matching row. - If found, set
verification_key
asnull
(this will also reduce chances of collision if any) and take user to "successfully-verified page". - If not found, take the user to "already-activated/key-not-found/401 page".
An activation URL evokes an impression of a software service processing a 'service'-request.
Good candidates to realize this service include servlets which will perform the user activation/validation and redirect to a JSF success-page
精彩评论