Projet

Général

Profil

Anomalie #6480

[http/https] Le mélange des genres

Ajouté par Charles Bonnissent il y a presque 3 ans. Mis à jour il y a presque 3 ans.

Statut:
Intégré
Priorité:
Normal
Assigné à:
Version cible:
Début:
24/06/2016
Echéance:
% réalisé:

100%

Version source:
Solution proposée:

Plusieurs pistes :

  • se reposer sur une conf serveur (paramètre applicatif) : problème chez certains clients les protocoles et nom de domaine varient suivants les personnes accédant à l'appli,
  • utiliser une url sans protocole ://
  • le faire en js côté client
Principaux fichiers impactés:
Complexité:
Contrôle:
Régression:
Non
Thèmes UIs:
Template
Jalons: 3.2 R17, 3.2 R18

Description

Lorsque l'application dynacase est hébergée derrière un frontal qui fait du https mais qui discute en http avec le serveur apache alors on ne peut plus faire fonctionner ddui

Dans le code, une tentative est faite côté serveur pour deviner le type de connexion :

protected static function getBaseUrl()
    {
        $url = sprintf("%s://%s", self::getRequestScheme() , $_SERVER["SERVER_NAME"]);
        if ($_SERVER["SERVER_PORT"] !== "80") {
            $url.= sprintf(":%s", $_SERVER["SERVER_PORT"]);
        }
        if (preg_match('@^(.*)/api/v1/@', $_SERVER["REQUEST_URI"], $reg)) {
            $url.= $reg[1];
        } else {
            if (preg_match('@^(.*)/\\?@', $_SERVER["REQUEST_URI"], $reg)) {
                $url.= $reg[1];
            }
        }
        $url.= "/";
        return $url;
    }

Ceci ne semble pas fonctionner car apache sert du http au proxy et donc la base url est en http

A noter qu'on peut avoir potentiellement le même problème avec le nom de domaine.

Historique

#1 Mis à jour par Éric Brison il y a presque 3 ans

  • Version cible mis à 1.1.0
  • Statut changé de Nouveau à À analyser
  • Assigné à mis à Éric Brison

#2 Mis à jour par Jérôme Augé il y a presque 3 ans

C'est lié à #6382.

Je pense qu'il faut que la détection de l'entête "X-Forwarded-Proto" soit faite en premier car _SERVER["REQUEST_SCHEME"] sera toujours à "http" sur un Apache 2.4 derrière un frontend SSL.

#3 Mis à jour par Éric Brison il y a presque 3 ans

  • Statut changé de À analyser à Intégré
  • % réalisé changé de 0 à 100

Appliqué par commit commit:dynacase-document-uis|d1cf5180607cb0b01d1f2ece5226e0fc7bbfc04b.

Formats disponibles : Atom PDF