Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Authentication 在登录JSF2页面之前,我如何知道请求了哪个页面_Authentication_Jsf 2_Java Ee 6_Glassfish 3 - Fatal编程技术网

Authentication 在登录JSF2页面之前,我如何知道请求了哪个页面

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

我正在用GlassFish3.1和JSF2.0/EJB3.1开发一个web应用程序。我的一些页面是安全的。受保护的URL部分在
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字符串”


谢谢你的回答。这让我找到了正确的解决方法!是否可以添加一些代码来显示如何读取这些键?:)