0

我如何检索可收藏的 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");
    }
}   
4

0 回答 0