2011-03-30 55 views
1

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

它能够做到这一点吗?

+0

是你在JDBCRealm定义能做到这一点的数据库? – EJP 2011-03-30 23:32:27

+0

此功能取决于数据库吗? – cloverink 2011-03-31 09:33:56

+0

@cloverlink:我不知道这个问题的含义。请翻译。 – EJP 2011-04-05 10:48:43

回答

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. 通行证改变servlet的验证密码,将其写入数据库和databasse为当前日期更新last_pass_change领域。最后,它重定向到index.jsp。现在

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

祝你好运,

达摩

+0

我会尝试thx! – cloverink 2011-04-03 08:19:49