2011-02-02 72 views
7

我正在使用Java EE 6 Web Profile开发Web应用程序。我想通过电子邮件向他的帐户发送激活链接。我应该如何实现这一点?我正在使用JSF2。有没有任何规范或建议的方式来做到这一点?在Java EE 6中生成激活URL 6

+0

你想如何创建`那需要与激活URL发送key`或者您想预定印刷用URL生成的JSF? – Nishant 2011-02-02 05:36:10

+0

确切地说,用户注册,并且带有密钥的URL被发送到他的电子邮件,如:点击http://mysite.com/activate?key=dsafadsfwe激活您的帐户。 – arg20 2011-02-02 06:44:52

+0

可能是,如果我可以从JSF访问URL并获得关键参数或东西 – arg20 2011-02-02 06:45:56

回答

16

我已经对要求用户确认他的电子邮件ID,激活一个项目工作他注册。密钥生成过程是这样的:

密钥创建

  1. users表中包含用户唯一确认键创建一个列verification_key
  2. 使用(在这种情况下,电子邮件ID)SHA256哈希您独特用户名与盐作为他的密码。
  3. 转换成该用户的verification_key的散列base64和商店。这将是独一无二的(出于实用目的,我不会进入碰撞概率)。

因此,底线,key = Base64(Hash256(uniqueUserName+"."+password))

......

侧面说明:BTW,没有什么限制你使用密码盐。你可以创建一个任意的字符串作为盐。

验证

  1. 因为我们知道verification_key是独一无二的,得到请求参数key,找到匹配的行。
  2. 如果找到,设置verification_keynull(这也将减少碰撞的机会,如果有的话),并采取用户“成功验证页面”。
  3. 如果找不到,请将用户带到“已激活/未找到密钥/ 401页面”。
1

激活URL唤起对处理'服务'请求的软件服务的印象。

好考生实现该服务包括的servlet将执行用户激活/验证和重定向到一个JSF成功页