2012-10-10 5 views
1

웹 사이트에 임베드 할 몇 가지 JSF 인터페이스를 빌드하고 있습니다. 사용자가 웹 사이트에 로그인하여 다른 JSF 인터페이스를 볼 수 있도록 허용하여 웹 사이트에서 제공하는 서비스에 대한 세부 정보를 업데이트 할 수있게하고 싶습니다.JSF 사용자 관리

내가 알고 싶은 것은 처음부터 로그인/등록 시설을 구현해야합니까, 아니면 이미 쉽게 사용할 수있는 기존 시스템이 있습니까? 사용하는 db 메신저는 derby db이고 응용 프로그램은 GF 서버에서 실행됩니다.

아니면 누군가 JSF를 사용하여 사용자 정의 사용자 사이트를 구축하는 데 유용한 리소스를 추천 할 수 있습니까?

죄송합니다. 이전에이 질문을 물어 본 적이있어서 죄송합니다.

P

+0

사용자 관리를 수행하고 JSF와 결합 할 수있는 [Spring Security] (http://www.springsource.org/spring-security)를 살펴볼 수 있습니다. 내가 아는 한, JSF에는 사용자 관리 OOTB가 없다. – flash

답변

0

모든 교과서는 컨테이너 관리 보안을 언급하는 것하지만 난 항상 멀리 머물렀던. 지금까지 해본 모든 응용 프로그램에서 응용 프로그램 관리 인증을 구현했습니다.이 인증은 인증 수행 방법에 대해 훨씬 더 많은 유연성을 제공합니다. 물론 가격은 구현 및 실행에 며칠을 할당해야합니다.

쉽게 만들기위한 열쇠는 1) 모든 페이지에서 항상 사용할 수 있도록 Facelets 템플릿에 인증 권한을 통합하는 것, 2) 사용자 로그인 상태를 유지하는 @SessionScoped 빈을 갖는 것입니다. 응용 프로그램에서 내가 일하고 이제 템플릿의 상단 부분은 다음과 같습니다 꽤 분명해야하기 때문에

<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> 

내가 사용자 세션 빈은하지 것이다. sysUser 속성은 실제로 Derby 데이터베이스에서 가져온 JPA 엔터티입니다.

(추가 시간 참고 : CommandLink는 값을 = "A" 즉, 자동으로 내가 개발하는 동안 또 다시 사용자 이름과 암호를 입력 할 필요가 없습니다에 나에게를 기록 링크입니다..)

아마도 필요한 것이어야합니다.

+0

컨테이너 관리 보안은 가치있는 투자입니다. 저는 몇 년 동안 사용해 왔습니다. – kolossus