登录到Apache Webapp(OpenClinica)后立即注销

时间:2019-09-03 11:33:29

标签: apache http redirect

我正在Web服务器上运行OpenClinica安装,并且仅在Google Chrome上遇到以下问题:

  • 我访问着陆页
  • 我登录到根(或任何其他)帐户
  • 在登录的概述中,我单击任何链接(例如,列出所有患者)
  • 我注销并返回到登录页面

这仅在Google Chrome上发生。以下是access.log中的相关条目-有人能理解吗?我对HTTP状态代码一无所知。

[03/Sep/2019:13:29:09 +0200] "POST /OpenClinica/j_spring_security_check HTTP/1.1" 302 328 "http://my-url.com/OpenClinica/pages/login/login;jsessionid=E6A0E2838AA51B1DA9F6AED47C42D5CD" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36"
[03/Sep/2019:13:29:09 +0200] "GET /OpenClinica/favicon.ico HTTP/1.1" 304 177 "http://my-url.com/OpenClinica/pages/login/login;jsessionid=E6A0E2838AA51B1DA9F6AED47C42D5CD" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36"
[03/Sep/2019:13:29:09 +0200] "GET /OpenClinica/MainMenu HTTP/1.1" 200 8269 "http://my-url.com/OpenClinica/favicon.ico" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36"
[03/Sep/2019:13:29:10 +0200] "GET /favicon.ico HTTP/1.1" 302 421 "http://my-url.com/OpenClinica/MainMenu" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36"
[03/Sep/2019:13:29:10 +0200] "GET /OpenClinica/pages/login/login;jsessionid=EA92FE865CF5345428D7538D18871D99 HTTP/1.1" 200 4770 "http://my-url.com/OpenClinica/MainMenu" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36"

点击列出所有患者

[03/Sep/2019:13:29:12 +0200] "GET /OpenClinica/ListStudySubjects HTTP/1.1" 302 272 "http://my-url.com/OpenClinica/MainMenu" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36"
[03/Sep/2019:13:29:12 +0200] "GET /OpenClinica/pages/login/login HTTP/1.1" 200 4770 "http://my-url.com/OpenClinica/MainMenu" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36"
[03/Sep/2019:13:29:12 +0200] "GET /favicon.ico HTTP/1.1" 302 422 "http://my-url.com/OpenClinica/pages/login/login" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36"
[03/Sep/2019:13:29:12 +0200] "GET /OpenClinica/pages/login/login;jsessionid=9625D469100D1871538197FE241DECCB HTTP/1.1" 200 4770 "http://my-url.com/OpenClinica/pages/login/login" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36"
[03/Sep/2019:13:29:12 +0200] "GET /OpenClinica/RssReader HTTP/1.1" 200 757 "http://my-url.com/OpenClinica/pages/login/login" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36"

现在我确实有一些古怪的重定向规则,我认为这是问题的根本原因。它们被写为解决另一个问题的方法-登录到系统时,浏览器(任何浏览器)将尝试打开favicon.ico作为图片,而不是定期查看favicon,从而导致(取决于浏览器,404页面或网站图标被全屏打开。这是重定向规则:

<VirtualHost *:80>
  ServerAdmin webmaster@localhost
  ServerName www.my-url.com

  ProxyPreserveHost On

  ProxyPass /OpenClinica/favicon.ico http://localhost:8080/OpenClinica/
  ProxyPassReverse /OpenClinica/favicon.ico http://localhost:8080/OpenClinica/

  ProxyPass /OpenClinica/ http://localhost:8080/OpenClinica/
  ProxyPassReverse /OpenClinica/ http://localhost:8080/OpenClinica/

  ProxyPass / http://localhost:8080/OpenClinica/
  ProxyPassReverse / http://localhost:8080/OpenClinica/
</VirtualHost>

2 个答案:

答案 0 :(得分:1)

未使用特定的应用程序。正如我所看到的,如果您在/上登录时收到一个/OpenClinica/的cookie,则:单击相对链接(将使您保持/)将阻止浏览器将接收到的Cookie重新发送到服务器。

我将用以下内容替换最后2个条目:

RedirectMatch ^/$ /OpenClinica/

我不完全了解favicon的问题,但也许您想在此应用相同的规则。

注意:要使RedirectMatch工作,应启用mod_alias

另一件事:我看到ProxyPreserveHost已启用。这意味着OpenClinica应该知道其外部主机名。

答案 1 :(得分:0)

该服务器正在侦听端口:80,但是那些代理规则都在端口:8080上……而我只是想知道为什么需要在localhost上配置代理规则?

同时删除所有这些,并忽略favicon问题... jsessionid与URL一起传递,而是暗示服务器未正确处理会话,因为此类ID通常属于请求标头;将它们放到URL中是后备选项(因为任何可以看到日志的人都可以在进行中劫持这些会话,而无需输入密码)。使用HTTPS并没有那么糟,但是在HTTP上,这在最终的代理日志中也可见。

老实说,我认为这不是Chrome问题,而是虚拟主机配置和/或会话问题。 它似乎源于没有DocumentRoot指令的虚拟主机-因此它将继承全局配置,该全局配置似乎比/OpenClinica高一个级别。