Я использую org.omnifaces.filter.HttpFilter
для перенаправления посетителей на страницу входа, когда никто не вошел в систему.
@Override
public void doFilter(HttpServletRequest req, HttpServletResponse res, HttpSession session, FilterChain chain) throws ServletException, IOException {
String loginUrl = "/myapp/login?redirect_url=" + req.getRequestURL();
boolean loggedIn = (req.getRemoteUser() != null);
if (loggedIn) {
chain.doFilter(req, res); // So, just continue request.
} else {
Servlets.facesRedirect(req, res, loginUrl);
}
}
Я хочу перенаправить не вошедших в систему пользователей на /login?redirect_url=previous_page_url
Проблема в том, что все мои URL-адреса украшены симпатичными лицами , и когда я пытаюсь получить предыдущий URL-адрес с помощью HttpServletRequest.getRequestURI()
, он дает мне ужасный URL-адрес.
Например, я настроил URL /myapp/my-page-3
, который отображает /views/module1/page3.xhtml
.
Но HttpServletRequest.getRequestURI()
дает мне /views/module1/page3.xhtml
и не /myapp/my-page-3
.
Есть идеи?