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 :

Pourquoi access_denied_handler ne marche pas ?


Sujet :

Symfony PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Inscrit en
    Septembre 2004
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 5
    Par défaut Pourquoi access_denied_handler ne marche pas ?
    Bonjour

    Je veux customiser le comportement de Symfony2 quand une excpetion AccessDeniedException est levée. Par défaut une redirection 302 est faite ce qui est très bien quand l'excpetion est levé du fait d'une requête HTTP standard mais qui pose problème quand la requête est en XMLHTTPRequest.
    Je veux pouvoir en réponse à l'AccessDeniedException envoyer en fonction de la requête qui lève l'exception soit un redirect soit un objet json.
    Symfony2 définit justement le paramètre access_denied_handler dans security.yml pour effectuer ce traitement mais dans mon cas je constate que mon impléemntation d'AccessDeneidHandelr n'est jamais appelé. Pourquoi ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    #security.yml
    firewalls:
        secured_area:
            access_denied_handler: kernel.listener.access_denied.handler
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    #config.yml
    kernel.listener.access_denied.handler:
       class: NoaLisa\Bundle\OVMBundle\DependencyInjection\AccessDeniedHandler
         tags:
            - { name: kernel.event_listener, event: security.kernel_response, method: handle}
    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
     
    #AccessDeniedHandler
     
    class AccessDeniedHandler implements AccessDeniedHandlerInterface{
     
    function handle(Request $request, AccessDeniedException $accessDeniedException){
     
        if ($request->isXmlHttpRequest()) {
            $response = new Response(json_encode(array('status' => 'protected')));
            return $response;
        }
        else {
            return new RedirectResponse($this->router->generate('login'));
        }
    }
    }

  2. #2
    Membre à l'essai
    Inscrit en
    Septembre 2004
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 5
    Par défaut
    up

Discussions similaires

  1. Pourquoi INTERSECT ne marche pas ?
    Par Chatbour dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 25/06/2007, 23h03
  2. [Débutante] Pourquoi ça ne marche pas...?
    Par Tootsi dans le forum AWT/Swing
    Réponses: 3
    Dernier message: 12/02/2006, 17h58
  3. Pourquoi ce code marche pas sous FF?
    Par Death83 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 09/09/2005, 11h04
  4. [W3C] Pourquoi ça ne marche pas sous IE
    Par polo-j dans le forum Balisage (X)HTML et validation W3C
    Réponses: 6
    Dernier message: 16/02/2005, 17h07

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