Prázdná HTTP hlavička Authorization
- chikeet
- Člen | 160
Zdravím,
v presenteru (v metodě, která se volá ze startup
)
mám tohle:
$header = $this->getHttpRequest()->getHeader('Authorization');
a když si následně dumpnu $header
, je v ní
NULL
.
Request posílám přes tenhle nástroj a hlavičku Authorization jsem tam zkoušela nastavit jak přes Authentication, tak přes Headers. V requestu v uvedeném nástroji ta hlavička v obou příadech je a není prázdná. Co dělám špatně?
- Jan Tvrdík
- Nette guru | 2595
@chikeet A co jiné hlavičky? Není možné, že ti tu hlavičku zahazuje nějaká proxy, Apache nebo nginx?
- chikeet
- Člen | 160
Tak jsme po dlouhých bojích s konfigurací došli k tomu, že bez Nette se na produkci hlavičky neztrácí, ale s Nette ano. Nějaké nápady, jak to řešit? Cokoliv?
Lokálně mi to funguje bez problémů, i když tahám auth hlavičku
v presenteru přes
$this->getHttpRequest()->getHeader('Authorization')
.
Na produkci to nevytáhnu ani z $_SERVER['PHP_AUTH_USER']
a
$_SERVER['PHP_AUTH_PW']
.
Lokálně vyvíjím zatím na Xamppu s PHP 5.6.12, na produkci máme 7.1.0. Nemůže to nějak souviset s tím?
- matopeto
- Člen | 395
Mozes skusit vydebutgovat kde to zmizne. Takto nette berie headers: https://github.com/…tFactory.php#L178
- Martk
- Člen | 661
Tady se to řešilo a zdá se, že i vyřešilo
Co jsem zjistil (nevychází to z mojích znalostí), tak proměnná $_SERVER nikdy neobsahuje klíč Authorization, zatímco funkce apache_request_headers ano. Takže máš pravděpodobně na localu funkci apache_request_headers, ale na amazonu ne.
Editoval Martk (27. 2. 2017 16:36)
- chikeet
- Člen | 160
Tak Nette je v tom nevinně :-) (Mně to bylo divné…)
@Martk díky, nakonec zafungovalo tohle:
SetEnvIf Authorization .+ HTTP_AUTHORIZATION=$0
(http://stackoverflow.com/a/26986394)
@JanMikeš použití jiné hlavičky jsme zvažovali jako nouzové řešení, ale měli bychom s tím režii my i klient, blbě by se to testovalo atd., takže jsem fakt ráda, že se to podařilo rozchodit standardní cestou :-)
Jinak na localu jsem žádné zvláštní nastavení nepotřebovala, nejspíš díky apache_request_headers, nebo nějaké jiné šťastné souhře náhod.
Editoval chikeet (28. 2. 2017 15:21)