Aujourd’hui on va considérer des aspects suivants de Spring Security:
· objets principaux.
· Le processus d'authentification.
· Intégration de Spring Security au projet.
Spring Security est un framework Java / JavaEE, fournit un mécanisme d'authentification et d'autorisation, et d'autres fonctions de sécurité pour les applications d'entreprise construit en utilisant le framework Spring. Le projet a été lancé par Ben Alex à la fin de 2003 sous le nom de «Acegi sécurité», première version est sorti en 2004. Par la suite, le projet a été absorbé par Spring et est devenu son projet officiel affilié. Pour la première fois publiquement présenté sous un nouveau nom Spring Security 2.0.0 en Avril de 2008.
Objets Principaux :
· SecurityContextHolder : contient des informations sur le contexte de sécurité actuel de l'application, qui contient des informations détaillées sur l'utilisateur qui travaille actuellement avec l'application. Par défaut SecurityContextHolder utilise ThreadLocal pour stocker ces informations, ce qui signifie que le contexte de sécurité est toujours disponible pour l'exécution de méthodes dans le même fil. Pour changer ca, vous pouvez utiliser une méthode statique SecurityContextHolder.setStrategyName (String strategy).
· SecurityContext, contient un objet d'authentification, i.e. les informations de sécurité associée à la demande de l'utilisateur.
· Authentication représente un utilisateur (Principal) du point de vue du Spring Security.
· GrantedAuthority represente l'autorisation donnée a l’utilisateur d’application, par exemple ROLE_ANONYMOUS, ROLE_USER, ROLE_ADMIN.
· UserDetails fournit les informations nécessaires pour construire l'objet d'authentification à partir d'objets d'application DAO ou d'autres sources d'information sur la sécurité. Il contient le nom d’utilisateur, mot de passe est les flags: isAccountNonExpired, isAccountNonLocked, isCredentialsNonExpired, isEnabled et Collection des droits (rôles) de l'utilisateur.
· UserDetailsService, l’interface utilisée pour créer l'objet UserDetails (qui réalise le seul méthode de cette interface)