我如何检索可收藏的 URL,尊重使用@WebFilter内的ViewHandler.getBookmarkableURL(...)将用户重定向到重写的登录页面 URL 的重写规则。
是否有替代功能可以在没有FacesContext的情况下获取可收藏的 URL ?
简化示例
页面/sites/user/login.xhtml使用 OCPSoft 重写库重写为/Login,但在以下过滤器中,我不知道如何执行此操作,因为我无权访问FacesContext。
真实示例具有额外的查询字符串参数,这些参数也有助于重写 URL
@WebFilter(filterName = "UserFilter", urlPatterns =
{
"/sites/user/account.xhtml"
}, dispatcherTypes =
{
DispatcherType.FORWARD, DispatcherType.REQUEST, DispatcherType.ERROR
})
public class UserFilter extends HttpFilter
{
@Override
public void doFilter(final HttpServletRequest request, final HttpServletResponse response,
final HttpSession session, final FilterChain chain) throws ServletException, IOException
{
if (isLoggedIn())
chain.doFilter(request, response);
else
response.sendRedirect(request.getContextPath() + "/sites/user/login.xhtml");
}
}