我想了解Java EE(EJB,JSF ...)的概念,因此我正在研究示例應用程序。 不幸的是,我有問題要理解一些概念應該如何協同工作,以及我是否以正確的專業方式進行操作。在這一點上,我對所有這些不同的方法感到困惑,希望有人能幫助我。使用JDBC-Realm進行JSF,EJB和基於表單的登錄的概念
我的應用程序的核心功能由一個文檔服務器組成,其中註冊用戶可以上傳文檔並用有用的信息描述它。
文檔應該簡單地保存在服務器上,所有信息應該存儲在MySQL數據庫中。 我用Netbeans創建了三個項目。
- 企業應用程序項目(DocApp)
- EJB模塊(DocApp的EJB)
- 和Web應用程序項目(DocApp戰)。
主要的事情做工精細喜歡
- 使用JPA訪問數據庫
- 文件上傳與primefaces FileUploader
- 注入JSF與EJB
- ,甚至與的用戶授權如本教程所示,JDBC-Realm http://jugojava.blogspot.de/2011/02/jdbc-security-realm-with-glassfish-and.html
我現在的問題是,在一個特定的子目錄中的所有頁面應該只由註冊用戶訪問。
我看到的唯一方法是使用一個SessionScopedManagedBean,而不是使用多個RequestScopedManagedBeans。 這似乎是一個不好的做法,但我不知道如何處理,否則。 我理解它的方式,每個JSF Page(xhtml)應該有一個ManagedBeand。
有沒有一種很好的方法來處理這個問題,還是我做錯了什麼?
感謝您的回答。我知道這是它應該如何工作。但是,如果我這樣做,那麼每當有一個重定向到該目錄中的另一個頁面時,登錄信息就會消失,除非我創建** ONE ** SessionScoped ManagedBean,這是我猜的錯誤做法。 – SuiTheDoc
我明白了。書中的「登錄信息」究竟是什麼?這是你自己的對象在例如會話範圍內,或者HttpServletRequest#isUserInRole是否不返回true? –
我不熟悉HttpServletRequest#isUserInRole函數。用「登錄信息」我的意思是用戶名/密碼。我正在使用基於表單的登錄和安全約束。如果會話結束,我將重定向到登錄頁面。 – SuiTheDoc