无法登录Testlink - 不保存会话/ cookie

时间:2016-05-13 10:39:46

标签: php session azure cookies testlink

我在客户端服务器中部署Testlink时遇到问题。问题的根源似乎是它没有在会话中正确保存/检索信息,这会在安装过程中导致错误并尝试记录。

在安装过程中,变量存储在会话( installationType )中,指示它是新安装还是升级。此变量取值' new'但是当从一个屏幕移动到另一个屏幕时该值丢失时,假设我正在执行升级并且无法继续。作为一种解决方法,我对代码进行了更改,以将此变量设置为“' new'在每个屏幕上,这样我正确完成了安装过程。但是当我尝试登录时,我发现另一个问题:输入用户数据和访问后,屏幕刷新并重新显示登录屏幕,没有任何错误消息(实际上日志显示登录成功)。此行为与在浏览器中禁用cookie相同。

在具有相同配置的本地服务器上安装了相同版本的Testlink(1.9.14):

  
      
  • Ubuntu:14.04.1(64位)
  •   
  • Apache:2.4.7
  •   
  • PHP 5.5.9-1ubuntu4.16
  •   
  • MySQL:5.5.49
  •   

不同之处在于我们的Ubuntu安装在Debian中的虚拟机上,而Ubuntu客户端则部署在Azure中。

我已经在一台机器和另一台机器上比较了php.ini配置,但我没有发现显着的差异。比较phpinfo()显示的信息,我没有发现任何相关的内容(如果需要,可以在这里附加),但我在" PHP变量"中看到了这一点。我有这个cookie的本地服务器部分:

  

COOKIE [" TESTLINKUSERAUTHCOOKIE"]

此cookie未出现在客户端服务器中(我猜是在登录后没有创建)。

我的猜测是Azure管理面板(我无法访问)中的某些内容需要配置,就像在iptables上打开端口一样。在Azure。

任何建议都将不胜感激。

2 个答案:

答案 0 :(得分:3)

神秘解决了。该问题与Azure无关,但与自己的服务器配置有关。

将Apache和PHP的所有配置文件与全新安装进行比较后,我发现了这个:

的/ etc /启用位点-的apache2 / /的 000-default.conf

<IfModule mod_headers.c>
    Header set X-UA-Compatible "IE=edge"
    Header set X-Frame-Options "DENY"
    # Commented out, because fcm4 use external JavaScript
    # Header set Content-Security-Policy "script-src 'self'; object-src 'self'"
    Header always set Strict-Transport-Security "max-age=16070400; includeSubDomains"
    Header set X-Content-Type-Options "nosniff"
    Header set X-XSS-Protection "1; mode=block"
    Header unset X-Powered-By
    Header unset ETag
    Header set Cache-Control "max-age=0, no-cache, no-store, must-revalidate"
    Header set Pragma "no-cache"
    Header set Expires "Wed, 11 Jan 1984 05:00:00 GMT"
    Header set X-Permitted-Cross-Domain-Policies "master-only"
    Header edit Set-Cookie ^(.*)$ "$1;HttpOnly;Secure"
    <FilesMatch "\.(appcache|atom|bbaw|bmp|crx|css|cur|eot|f4[abpv]|flv|geojson|gif|htc|ico|jpe?g|js|json(ld)?|m4[av]|manifest|map|mp4|oex|og[agv]|opus|otf|pdf|png|rdf|rss|safariextz|svgz?|swf|topojson|tt[cf]|txt|vcard|vcf|vtt|webapp|web[mp]|webmanifest|woff2?|xloc|xml|xpi)$">
        Header unset X-UA-Compatible
        Header unset X-Frame-Options
        Header unset Content-Security-Policy
        Header unset X-XSS-Protection
    </FilesMatch>
</IfModule>

导致此行为的行是:

  • 标题设置X-Frame-Options&#34; DENY&#34;
  • 标题编辑Set-Cookie ^(。*)$&#34; $ 1; HttpOnly; Secure&#34;

在评论完之后,一切都没问题。

答案 1 :(得分:0)

Php会话问题通常与Apache / Php使用的临时文件夹有关。

我猜Testlink实现了一个非常经典的基于cookie的会话系统。请遵循本文以确保正确配置会话处理。

https://support.qualityunit.com/021373-How-To-Enable-Session-Support-for-PHP

您可能也对此链接感兴趣。这是有关在Azure计算机上安装Testlink的分步指南:

http://thusharapriyantha.blogspot.com.es/2015/04/install-testlink-1913-stormbringer-in.html?m=1

幸运...亲切的问候