Authentication 在登录JSF2页面之前,我如何知道请求了哪个页面
我正在用GlassFish3.1和JSF2.0/EJB3.1开发一个web应用程序。我的一些页面是安全的。受保护的URL部分在Authentication 在登录JSF2页面之前,我如何知道请求了哪个页面,authentication,jsf-2,java-ee-6,glassfish-3,Authentication,Jsf 2,Java Ee 6,Glassfish 3,我正在用GlassFish3.1和JSF2.0/EJB3.1开发一个web应用程序。我的一些页面是安全的。受保护的URL部分在web.xml中定义为URL模式。这些页面通过一个安全域进行安全保护,该安全域重定向到登录页面,该页面也在web.xml中定义为login.xhtml。在login.xhtml上,用户名和密码的“我的输入”字段连接到会话范围的支持bean,该bean执行: ExternalContext ec = getExternalContext(); HttpServletRequ
web.xml
中定义为URL模式。这些页面通过一个安全域进行安全保护,该安全域重定向到登录页面,该页面也在web.xml
中定义为login.xhtml
。在login.xhtml
上,用户名和密码的“我的输入”字段连接到会话范围的支持bean,该bean执行:
ExternalContext ec = getExternalContext();
HttpServletRequest request = getHttpServletRequest(ec);
request.login(username, password);
EJB容器负责将所有传入请求重定向到具有无效会话的安全区域,并将其重定向到此页面
但是,例如,用户正在为页面index.xhtml
添加书签,并请求此页面。首先,他必须通过login.xhtml
登录。他通过键入用户名+密码并单击提交按钮来验证自己
问题是:如何确定目标地址,在本例中是index.html
?
方法request.getRequestURI()
显示的是login.xhtml
,而不是index.html
。我可以始终重定向到index.xhtml
,但是如果用户键入了xyz.xhtml
,该怎么办?有办法吗
谢谢
Adem原始请求信息通过以下键存储在请求对象中: “javax.servlet.forward.request\u uri” “javax.servlet.forward.query\u字符串”
谢谢你的回答。这让我找到了正确的解决方法!是否可以添加一些代码来显示如何读取这些键?:)