101 lines
2.9 KiB
PHP
101 lines
2.9 KiB
PHP
<?php
|
|
|
|
/**
|
|
* Interface AuthInterface
|
|
*
|
|
* Interface permettant de déclarer les méthodes incontournables pour l'authentification
|
|
*
|
|
*
|
|
* @package Besancon\AuthBundle\Security\Interfaces
|
|
* @author Amine BEL HADJ ALI <amine.belhadjali@ac-besancon.fr>
|
|
*
|
|
*/
|
|
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);
|
|
}
|