Sécurité du printemps - Spring Security

Sécurité du printemps
Développeur (s) 4
Version stable
5.2.1 / 4 novembre 2019 ; Il y a 16 mois  ( 04/11/2019 )
Écrit en Java
Système opérateur Multiplateforme
Taper sécurité du cadre d'application Web
Licence Licence Apache 2.0
Site Internet projets .spring .io / spring-security /

Spring Security est un framework Java / Java EE qui fournit des fonctionnalités d' authentification , d' autorisation et d'autres fonctionnalités de sécurité pour les applications d'entreprise. Le projet a été lancé à la fin de 2003 sous le nom de `` Acegi Security '' (prononcé Ah-see-gee / ɑː s / , dont les lettres sont les premier, troisième, cinquième, septième et neuvième caractères de l'alphabet anglais, afin de prévenir les conflits de nom) par Ben Alex, avec elle publiquement publié sous la licence Apache dans Mars 2004. par la suite, Acegi a été incorporée au printemps portefeuille Spring Security, un sous-projet officiel du printemps. La première version publique sous le nouveau nom était Spring Security 2.0.0 en avril 2008, avec un support commercial et une formation disponibles auprès de SpringSource .

Flux d'authentification

Le diagramme 1 montre le flux de base d'une demande d'authentification à l'aide du système Spring Security. Il montre les différents filtres et comment ils interagissent depuis la demande initiale du navigateur jusqu'à une authentification réussie ou une erreur HTTP 403.

Authentification ACEGI.JPG

Le navigateur soumet des " informations d'authentification "
" Le mécanisme d'authentification " recueille les détails
Une « demande d'authentification » objet est construit
Demande d'authentification envoyée à un AuthenticationManager
AuthenticationManager (il est responsable du passage des demandes à travers une chaîne de fournisseurs d' authentification)
" Le fournisseur d'authentification " demandera à un UserDetailsService de fournir un objet UserDetails
L' objet UserDetails résultant (qui contient également les GrantedAuthority [] s ) sera utilisé pour créer l' objet d' authentification entièrement rempli .
Si le « mécanisme d'authentification » reçoit en retour l' objet d' authentification entièrement rempli , il jugera la demande valide, placera l' authentification dans SecurityContextHolder ; et faire réessayer la demande d'origine.
Si, en revanche, AuthenticationProvider a rejeté la demande, le mécanisme d'authentification demandera à l'agent utilisateur de réessayer.
AbstractSecurityInterceptor autorise la requête régénérée et lève des exceptions Java. ( Demande à AccessDecisionManager de prendre une décision.)
ExceptionTranslationFilter traduit les exceptions levées par AbstractSecurityInterceptor en codes d'erreur HTTP
Code d'erreur 403 - si le principal a été authentifié et ne dispose donc simplement pas d'un accès suffisant
Lancez un AuthenticationEntryPoint - si le principal n'a pas été authentifié, qui est un mécanisme d'authentification

Principales fonctionnalités d'authentification

Principales fonctionnalités d'autorisation

Fonctionnalités de sécurité basées sur une instance

Autres caractéristiques

  • Localisation du logiciel afin que les messages de l' interface utilisateur puissent être dans n'importe quelle langue.
  • Sécurité du canal, pour basculer automatiquement entre HTTP et HTTPS en respectant des règles particulières.
  • Mise en cache dans toutes les zones du framework touchant la base de données.
  • Publication de messages pour faciliter la programmation événementielle .
  • Prise en charge de la réalisation de tests d'intégration via JUnit .
  • Spring Security lui-même propose des tests d'isolement JUnit complets.
  • Plusieurs exemples d'applications, des JavaDocs détaillés et un guide de référence.
  • Indépendance du framework Web.

Communiqués

  • 2.0.0 (avril 2008)
  • 3.0.0 (décembre 2009)
  • 3.1.0 (7 décembre 2011)
  • 3.1.2 (10 août 2012)
  • 3.2.0 (16 décembre 2013)
  • 4.0.0 (26 mars 2015)
  • 4.1.3 (24 août 2016)
  • 4.2.0 (10 novembre 2016)
  • 3.2.10, 4.1.4, 4.2.1 (22 décembre 2016)
  • 4.2.2 (2 mars 2017)
  • 4.2.3 (8 juin 2017)
  • 5.0.0 (28 novembre 2017)
  • 5.0.8, 4.2.8 (11 septembre 2018)
  • 5.1.0 GA (27 septembre 2018)
  • 5.1.1, 5.0.9, 4.2.9 (16 octobre 2018)
  • 5.1.2, 5.0.10, 4.2.10 (29 novembre 2018)
  • 5.1.3, 5.0.11, 4.2.11 (11 janvier 2019)
  • 5.1.4 (14 février 2019)
  • 5.1.5, 5.0.12, 4.2.12 (3 avril 2019)

Les références

Liens externes