IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Symfony PHP Discussion :

il manque des header dans headerBag


Sujet :

Symfony PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert
    Avatar de pmithrandir
    Homme Profil pro
    Responsable d'équipe développement
    Inscrit en
    Mai 2004
    Messages
    2 419
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Responsable d'équipe développement
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 2 419
    Par défaut il manque des header dans headerBag
    Bonjour,

    On a un problème sur un de nos produit.
    Nous recevons d'un proxy des headers, entre autre pour définir le login de la personne connectée au SSO.

    Certains passent, d'autres non(on dirait ceux avec un _ dedans)

    Sachant que si on execute apache_request_headers, on voit bien les headers.

    Est-ce que vous savez ce qu'on devrait utiliser ?

    Notre app.php est comme cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
     
    <?php
     
    umask(0000);
     
    use Symfony\Component\ClassLoader\ApcClassLoader;
    use Symfony\Component\HttpFoundation\Request;
     
    $loader = require_once __DIR__.'/../app/bootstrap.php.cache';
     
    // Use APC for autoloading to improve performance.
    // Change 'sf2' to a unique prefix in order to prevent cache key conflicts
    // with other applications also using APC.
    /*
    $loader = new ApcClassLoader('sf2', $loader);
    $loader->register(true);
    */
     
    require_once __DIR__.'/../app/AppKernel.php';
    //require_once __DIR__.'/../app/AppCache.php';
     
    $kernel = new AppKernel('prod', false);
    $kernel->loadClassCache();
    //$kernel = new AppCache($kernel);
    $request = Request::createFromGlobals();
     
    $request->setTrustedProxies(array('192.168.92.0/24'));
     
    $response = $kernel->handle($request);
    $response->send();
    $kernel->terminate($request, $response);
    Donc a priori, on pense qu'on autorise ce qu'il faut.

    Qu'en pensez-vous ?
    Pierre

  2. #2
    Membre Expert
    Avatar de pmithrandir
    Homme Profil pro
    Responsable d'équipe développement
    Inscrit en
    Mai 2004
    Messages
    2 419
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Responsable d'équipe développement
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 2 419
    Par défaut
    Bonjour,

    On a bien vérifié, et il semble que les http header contenant un underscore ne soit pas accepté par symfony.
    C'est un bug puisque le _ est un caractère accepté par la norme.

    Est-ce que vous voyez ou la sélection est faite ? J'aimerai fournir une correction, mais on ne trouve pas ou est le problème dans le code.

    Pierre

  3. #3
    Membre expérimenté
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    168
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 168
    Par défaut
    tu peux me donner un exemple de nom de variables ?

    https://github.com/symfony/HttpFoundation
    ServerBag et HeaderBag.
    https://github.com/symfony/HttpFound...quest.php#L265

  4. #4
    Membre Expert
    Avatar de pmithrandir
    Homme Profil pro
    Responsable d'équipe développement
    Inscrit en
    Mai 2004
    Messages
    2 419
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Responsable d'équipe développement
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 2 419
    Par défaut
    Si tu prend test_cool, ca ne fonctionne pas.
    Alors que test-super fonctionnera.

    Je pense que le coupable est du coté du set de headerbag, mais il faut que je regarde ca demain a tête reposée.(et j arrive pas à vérifier si on passe dedans)

  5. #5
    Membre Expert

    Profil pro
    Inscrit en
    Mai 2008
    Messages
    1 576
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 1 576
    Par défaut
    Les underscores sont effectivement systématiquement remplacés par des tirets dans HeaderBag.php. Comme ton lien l'indique, la raison est sans doute qu'ils sont désactivés par défaut dans Apache et nginx.

  6. #6
    Membre Expert
    Avatar de pmithrandir
    Homme Profil pro
    Responsable d'équipe développement
    Inscrit en
    Mai 2004
    Messages
    2 419
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Responsable d'équipe développement
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 2 419
    Par défaut
    Bonjour,

    En fait, ils ne sont juste pas remplacé par des tirets, ils sont carrément supprimé.
    Contenu de apache_request_headers()
    Array (
    [Host] => exif.dev
    [User-Agent] => Mozilla/5.0 (Windows NT 6.1; WOW64; rv:35.0) Gecko/20100101 Firefox/35.0
    [Accept] => text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
    [Accept-Language] => fr,fr-fr;q=0.8,en-us;q=0.5,en;q=0.3
    [Accept-Encoding] => gzip, deflate
    [DNT] => 1
    [Cookie] => PHPSESSID=okljr2ojd1i9976rjb74ignkt1
    [test_test] => test
    [test-coucou] => test
    [Connection] => keep-alive )
    contenu de headerBag->all()
    Array (
    [host] => Array ( [0] => exif.dev )
    [user-agent] => Array ( [0] => Mozilla/5.0 (Windows NT 6.1; WOW64; rv:35.0) Gecko/20100101 Firefox/35.0 )
    [accept] => Array ( [0] => text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 )
    [accept-language] => Array ( [0] => fr,fr-fr;q=0.8,en-us;q=0.5,en;q=0.3 )
    [accept-encoding] => Array ( [0] => gzip, deflate )
    [dnt] => Array ( [0] => 1 )
    [cookie] => Array ( [0] => PHPSESSID=okljr2ojd1i9976rjb74ignkt1 )
    [test-coucou] => Array ( [0] => test )
    [connection] => Array ( [0] => keep-alive )
    [x-php-ob-level] => Array ( [0] => 0 ) )
    On voit que test_test disparait totalement.

    EDIT : échange des 2 intitulés

Discussions similaires

  1. [1.x] [sf 2.0] Il manque des méthodes dans la classe Form
    Par rei.uchiwa dans le forum Symfony
    Réponses: 1
    Dernier message: 28/10/2010, 20h03
  2. Il manque des types dans "save as" sous Photoshop
    Par Lucas Panny dans le forum Imagerie
    Réponses: 4
    Dernier message: 28/04/2010, 12h11
  3. Manque des dbf dans sauvegarde inc 0 ?
    Par tghsimon dans le forum Recovery Manager
    Réponses: 0
    Dernier message: 26/08/2009, 15h38
  4. Il manque des enregistrements dans mon formulaire
    Par Oneria dans le forum Requêtes et SQL.
    Réponses: 6
    Dernier message: 11/07/2007, 12h03
  5. Gestion des headers dans un Makefile
    Par Weren dans le forum Autres éditeurs
    Réponses: 1
    Dernier message: 09/11/2004, 10h44

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo