Servlets JSF命令链接不正确的导航
在提出这些问题之前,我已经仔细评估了解决以下问题的可行性 我有一个来自电子邮件的外部链接Servlets JSF命令链接不正确的导航,servlets,jsf-2,servlet-filters,Servlets,Jsf 2,Servlet Filters,在提出这些问题之前,我已经仔细评估了解决以下问题的可行性 我有一个来自电子邮件的外部链接viewRequest.xhtml?requestID=6。我使用一个过滤器来截获传入的请求,如果用户没有经过身份验证,它将被转发到login.xhtml页面。用户通过身份验证后,请求由FacesContext.getCurrentInstane().getExternalContext().redirect(重定向的url)转发,然后成功显示页面 现在,如果尝试从同一页面(即,viewRequest.xht
viewRequest.xhtml?requestID=6
。我使用一个过滤器来截获传入的请求,如果用户没有经过身份验证,它将被转发到login.xhtml
页面。用户通过身份验证后,请求由FacesContext.getCurrentInstane().getExternalContext().redirect(重定向的url)
转发,然后成功显示页面
现在,如果尝试从同一页面(即,viewRequest.xhtml
page)注销,请求的URI是viewRequest.xhtml
,这会再次将我带到同一页面,而不是注销,并将我重定向到登录页面
我真正关心的是为什么过滤器中的request.getRequestedURI
仍然是viewRequest.xhtml
而不是login.xhtml
参考代码
AuthenticationFilter-用户未通过身份验证-在会话中添加请求的电子邮件链接
用户登录后
现在我们进入viewRequest.xhtml页面-加载成功-现在单击注销
请帮忙。多谢各位
String from = req.getRequestURI();
if (req.getQueryString() != null) from += "?" + req.getQueryString();
req.getSession().setAttribute("from", from);
res.sendRedirect(req.getContextPath() + "/faces/pages/login.xhtml");
if (from != null && !from.isEmpty()) {
externalContext.getSessionMap().remove("from");
externalContext.redirect(from); *-----------Original URL re-direction---------*
return null;
}
else{
result = "adminHome";
}
String from = req.getRequestURI(); <!--FILTER-->
FacesContext.getCurrentInstance().getExternalContext().invalidateSession();
return login;