* */ namespace App\Session\AuthBundle\Security\Interfaces; use Symfony\Component\Security\Core\User\UserInterface; interface AuthInterface { /** * Contrôle de l'accès à partir des attributs CAS ou RSA * * Vérifier les droits d'accès à l'application à partir des attributs récupérées des getters : * - CasAttributes * - RsaAttributes * * @param UserInterface $user * L'entité user récupéré par le provider * * @return bool * - true si accès autorisé * - false si accès refusé */ public function ctrlAccess(UserInterface $user); /** * Calcule et retoune le(s) rôle(s) à partir des attributs CAS ou RSA * * Calculer le(s) rôle(s) à partir des attributs récupérées des getters : * - CasAttributes * - RsaAttributes * Doit retourner un tableau même vide * * @return array */ public function getRoles(); /** * Retourne un utilisateur pour la génération du token, si l'utilisateur n'existe pas en base de donnée * * ATTENTION : CETTE METHODE DOIT ÊTRE REDEFINIE SI UTILISATION D'UNE ENTITE UTILISTEUR * DIFFERENTE DE CELLE UTILISEE PAR DEFAUT * * @param String $username * uid de l'utilisateur récupéré de Cas ou Rsa * * @return UserInterface */ public function getUser($username); /** * Traitement personnalisé après récupération du token * * Il est possible d'enrichir le token (attributs...) ou d'effectuer des contrôles supplémentaire * * @param $token * Token d'authification généré * * @return null */ public function onSuccess($token); /** * Traitement personnalisé lorsque la connexion n'a pas abouti * * Vérifié l'exception généré et adapter l'action (redirection, déconnexion...) * * Doit retourner un objet de type Response * * Exemple : * * ``` * public function onAuthenticationFailure(\Symfony\Component\Security\Core\Exception\AuthenticationException $exception) * { * $content = $this->twig->render( * '@App/Test/forbiden.html.twig', array() * ); * $response = new Response($content, Response::HTTP_FORBIDDEN); * return $response; * } * ``` * * @param AuthenticationException $exception * Exception générée par le provider * * @return Symfony\Component\HttpFoundation\Response * */ public function onAuthenticationFailure(\Symfony\Component\Security\Core\Exception\AuthenticationException $exception); }