【发布时间】:2020-02-11 04:46:55
【问题描述】:
当没有人登录时,我正在使用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 都被 pretty-faces 美化了,当我尝试使用 HttpServletRequest.getRequestURI() 获取以前的 URL 时,它给了我丑陋的 URL。
例如,我配置了一个 url /myapp/my-page-3 显示/views/module1/page3.xhtml。
但是HttpServletRequest.getRequestURI() 给了我/views/module1/page3.xhtml 而不是 /myapp/my-page-3。
有什么想法吗?
【问题讨论】:
-
因为您已经在使用 OmniFaces ..
Servlets.getRequestURI(req)是否返回预期的 URI?
标签: servlets servlet-filters omnifaces prettyfaces