2012-10-10 72 views
1

我構建了一些即將嵌入到網站中的JSF接口。我希望允許用戶登錄網站,以便查看另一個JSF界面,在那裏他們可以更新網站提供的服務的詳細信息。JSF用戶管理

我想知道的是,我是否需要從零開始實施登錄/註冊工具,或者是否有已經存在的可以輕鬆使用的現有系統。 db im使用的是德比db,應用程序在GF服務器上運行。

或者可以有人推薦一些使用JSF構建自定義用戶站點的好資源?

對不起,如果這個問題之前已經問過,我錯過了我之前的搜索。

P

+0

你可以看看[Spring Security](http://www.springsource.org/spring-security),它爲你做了用戶管理,並且可以與JSF結合使用。據我所知,JSF中沒有用戶管理OOTB。 – flash

回答

0

所有的教科書似乎提容器管理的安全性,但我一直呆在遠離它。在我到目前爲止所做的每個應用程序中,我都實現了應用程序管理的身份驗證,這使您可以更靈活地完成身份驗證。當然價格是你將不得不分配幾天來實現和擺弄它。

簡化問題的關鍵在於1)將認證權納入您的Facelets模板中,所有頁面都使用此模板,因此您始終擁有該模板,並且2)擁有保存用戶登錄狀態的@SessionScoped bean。在應用我的工作,現在的模板的頂部看起來是這樣的:

<div id="top" class="top" style="min-height: 40px"> 

     <h:form id="formLogout" style="float: right" 
       rendered="#{userSession.loggedIn}"> 
      <h:outputText 
       value="Logged In As: #{userSession.sysUser.handle} " 
       rendered="#{userSession.loggedIn}" /> 
      <p:commandLink value="Logout" 
          ajax="false" 
          action="#{userSession.logoutUser}" /> 
     </h:form> 
     <h:panelGrid style="float: right" rendered="#{!userSession.loggedIn}" > 
      <h:form id="formLogin"> 
       <h:outputLabel value="User Handle: " /> 
       <p:inputText size="16" value="#{userSession.loginHandle}" /> 
       <h:outputLabel value=" Password: " /> 
       <p:password value="#{userSession.loginPassword}" /> 
       <p:commandButton value="Login" 
           ajax="false" 
           action="#{userSession.login}" /> 
       <h:link outcome="/newUser" value=" New User" /> 
       <h:commandLink action="#{userSession.loginAlan}" value="A" /> 
      </h:form> 
     </h:panelGrid> 

     <h:link outcome="/index" value="MyWebApp v#{wisApp.ver}" /> 
     <h:outputText value=" " /> 
    </div> 

我不會來煩你與UserSession豆,因爲它應該是很明顯的。 sysUser屬性實際上是從Derby數據庫中獲取的JPA實體。

(注意額外的H:commandLink值=「A」這是在讓我不必一遍遍同時發展再次輸入自己的用戶名和密碼自動登錄的鏈接。)

這應該可能是你需要的。

+0

容器管理的安全性是值得的投資,我向你保證,我已經使用了它幾年。 – kolossus