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 :

route, host, et regex


Sujet :

Symfony PHP

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Février 2012
    Messages
    116
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2012
    Messages : 116
    Points : 85
    Points
    85
    Par défaut route, host, et regex
    Bonjour,

    Je souhaite interdire des hosts sur certaines route en utilisant les regex en faisant quelque chose du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    back_admin:
        resource: "@MyAppBackBundle/Resources/config/routing/admin/base.yml"
        host:     "!(%manager.host%)"
        prefix:   /admin
    Cela ne fonctionne pas. Je suis contraint d'utiliser la négation car j'ai beaucoup de host admin, mais qu'un seul host manager.
    Quelqu'un peut il m'aider sur l'utilisation de la regex ? Merci.

  2. #2
    Inactif  
    Homme Profil pro
    Inscrit en
    Janvier 2014
    Messages
    374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Janvier 2014
    Messages : 374
    Points : 479
    Points
    479
    Par défaut
    Bonjour.
    On ne comprend rien !
    Donnez un exemple de chaine, avec ce qu'il faut y détecter.

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Février 2012
    Messages
    116
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2012
    Messages : 116
    Points : 85
    Points
    85
    Par défaut
    Bonjour,

    parameters.yml
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    parameters:
        manager.host: mon-domaine.fr
    routing.yml
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    back_manager:
        resource: "@MyAppBackBundle/Resources/config/routing/manager/base.yml"
        host:     %manager.host%
        prefix:   /manager
     
    back_admin:
        resource: "@MyAppBackBundle/Resources/config/routing/admin/base.yml"
        host:     !(%manager.host%)
        prefix:   /admin
    C'est mieux là ?

  4. #4
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Septembre 2009
    Messages
    875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Septembre 2009
    Messages : 875
    Points : 1 313
    Points
    1 313
    Par défaut
    par host tu entends bien une adresse de dns genre http://www.developpez.net

    Sinon, vu que les routes sont lues dans l'ordre, ça devrait marcher comme ca non?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    back_manager_special:
        resource: "@MyAppBackBundle/Resources/config/routing/manager/base.yml"
        host:     %manager.host%
        prefix:   /manager
     
    back_manager_default:
        resource: "@MyAppBackBundle/Resources/config/routing/admin/base.yml"
        prefix:   /manager

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Février 2012
    Messages
    116
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2012
    Messages : 116
    Points : 85
    Points
    85
    Par défaut
    Merci, mais non, cela ne fonctionne pas, les préfixs sont différents

  6. #6
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Septembre 2009
    Messages
    875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Septembre 2009
    Messages : 875
    Points : 1 313
    Points
    1 313
    Par défaut
    Ducoup quel est l'interet de les différencier par host? (c'est une vrai question que je pose, pas un troll)

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Février 2012
    Messages
    116
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2012
    Messages : 116
    Points : 85
    Points
    85
    Par défaut
    Mon application contient deux back-offices:
    - Un pour les gestionnaires de l'application (nous). ex: http://mon-application.fr/manager
    - Un pour nos clients, chaque client à sont back-office. ex: http://client1.fr/admin, http://client2.fr/admin, etc...

    Une des principales raison pour laquelle j'ai crée deux back-offices est qu'ils ont des fonctionnalités totalement différentes.

  8. #8
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Septembre 2009
    Messages
    875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Septembre 2009
    Messages : 875
    Points : 1 313
    Points
    1 313
    Par défaut
    Si les deux urls /manager et /admin sont différentes je ne comprends pas le besoin de les discriminer par l'host puisqu'elles sont deja différentes.

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

    Informations forums :
    Inscription : Novembre 2010
    Messages : 168
    Points : 219
    Points
    219
    Par défaut
    T'as pas regardé le code du composant Routing toi ....

    https://github.com/symfony/Routing/b...76b4/Route.php


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
        public function setHost($pattern)
        {
            $this->host = (string) $pattern;
            $this->compiled = null;
     
            return $this;
        }
    le parameter host n'est pas sanitizer par la suite donc ....


    Si tu veux le faire faut que tu modifie la class Route utilisé dans ton application et faire en sorte de traiter les expression reguliére sur le host !

  10. #10
    Membre régulier
    Profil pro
    Inscrit en
    Février 2012
    Messages
    116
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2012
    Messages : 116
    Points : 85
    Points
    85
    Par défaut
    Citation Envoyé par gototog Voir le message
    Si les deux urls /manager et /admin sont différentes je ne comprends pas le besoin de les discriminer par l'host puisqu'elles sont deja différentes.
    Dans la configuration actuelle certaines routes sont accessibles (ex: la page de mon-domaine.fr/admin/login).

Discussions similaires

  1. Hosts et regex
    Par Crillus dans le forum VBScript
    Réponses: 1
    Dernier message: 25/05/2015, 12h27
  2. Problème route regex annule les liens
    Par mparnigoni dans le forum Zend Framework
    Réponses: 3
    Dernier message: 19/09/2012, 16h38
  3. [ZF 1.11] Zend Controller Router Route Regex
    Par traz0m dans le forum Zend Framework
    Réponses: 1
    Dernier message: 20/07/2012, 14h08
  4. Squid : no route to host
    Par vivelapsp dans le forum Réseau
    Réponses: 8
    Dernier message: 24/04/2009, 15h59
  5. [PHPMailer] fsockopen() - unable to connect (no route to host)
    Par goldkey dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 18/01/2008, 13h42

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