JDBCRealm中的“用户过期密码”

时间:2011-03-30 11:00:12

标签: java tomcat jdbcrealm

如何在JDBCRealm中使用“用户过期密码”?

能够做到吗?

1 个答案:

答案 0 :(得分:1)

JDBCRealm不提供此类功能。你需要自己写一个。我刚为我的webb应用编写了一个。我使用休眠,但它并不重要,因为这些步骤非常通用。

  1. 首先在login.jsp(或其他任何名称)中设置会话属性'checkExpired'。
  2. <c:set var="checkExpired" value="true" scope="session" />
    
    1. 然后在你的index.jsp中添加一些代码来读取checkExpired,如果它设置为true - 执行日期检查并将checkExpired的值设置为false!获取更改传递(存储在数据库中)的最后日期,并将其与当前日期进行比较。如果比较早90天(或更长时间)重定向用户更改密码jsp页面。

    2. 我的changepass.jsp包含一个用户输入新密码的表单。表单的操作是调用处理密码更改的servlet。

    3. 传递更改servlet验证密码,将其写入数据库并将数据库中的last_pass_change字段更新为当前日期。最后,它重定向到index.jsp。

    4. 现在,这根本不是优雅的(至少是恕我直言),但这是你使用JDBCRealm进行身份验证时所付出的代价。如果您愿意,可以阅读扩展服务器功能或提供自己的领域。然而,对于一些如此微不足道的事情来说,这似乎是很多工作。

      祝你好运,

      达莫