我有一個運行在具有EJB 3後端的glassfish 2.1上的JSF應用程序。對於身份驗證,我使用自定義領域。用戶使用他在註冊時指定的電子郵件地址和密碼進行身份驗證。一切工作都很好。如何在JSF中處理動態角色或用戶名更改?
現在我有兩個相關的問題:
1)用戶可以編輯自己的個人資料和 - 自然 - 他也可以改變他的電子郵件地址。不幸的是,當我使用ExternalContext.getUserPrincipal()。getName()根據當前用戶的身份執行操作時,我將收到用戶在登錄時使用的以前的電子郵件地址。目前,我通過強制用戶在更改其電子郵件地址後重新進行驗證來處理此問題,但還有其他更優雅的可能性嗎?
2)用戶角色相同。例如。我有用戶角色MEMBER和PREMIUM_MEMBER。會員在他本屆會議期間可能會成爲PREMIUM_MEMBER。不幸的是,這個角色似乎只在登錄時才被確定。有沒有可能讓JSF和EJB識別新的用戶角色,而不需要用戶重新進行身份驗證?
只要你需要一些動態的東西,JEE安全模型就會吸引你。也許這個問題將有助於「Java EE服務器上的動態角色」http://stackoverflow.com/questions/2230717/dynamic-roles-on-a-java-ee-server/2231079#2231079。我不認爲點2)是可能的。 – ewernli 2010-03-23 07:54:04
我創建了https://java.net/jira/browse/JASPIC_SPEC-22來支持這個問題。希望這可以在未來版本的Java EE中解決。 – 2013-05-04 18:37:24