【发布时间】:2021-02-05 14:35:51
【问题描述】:
我们有一个基于 java servlet 的应用程序(非常旧的代码库),它由带有 Apache httpd 2.4.43 和 mod_proxy 的 tomcat 8 提供服务。应用程序有一些与 java web 应用程序捆绑在一起的静态资产(CSS、CS、IMAGES)。
我正在尝试通过添加 apache 规则来修改这些资产的 Header cookie,但似乎这可能不起作用,因为文件不在 apache 级别内?
<FilesMatch ".(js|css)$">
Header edit Set-Cookie (.*) "$1;HttpOnly;Secure;SameSite=Strict"
</FilesMatch>
我尝试添加没有FilesMatch 条件的规则并且它有效,但这不是我需要的。
关于如何在 Apache 级别上完成此操作的任何想法。这是httpd conf的摘录
<VirtualHost *:443>
DocumentRoot "/apps/httpd/htdocs1"
ServerName www.mydomain.com
ServerAlias mydomain.com
RewriteEngine on
RewriteCond %{REQUEST_URI} ^/version$
RewriteRule ^/.*$ /version.html [R=301,L]
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^ https://www.%{HTTP_HOST}%{REQUEST_URI} [R=302,L]
<Proxy balancer://${HOSTNAME}-http-cluster>
Header add Set-Cookie "MYAPP_SESSION=jacplus.%{BALANCER_WORKER_ROUTE}e;path=/;"
BalancerMember http://myhost-002:31080 min=1 max=1000 loadfactor=1 retry=1 timeout=240 route=myhost-002
BalancerMember http://myhost-003:31080 min=1 max=1000 loadfactor=1 retry=1 timeout=240 route=myhost-003
</Proxy>
ProxyPass / balancer://${HOSTNAME}-http-cluster/ stickysession=MYAPP_SESSION lbmethod=byrequests
ProxyPassReverse / balancer://${HOSTNAME}-http-cluster/ stickysession=MYAPP_SESSION
<Location /balancer-manager>
SetHandler balancer-manager
Order deny,allow
Deny from all
Allow from 10.25.0.0/16
</Location>
...
</VirtualHost>
【问题讨论】:
标签: java apache header tomcat8 httpd.conf