9
votes

Zend Framework 2 - BjyaThorize refuse toujours l'accès

j'ai configuré le bjyoungblood / bjy-autoriser module, mais je reçois actuellement une 403 "Accès refusé" Erreur pour chaque URL, à l'exception de celle configurée dans l'itinéraire Accueil .

mon module.byjauthorize.global.php On dirait comme suit: xxx

J'ai essayé de supprimer le BjyaTutorize \ Guard \ Itinéraire pièce, mais sans effet. Lorsque je supprimai la route home , la page d'accueil est également bloquée. Donc, les deux contrôleurs et la garde d'itinéraire semblent fonctionner. Comment puis-je déboguer ce comportement?


3 commentaires

Est le rôle par défaut invité défini?


Oui. Dans la configuration et dans la base de données (manuellement)


Hmm, l'erreur de telle peut être assez profonde. Ceci est une configuration de travail à ma fin, mais je ne garde pas des itinéraires ou des contrôleurs: GITUB.COM/MANUAKASAM/DuitMarketplace/blob/Master/config/... Les contrôleurs index et Application \ contrôleur \ index sont définitivement différents ceux?


4 Réponses :


5
votes

Dès que vous créez une entrée dans le tableau 'BjyaTutorize \ Guard \ Controller' , vous devez créer des entrées pour chaque contrôleur avec des autorisations, selon le cas.

J'ai ceci: xxx

Il est important que vous donniez un accès invité à Zfuser (pour la connexion!) et une erreur (difficile à déboguer sinon).

Je n'ai pas essayé d'utiliser un contrôleur et des gardes d'itinéraire simultanément.


0 commentaires

11
votes

note : suivant est valide pour BjyaThorize 1.2. *

Tout d'abord, considérez que la protection des routes et des contrôleurs est inutile. Personnellement, je protège toujours les contrôleurs, car il peut y avoir plusieurs itinéraires vers un même contrôleur.

Une fois que vous avez supprimé l'itinéraire ou la configuration de la Guard Controller, vous pouvez:

  • Installez Zend Developer Tools , ce qui vous permet d'avoir un aperçu de la définition actuelle < un href = "http://framework.zend.com/manual/2.1/fr/modules/zend.permissions.acl.intro.html#roles" rel = "NOREFERRER"> CAD CORE , comme dans cette image:

    Entrez la description de l'image ici

  • Vérifiez si vous avez configuré le bon fournisseur d'identité: l'on utilise par défaut utilise ZFCuser ID utilisateur de l'utilisateur et lève son rôle dans la table user_role .

  • Vérifiez que le rôle Guest a accès aux pages publiques, telles que le contrôleur zfcuser (pour les actions de connexion) ou le zfcuser / login route.

    Comme Akrabat a souligné, la configuration du BjyaTutorize \ Guard \ Controller et BjyaThorize \ Guard \ Guard \ Itinéraire sont whitelistes , qui signifie fondamentalement que vous devez configurer l'accès au rôle invité par défaut si vous souhaitez parcourir les pages étant authentifiés .

    Dès qu'un garde est configuré, il bloque l'accès à une ressource non configurée, alors assurez-vous que vous avez accordé le rôle invité (ou tout ce que vous avez configuré dans $ config [' bjyauthorize '] [' défaut_role '] Accédez au moins du contrôleur de connexion ou de la route.


4 commentaires

Merci à vous deux! J'ai commis une erreur avec le chemin des contrôleurs ... si bête! Afaik jusqu'à présent, tout semble fonctionner!


@Ron même si votre erreur est une faute de frappe, j'ai modifié la question de sorte qu'elle ne soit pas trop localisée (sinon elle sera fermée). J'espère que cela est utile aux autres aussi :)


@Ocrame est là un moyen de faire déranger mon module API l'autorisation fournie par BjyaThorize depuis mon module API son propre processus d'autorisation?


Faites attention aux autres modules en écrivant la configuration. Dans mon cas, il y avait Zfcadmin définit la configuration BjyaThorise et cela a provoqué des problèmes avec la Guard Guard VS Controller Guard. I.E. Vérifiez tous vos fichiers de configuration pour l'intégration BJY et les configurations automatiques



1
votes

J'ai eu le même problème.

Je pense que le problème est que BjyaThorize n'est pas bien documenté tant d'entre nous suffisent simplement de copier et de coller et de travailler à partir des fichiers fournis. Par exemple, à partir des éléments suivants: P>

array('controller' => 'Folder/Controller/Action', 'role' => array()),


0 commentaires

0
votes

déboguer votre code par ceci dans module.php xxx


0 commentaires