1

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

它能够做到这一点吗?

4

1 回答 1

1

JDBCRealm 不提供这种特性。你需要自己写一个。我刚刚为我的 webb 应用程序写了一个。我的使用休眠,但这不是必需的,因为这些步骤非常通用。

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

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

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

现在,这一点都不优雅(至少恕我直言),但这是您在使用 JDBCRealm 进行身份验证时付出的代价。如果您愿意,您可以阅读有关扩展服务器功能或提供您自己的领域的信息。但是,对于如此微不足道的事情,这似乎需要做很多工作。

祝你好运,

达摩

于 2011-04-01T13:29:33.137 回答