我在Linux上使用Apache来代理到站点的所有请求到tomcat,以便我可以使用虚拟主机并使用https。我在tomcat中的webapp是/ epub,但是我设置了apache proxypass和proxypassreverse来映射/到http // localhost:8081/epub/使用Apache来代理tomcat,不能做sendRedirect
我这样做是为了能够通过Facebook登录我的网站。
(注:这是不是一个真正的网站,我必须设置为我的网站名称,我用facebook注册/ etc/hosts文件和Apache虚拟主机。)
在tomcat的server.xml中我设置的连接器元素如下:
<Connector port="8081" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443"
proxyPort="80"
proxyName="andyssite2.com"/>
但是没有为该端口的执行程序共享线程池设置任何东西。
这里有什么不工作:
错误1)当我去我的loginservlet,我检查是否存在会话。如果没有,我创建一个并将“散列”请求参数保存为会话的一个属性。然后根据其OAuth服务器流程方案重定向到Facebook。当facebook重定向到我的loginservlet时,HttpSession存在,但“hash”属性丢失。 (我宁愿保存在会话中比在cookie中)
bug 2)然后我得到facebook用户信息的其余部分,并重定向到“/index.html”。浏览器显示我的网址为“http://andyssite2.com/index.html#_=_”,并且这会导致问题,因为我的由index.html加载的javascript没有为散列_ = _准备好,它以某种方式进入游戏。我也尝试使用绝对URL重定向到我的网站,并得到_ = _的散列相同的问题,我的问题是什么导致这个spurios散列被添加。
我有最新的Apache Centos6。
安迪