Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/9.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
Apache背后的JSF与SSL-h:commandLink(带和不带f:ajax)_Apache_Jsf_Ssl_Primefaces_Commandlink - Fatal编程技术网

Apache背后的JSF与SSL-h:commandLink(带和不带f:ajax)

Apache背后的JSF与SSL-h:commandLink(带和不带f:ajax),apache,jsf,ssl,primefaces,commandlink,Apache,Jsf,Ssl,Primefaces,Commandlink,[编辑]-感谢您的评论。我已经尝试了相应地形成我的问题,并且根据提供的建议添加了一些额外的信息 我有一个JSFWeb应用程序在JBossAS7上运行,我在SSL(端口443)上与Apache一起使用它。Apache和JBoss在同一台机器上运行,并通过HTTP通过反向代理转发规则进行“透明”通信。在这个设置中,我观察到,单击通过JSF标记创建的任何链接(即没有,并且始终存在一个真正的支持bean操作方法,该方法在执行一些业务逻辑后,返回带有?faces redirect=true后缀的结果)将看

[编辑]-感谢您的评论。我已经尝试了相应地形成我的问题,并且根据提供的建议添加了一些额外的信息

我有一个JSFWeb应用程序在JBossAS7上运行,我在SSL(端口443)上与Apache一起使用它。Apache和JBoss在同一台机器上运行,并通过HTTP通过反向代理转发规则进行“透明”通信。在这个设置中,我观察到,单击通过JSF标记
创建的任何链接(即没有
,并且始终存在一个真正的支持bean操作方法,该方法在执行一些业务逻辑后,返回带有
?faces redirect=true
后缀的结果)将看到页面重定向失败,因为
https
方案被删除并替换为
http

如果我将
的所有实例替换为
,则此重定向问题将消失-即
https
方案将保留在生成的重定向URL中

有人能解释一下我在观察什么,以及在这种情况下非ajax表单提交和ajax提交之间的“幕后”区别是什么吗

其他信息:

我的Apache反向代理规则:

ProxyRequests Off
ProxyPreserveHost On

<Proxy *>
Order Allow,Deny
Allow from all
</Proxy>

ProxyPass / http://localhost:8080/ timeout=1800
ProxyPassReverse / http://localhost:8080/
ProxyRequests关闭
代理主机
命令允许,拒绝
通融
ProxyPass/http://localhost:8080/ 超时=1800
ProxyPassReverse/http://localhost:8080/
Firefox中的web控制台显示了ajax表单提交和非ajax表单提交HTTP请求之间的区别,如下所示:

Ajax通过
提交

我在
https
上看到对预期页面的GET请求(我还不能发布屏幕截图)

通过

非ajax版本首先在
https
上以302状态代码“暂时移动”发回同一页面(预期),然后从
http
上的操作方法重定向到目标页面

在HTTP上获取重定向失败之前,POST在HTTP标头中的位置

这是一个屏幕截图。POST的位置值显示为GET请求的URL,位于
http
而不是
https

我想我在这一点上有点“被蒙在鼓里”。由于
方法达到了预期的结果,我很高兴不去管它。似乎至少还有一些其他JSF帖子与这类事情相关(这里是我可以发布的唯一URL):

也许需要基于ajax的方法将方案保存在源于客户端的URL中

谢谢


-Andy

h:commandLink
不会放弃协议方案。发布您正在使用的XHTML。我同意h:commandlink不会放弃该方案。在本例中,它使用的是获取请求的方案,即来自Apache的http(与JBoss在同一台机器上)。也就是说,当我不在前面使用Apache并直接在SSL(8443)或HTTP(8080)上运行JBoss时,h:commandlink工作正常。在上述任何一种情况下,它都会维护该方案(就像它在Apache面前以clear on http进行通信时一样)。假设您使用ProxyPass,您是否也配置了proxyPassReverse?(更多,但apache配置的相关细节与您的想象非常相关),通过查看浏览器开发工具中的网络选项卡,可以很容易地观察到这些差异。这是一个正常响应,而不是http重定向响应。StackoverflowBtw上有大量关于?faces重定向的详细信息,如果在
h:commandLink
中添加
f:ajax
,或者使用
h:commandButton
可以观察到相同的差异。它与jsf无关。当然与PF无关。