JSF и фильтр перенаправления генерируют пустую страницу - PullRequest
1 голос
/ 21 марта 2011

Это сводит меня с ума, есть ли хороший способ перенаправить страницу JSF из Filter?Вот мой код в doFilter()

       try {

            HttpServletRequest req = (HttpServletRequest) request;
            HttpServletResponse res = (HttpServletResponse) response;
            LoginAgent loginAgent = (LoginAgent) req.getSession().getAttribute("login");

            if (loginAgent == null || !loginAgent.isLoggedIn()) {
                res.sendRedirect("requireslogin.xhtml");
            }
            else {
                chain.doFilter(request, response);
            }

Все, что я получил, это пустая страница.Я пробовал другой способ, но ни один из них не работает, и я не встречал хорошего примера перенаправления на другую страницу JSF без слишком большого количества работы.

Есть ли обходной путь для этого?В основном фильтр используется для отключения доступа анонимного пользователя к страницам.

1 Ответ

1 голос
/ 22 марта 2011

Только для вашей информации, если вы столкнулись со той же проблемой со мной и хотите получить альтернативный выход, вы можете использовать phaseListener для проверки статуса входа пользователя.

Я все еще застрял с фильтром, но я решил, что лучше выбрать этот путь (PhaseListener), это намного легче понять по крайней мере для меня и более элегантно (по крайней мере, в моих глазах, смеется).

Вы можете следовать руководству из блога этого парня. Удивительный.

http://gurolerdogan.blogspot.com/2010/04/controlling-login-by-phaselistener-in.html

Хотя некоторые из вас могут столкнуться с проблемой, поскольку каждая страница должна перенаправляться на страницу входа в систему, когда пользователь не вошел в систему, это легко исправить, переопределив правило навигации вface-config.

Спасибо всем, кто имеет отношение к моей заботе о JSF! Особенно ты, BalusC:)

...