2015-10-06 43 views
0

我在Tomcat實例上實現了JDBC領域表單身份驗證。用戶名和角色存儲在數據庫表中,管理員應爲用戶分配永久密碼。 是否有可能在第一次嘗試登錄時要求用戶更改密碼,以便管理員不規定密碼,但可以由用戶自己生成密碼?Tomcat 8 JDBC領域:更改用戶密碼

回答

1

我想你必須自己實現這個。例如,您可以爲用戶表添加額外的列isPassWordSet,默認值爲false。然後,用戶首次使用管理員提供的密碼登錄後,重定向到他或她必須必須提供其自己的密碼的頁面,只允許其他應用程序使用isPasswordSet=true。用戶完成此步驟後,如果提供的密碼被認爲有效,請將isPasswordSet設置爲true,然後可以繼續。

+0

從哪裏可以重定向用戶?我能做到的一種方式是使用'HttpServletResponse.sendRedirect(url)',但我沒有找到如何獲得HttpServletResponse的自定義Realm實現..請幫助.. – griboedov

+0

你的意思是你想擴展RealmBase?恐怕這不會有幫助。您可以從Realm中調用URL來將用戶發送到第二個表單,但是您仍然必須驗證用戶,否則他或她將被髮送到初始登錄表單。表單身份驗證是一個Servlet規範,用於保證跨容器的可移植性,因此無法添加額外的表單字段。 – acdhirr

+0

...但是,一旦用戶登錄但尚未更改初始管理員密碼,您可以讓應用程序強制用戶更改其密碼,例如由一些總是檢查密碼是否設置的攔截器類。如果不是,則重定向到密碼錶單。 – acdhirr