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