Validation et Sécurité dans le FrameWork Symfony 3
Dans une classe, quelle annotation DockBlock doit-on ajouter à un attribut pour contraindre sa valeur à être d'une longueur d'au moins 10 caratères et obtenir le message d'erreur ''Oups 10 caractères minimum'' en cas d'invalidité?
@Assert\Length(min=10, minMessage="Oups {{ limit }} caractères minimum")
Oui
''min'' est une option de la contrainte ''Length''
Est-ce que toutes les contraintes possèdent l'option ''message'' afin de définir notre propre message en cas d'invalidité?
Oui
Dans notre contrôleur quelle méthode du formulaire fera appel au composant ''Validator'' de Symfony pour valider l'objet hydraté par le formulaire?
Ce n'est pas la méthode ''isValid()'' qui elle compte le nombre d'erreur et retourne false s'il y a au moins une erreur.
Pourquoi lors de la validation des formulaires on se sert nous même que trés peu du service Validator?
Car le formulaire le fait à notre place avec la mèthode ''handleRequest'' qui va elle même faire appel au service validator.
$form->handleRequest($request)->isValid()
Dans une classe, les contraintes que l'on pose dans les annotations d'attributs sont-elle sensibles à la casse?
Oui
Il faut bien faire la différence entre minuscules et majuscules
Peut-on valider un objet indépendamment d'un formulaire?
Si oui, quelle méthode du service Validator doit-on utiliser dans un contrôleur?
Quelle annotation utilise-t-on sur une instance d'une classe B qui est utilisée dans une classe A, afin que les règles de validations de la classe B puissent s'appliquer?
Peut-on valider les attributs d'une classe avec une contrainte Callback?
Oui
Quel est l'avantage des contraintes Callback?
Peut-on faire en sorte que l'attribut d'une entité soit unique parmi toutes les autres entités existantes?
Oui
Que doit-on faire pour que l'attribut d'une entité soit unique parmi toutes les autres entités existantes?
Symfony nous permet-il de créer nos propres classes de contraintes?
Oui
Si l'on crée notre propre contrainte avec la classe Toto.php, quel devrait-être le nom par défaut de son validateur?
TotoValidator.php
@Toto(message=''Message Personnalisé'') ?
Il permet d'ajouter un paramètre %string% dans le message d'erreur.
Par exemple : "Message %string% trop court!"
Peut-on transformer en service une classe de validation que l'on a créée?
Oui
Quel est l'intérêt de transformer une classe valideuse en service?
Dans le cas où pour valider on ait besoin d'autres informations.
On peut par exemple lui injecter des services comme
ou
Quelle est la différence entre l'Autorisation et l'Authentification?
Quels sont les deux états d'Authentification d'un client?
Quelles sont les étapes d'Authentification et d'Autorisation qui se répètent toujours lorsqu'un utilisateur souhaite accéder à une ressource internet?
Citez quelques moyens possibles pour s'authentifier?
Quel fichier permet de configurer la sécurité dans Symfony?
Le fichier:
app/config/security.yml
Citez les sections situées dans le fichier de configuration:
app/config/security.yml
Quel Bundle de Symfony est paramétré via le fichier:
app/config/security.yml?
SecurityBundle
Que fait la section ''encoders'' dans le fichier:
app/config/security.yml
?
Que fait la section ''role_hierarchy'' dans le fichier:
app/config/security.yml
?
Quel est le préfixe que tout nom de rôle doit utiliser?
Le préfixe ROLE_
Le rôle d'un administrateur est-il toujours:
ROLE_ADMIN
Le rôle peut être ROLE_TOTO ou tout autre chose du moment qu'il commence par:
ROLE_
et que les règles de sécurités associées à ce rôle soient celles d'un administrateur.
Que fait la section ''providers'' dans le fichier:
app/config/security.yml
?
Que fait la section ''firewalls'' dans le fichier:
app/config/security.yml
?
Combien de pare-feux peuvent agir sur une URL?
Un seul pare-feu
Que fait la section ''access_control'' dans le fichier:
app/config/security.yml
?
Quels sont les 4 moyens de tester les rôles des utilisateurs pour accéder à une resource?
Comment écrire notre pare-feu ''toto'' dans app/config/security.yml pour que les utilisateurs anonymes puissent accéder à toutes nos URL?
Dans le fichier app/config/security.yml comment créer un pare-feu ''toto'' qui désactive la sécurité pour toutes les URL qui commencent par /web/css?