Zum Inhalt springen

felogin/https_enforcer: Nach Login auf eine Seite mit https weiterleiten?

Erstellt am 2. Mai 2011 · 1 Antwort · letzte Antwort am 2. Mai 2011

Tags: Frage

typonewbe ·

Hallo,

ich benutze die felogin und https_entforcer beide Extensions funktionieren erstmal soweit so gut nun möchte ich das wenn ein User sich einloggt die Seite von http zu https wechselt.

Dazu habe ich im TS geschrieben:

[loginUser = *] || [PIDinRootline = 1, 2]
config.baseURL = https://{$config.domain}/
plugin.tx_httpsenforcer_pi1.require_ssl = 1
[global]

Wenn man sich jetzt einloggt wird die baseurl auch richtig gesetzt leider ist es so das wir möchten das ein User auf der Seite bleibt auf der er sich gerade befindet. Das ist insofern ein Problem, da die Seite nach dem Login in der url (Adressleiste) immer noch http hat.

Sobald man aber die Seite wechselt erscheint auch https als Protokoll das liegt wohl daran, dass wenn man die Seite wechselt in den Links dank baseurl schon https steht.

Also dachte ich wenn man per redirect_url die selbe url nochmal aufruft müsste es ähnlich wie beim Seitenwechsel sein, das die Seite neugeladen wird mit https.

Dazu hab ich mir eine Ext. installiert die per Hook das hiddenfeld redirect_url Manipuliert und die aktuelle pageid übergibt.
Leider hilft das Null. Ich vermute mal da die url in der felogin mittels

$this->pi_getPageLink(irendeinepageid);

zusammengebastellt wird ist da immer noch das Protokoll auf http anstatt auf https gesetzt.

So nun die Frage kann ich irgendwo mittels PHP oder TypoScript dies Funktion beeinflussen so das diese https verwendet?

Oder gibs ne andere Möglichkeit nach dem Login auf der selben Seite zu bleiben nur mit anderem Protokoll in der Adressleiste?

Vielen Dank im Voraus

Gruß typonewbe

typonewbe ·

Hallo,

so ich hab mich jetzt mal durch den QC der felogin und TYPO3 Cores gewühlt und folgendes herausgefunden.

die felogin ruft:

t3lib_utility_Http::redirect($this->redirectUrl);

die Funktion ruft wiederum

t3lib_div::locationHeaderUrl($url)

auf diese holt sich Protokoll://Seite aus

$path = self::getIndpEnv('TYPO3_REQUEST_HOST').$path;

bzw.

$path = self::getIndpEnv('TYPO3_REQUEST_DIR').$path;

Wenn man bissl weiter in der getIndpEnv wühlt stößt man darauf, dass in einem switch abgefragt wird
wenn "TYPO3_SSL" gesetzt dann mache https ansonsten http

jetzt der Hammer in der selben Funktion steht auch "TYPO3_SSL", das wiederum wird true gesetzt wenn

cmpIP($_SERVER['REMOTE_ADDR'], $proxySSL)

gesetzt ist oder

SSL_SESSION_ID || $_SERVER['HTTPS'] = 'on' || $_SERVER['HTTPS'] = 1

ist.

So jetzt die große Frage kann ich diese Variablen irgendwo setzen?

Im Installtool möchte ich aber kein * vergeben in "reverseProxySSL", da ja sonst alles über SSL läuft das ist ja nicht was ich möchte.

So hoffe das jemand hier mir einen Tipp geben kann.

Danke schon mal im Voraus

Gruß typonewbe