2013-02-12 44 views
1

我有一个使用mod_proxy_ajp将请求转发到tomcat服务器的apache。当请求到达时,它似乎失去了我的价值观。当请求直接传递给tomcat时,这很好,所以它看起来像apache剥离了值。mod_proxy_ajp正在剥离的cookie值

任何帮助,将不胜感激。

浏览器
的myCookie
值= ID = 12345
路径=/
域= mydomain.org

的Tomcat
的myCookie
值= ID
路径= null
Domain = null

配置:

LoadModule proxy_module     /usr/lib64/apache2-prefork/mod_proxy.so 
LoadModule proxy_ajp_module     /usr/lib64/apache2-prefork/mod_proxy_ajp.so 
LoadModule rewrite_module     /usr/lib64/apache2-prefork/mod_rewrite.so 
<VirtualHost *:80> 
ServerName server.domain.org 
ServerAlias server.domain.org 
Header set Access-Control-Allow-Origin "*" 
Header set Access-Control-Allow-Methods "GET,POST,OPTIONS" 
Header set Access-Control-Allow-Headers "content-type,x-requested-with" 

RewriteEngine on 
RewriteRule ^/$ /vaultWeb [PT] 

<Directory /> 
Options All 
Order Deny,Allow 
Allow from all 
</Directory> 

ProxyRequests off 

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

<Location /> 
Order Deny,Allow 
Allow from all 
</Location> 

ProxyPass /app1 ajp://localhost:18009/app1 
ProxyPass /app2 ajp://localhost:8009/app2 
ProxyPass /app3 ajp://localhost:8009/app3 
ProxyPass /app4 ajp://localhost:18009/app4 
ProxyPass /app5 ajp://localhost:9008/app5 
</VirtualHost> 
+0

所以进一步的调查显示等号是问题。如果cookie只是值而不是ID = thevalue,那么get的值就会被传入。不过还是一个问题,因为价值可能具有相同的标志,并且它们也被剥离。 – wellmstein 2013-02-18 17:12:53

回答

0

好吧,似乎Apache或Tomcat的是“帮助”,由于该cookie是0版本,而不是通过规范批准的任何字符都被删除。在这种情况下,等号(以及其后的任何内容)。由于我无法控制设置cookie的服务器,我可以说服他们做的最好的方法是对cookie进行编码,然后使用URLDecoder对该值进行解码。繁荣等号和一切。