2014-11-05 2 views
0

doFilter 및 web.xml 페이지를 사용하여 사용자가 로그인하여 "보안"된 페이지에 액세스하려고합니다.doFilter JSF 사용자 인증

예제는 here이며 구현했습니다. 나는 작은 문제를 가지고있다. 필터 정의를 web.xml에 넣으면 전체 웹 사이트가로드되지 않습니다. 내가 필터를 포함하는 자바 파일에 적절한 클래스 경로가 없기 때문에 이것은 믿습니다. 내 프로젝트 탐색기 옆에 내 web.xml 페이지를 보여 드리고 있습니다. Auth Filter 난 당신이 나 또한 표시하고있는 <filter-class> </filter-class>

에 필요한 클래스 경로로 나를 도울 수 바라고 내 doFilter method

@Override 
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { 
    UserBean userBean = (UserBean)((HttpServletRequest)request).getSession().getAttribute("userBean"); 

    if(userBean == null || !userBean.isSuccessfullLogin()){ 
     String contextPath = ((HttpServletRequest)request).getContextPath(); 
     ((HttpServletResponse)response).sendRedirect(contextPath + "/index.xhtml"); 
    } 
    chain.doFilter(request, response); 
} 

지금까지 내 서버 작업, 웹 사이트의 실행의 나머지하지만 난 얻을 수 없다 필터. 모든 제안이 수락됩니다!

감사합니다.

+0

이 ('Filter' 자바 패키지를 읽기) , 당신의'필터를 -class' 정의는 완전한 클래스 이름 (FQN)이어야합니다 :'Filter.AuthenticationFilter'. 스크린 샷의 파일은 실제 파일보다 훨씬 쉽게 읽을 수 있습니다. 다음 번에 파일 내용을 게시해야합니다. – kolossus

+0

web.xml의 FQN이 정확하게 설정되어 있습니다. 필터는 결코 호출되지 않습니다. –

답변

0

나는 지금 필터를 작성하지 않은,하지만 당신은 web.xml의 클래스를 정의해야하는 경우 일반적으로, 그것은

package.Class 

로 이름이 그래서 AuthenticationFilter 클래스 패키지 "내에있는 경우. 그래서 같은 filter.package "

package my.filter.package; 
public class AuthenticationFilter {...} 

필터 클래스 선언이

<filter-class>my.filter.package.AuthenticationFilter</filter-class> 
0

나는 저에게이 작업 않았다해야한다 지난 밤. Filters.AuthenticationFilter가 작동합니다. 내 URL 패턴이 잘못되었습니다. 대신/보안/* 나는 그것을 할 필요 내 URL 패턴을 갖는

은 /면/보안/*

귀하의 필터는`Filter` 폴더에