Добавление заголовков безопасности в JSONModel в Zend Frameword 2.3 - PullRequest
0 голосов
/ 06 ноября 2019

Я хочу добавить заголовки безопасности к объекту JSONModel, возвращаемому модулем Controller. Приведенный ниже код работает без ошибок, но я не вижу заголовка, который я добавил в диагностике Chrome.

Я добавил EVENT_SEND_RESPONSE в приложение в надежде, что заголовок безопасности будет добавлен в JSONкод.

$this->getServiceLocator()->get('Application')->getEventManager()->attach(\Zend\Mvc\ResponseSender\SendResponseEvent::EVENT_SEND_RESPONSE, function(){
    $response = $this->getResponse();
    $headers = $response->getHeaders();
    $headers->clearHeaders();
    $headers->addHeaderLine('Strict-Transport-Security: max-age=604800‬; includeSubDomains');
    $response->setHeaders($headers);
}, -999);

$json = new JsonModel([
    'pendingJobs' => 4,
    'runningJobs' => 3,
    'refreshInterval' => 15,
]);

return $json;

Я не вижу сообщения об ошибке. Я вижу следующий вывод в диагностике Chrome. Максимальный возрастной заголовок равен нулю вместо 604800.

Request URL: http://localhost:8080/api/job_queue
Request Method: GET
Status Code: 200 OK
Remote Address: 127.0.0.1:8080
Referrer Policy: no-referrer-when-downgrade
Cache-Control: no-store, no-cache, must-revalidate
Connection: close
Content-Type: application/json; charset=utf-8
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Host: localhost:8080
Pragma: no-cache
X-Powered-By: PHP/7.0.33-8+ubuntu18.04.1+deb.sury.org+1
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3
Accept-Encoding: gzip, deflate, br
Accept-Language: en-US,en;q=0.9
Cache-Control: max-age=0
Connection: keep-alive
Cookie: PHPSESSID=u3i4t9lr6g2efhbp09lu9n43k7
Host: localhost:8080
Sec-Fetch-Mode: navigate
Sec-Fetch-Site: none
Sec-Fetch-User: ?1
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.70 Safari/537.36
...