Skip to content

stack/wendelin: Patch CMFCore to fix Last-Modified header format

Xiaowu Zhang requested to merge xiaowu.zhang/slapos:fix/last_modified into master

_checkConditionalGET() used str(content_mod_time) to set the Last-Modified response header, producing the non-standard Zope

DateTime format "2020/04/14 14:26:28.750000 UTC" instead of the RFC 1123 format "Tue, 14 Apr 2020 14:26:28 GMT" required by HTTP.

This only affected responses to requests carrying If-Modified-Since,

while normal GETs (going through _setCacheHeaders) were correct.

Fix by using rfc1123_date(content_mod_time.timeTime()), consistent

with the rest of the file and with CachingPolicyManager.getHeaders.

an easy way to reproduce the bad date format is:

curl -H 'If-Modified-Since: Mon, 17 May 2026 12:27:54 GMT' -s -k -D - -o /dev/null https://[xxxx]:2152/erp5/web_site_module/renderjs_runner/

ThinkPad-T14:~$ curl  -H 'If-Modified-Since: Mon, 17 May 2026 12:27:54 GMT' -s -k -D - -o /dev/null https://[xxxx]:2152/erp5/web_site_module/renderjs_runner/ | grep last
last-modified: 2020/04/14 14:26:28.750000 UTC

without -H
ThinkPad-T14:~$ curl   -s -k -D - -o /dev/null https://[xxxx]:2152/erp5/web_site_module/renderjs_runner/ | grep last
last-modified: Tue, 14 Apr 2020 14:26:28 GMT

Merge request reports