JavaEE Glassfish身份验证:电子邮件中的确认链接,无登录密码

时间:2013-08-12 13:40:30

标签: java-ee authentication glassfish jaas

我正在使用GlassFish的身份验证机制开发JavaEE 7应用程序。要注册我们的用户,我们希望有一个简单的注册表单,生成带有链接的电子邮件。点击该链接后,我们希望用户能够登录并填写他的用户个人资料。我的问题是:当点击链接时,我们无法访问用户密码(以明文形式),这当然是正确的。现在我们想在没有密码的情况下登录用户,这可能是以glassfish编程的吗?或者我们是否必须修改我们的安全领域(JDBC领域的修改版本)?

“忘记密码”机制具有完全相同的要求。

1 个答案:

答案 0 :(得分:3)

以下是我对你特别要求的建议:

  1. 编写自定义登录模块或自定义域(云修改现有版本)Docs
  2. 编写一个servlet并将其映射到确认URL。
  3. 在servlet中,提取URL的相关部分。
  4. 致电HttpServletRequest#login(),将网址的相关部分作为用户名传递。
  5. 发送重定向并享受!
  6. 请注意,领域应该能够区分来自链接servlet的“正常”登录和登录。您可以使用UUID或基于空密码来执行此操作。

    但是,确认链接通常是指注册过程中的最后一步,您可能会修改基础数据源以激活用户并禁止链接进一步访问?

    在这种情况下,您的servlet可能应该直接使用EJB,JPA或其他任何方式修改数据源,告诉用户他们的帐户已启用并将其发送到登录表单。