2014-11-05 2 views
0

Я пытаюсь использовать doFilter и мою страницу web.xml, чтобы заставить пользователей войти в систему, чтобы получить доступ к любой «защищенной» странице.doFilter JSF Аутентификация пользователя

Я нашел пример here, и я внедрил его. Однако у меня есть небольшая проблема. Когда я помещаю определение фильтра в web.xml, весь сайт не загружается. Я верю, что это связано с тем, что у меня нет подходящего пути к файлу java, который содержит фильтр. Я покажу вам мою страницу 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' (чтение' Java пакет Filter'), ваш 'фильтр Определение класса должно быть полным именем класса (FQN): 'Filter.AuthenticationFilter'. Экранные снимки файлов намного проще читать, чем файлы. Вы должны опубликовать содержимое файла здесь в следующий раз – kolossus

+0

Именно это значение имеет мой FQN в web.xml. Фильтр, хотя и никогда не вызывается. –

ответ

0

я не написал никаких фильтров в настоящее время, но, как правило, если вы должны определить класс в web.xml, он назван как

package.Class 

Так что, если ваш класс AuthenticationFilter в пакете «мой. filter.package»как так:

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

объявление класса фильтр должен быть

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

я заставить его работать прошлой ночью. Фильтры.AuthenticationFilter работает. Это был неправильный шаблон URL.

Вместо того, чтобы мой шаблон URL-адреса, как/обеспеченных/* Мне нужно было, чтобы это было/лица/обеспеченный/*

Смежные вопросы