Laravel 5.6 TrustedProxies-Fehler

9

Ich habe heute von L5.5 auf L5.6 aktualisiert (dabei werden Symfony-Komponenten auf v4 aktualisiert). Außerdem habe ich fideloper/proxy package auf 4.0 als offiziellen Laravel 5.6 Upgrade Guide aktualisiert.

Danach bekomme ich diesen Fehler: Type error: Argument 2 passed to Symfony\Component\HttpFoundation\Request::setTrustedProxies() must be of the type integer, array given, called in /var/www/html/vendor/fideloper/proxy/src/TrustProxies.php on line 54

Symfony 4's Symfony\Component\HttpFoundation\Request::setTrustedProxies() erwartet tatsächlich ein Integer (Bitmaske) als zweites Argument:

%Vor%

und fideloper/proxy 4.0 gibt tatsächlich ein Array anstelle einer Ganzzahl in diese Funktion:

%Vor%

und

%Vor%

Also kann ich nicht verstehen, ob das ein Fehler in fideloper/proxy ist oder ich gerade etwas verpasse?

    
SkifAlef 08.02.2018, 09:00
quelle

3 Antworten

6

Wie in dem Upgrade-Leitfaden angegeben, müssen Sie die Eigenschaft $ headers in App \ Http \ festlegen. Middleware \ TrustProxies zu einer Bit-Eigenschaft.

Die Konstanten sind in Symfony \ Component \ HttpFoundation \ Request definiert.

%Vor%

Im Upgrade-Handbuch wird HEADER_X_FORWARDED_ALL verwendet, Sie können jedoch eine Kombination der Bitwerte verwenden.

    
WJDev 08.02.2018, 11:37
quelle
10

Nach einigen Untersuchungen (Winmerge Vergleich mit einer neuen Installation von Laravel 5.6) kommt es auf einen Unterschied in den Dateien app\Http\Middleware\TrustProxies.php :

an

Laravel 5.5:

%Vor%

Laravel 5.6:

%Vor%

Ergo, setzen Sie protected $headers = Request::HEADER_X_FORWARDED_ALL; gemäß Laravel 5.6 Version

    
Inigo 08.02.2018 11:47
quelle
5

Öffnen Sie app\Http\Middleware\TrustProxies.php .

Ändern Sie Folgendes:

%Vor%

zu

%Vor%     
aphoe 12.02.2018 00:28
quelle

Tags und Links