如何在 JDBCRealm 中使用“用户过期密码”?
它能够做到这一点吗?
JDBCRealm 不提供这种特性。你需要自己写一个。我刚刚为我的 webb 应用程序写了一个。我的使用休眠,但这不是必需的,因为这些步骤非常通用。
<c:set var="checkExpired" value="true" scope="session" />
然后在您的 index.jsp 中添加一些代码来读取 checkExpired,如果它设置为 true - 执行日期检查并将 checkExpired 的值设置为 false!获取更改通行证的最后日期(存储在数据库中)并将其与当前日期进行比较。如果说早 90 天(或更多)重定向用户以更改密码 jsp 页面。
我的 changepass.jsp 包含一个用户输入新密码的表单。表单的作用是调用处理密码更改的 servlet。
pass 更改 servlet 验证密码,将其写入数据库并将数据库中的 last_pass_change 字段更新为当前日期。最后,它重定向到 index.jsp。
现在,这一点都不优雅(至少恕我直言),但这是您在使用 JDBCRealm 进行身份验证时付出的代价。如果您愿意,您可以阅读有关扩展服务器功能或提供您自己的领域的信息。但是,对于如此微不足道的事情,这似乎需要做很多工作。
祝你好运,
达摩