Académique Documents
Professionnel Documents
Culture Documents
Spring
S i S Security
i
(Acegi)
hamed.koubaa@gmail.com
Par : Hamed KOUBÂA
Q i suis-je
Qui i j
Hamed KOUBAA
hamed koubaa@gmail com
hamed.koubaa@gmail.com
Entreprise actuelle
Expérience sécurité
Spring Security (Acegi) depuis 2005
TeeJUG - 2008
Plan
Pl
Introduction
Etude de cas
Comprendre
C configuration
f
Autres fonctionnalités
Conclusion
TeeJUG - 2008
TeeJUG - 2008
Introduction
Introduction
Carte d’identité
Concurrents
Caractéristiques
Porté Spring Security
Introduction Etude de cas Comprendre Autres fontions Conclusion
Carte d
d’identité
identité
Description:
Sous-projet de Spring adressant la
sécurité des applications Java/J2EE
Naissance:
fin 2003
Enregistré à sourceforge Mars 2004
Famille:
11 développeurs orchestrés par Ben Alex
et maintenant Luke Taylor
5 TeeJUG - 2008
Introduction Etude de cas Comprendre Autres fontions Conclusion
Concurrents
Enregistrement à
Avril 2004 Novembre 2003 Mars 2004 Août 2004
sourceForge
- Version Stable
Version
e s o actue
actuelle
e 1.0.3
03 1.0
0 1.0.6
06 2.0
0 - License souple
- Plus populaire
Statut 4 bêta 5 stable 5 stable 5 stable
- Plus actif
Licence LGPL GPL Apache v2.0 LGPL - Très Riche API
Nombre de
25 368 1 003 253 296 14 956
téléchargements
Activité (%) 98.31 60.20 99.82 94.86
Développeurs 17 1 11 4
6 TeeJUG - 2008
Introduction Etude de cas Comprendre Autres fontions Conclusion
Concurrents
Enregistrement à
Avril 2004 Novembre 2003 Mars 2004 Août 2004
sourceForge
- Version Stable
Version
e s o actue
actuelle
e 1.0.3
03 1.0
0 1.0.6
06 2.0
0 - License souple
Statut 4 bêta Spring
5 stable 5 stable 5 stable
- Plus populaire
- Plus actif
Licence LGPL security
GPL y Apache v2.0 LGPL - Très Riche API
Nombre de
téléchargements
25 368 (Acegi)
1 003 253 296 14 956
7 TeeJUG - 2008
Introduction Etude de cas Comprendre Autres fontions Conclusion
Caractéristiques
API très riche
Plusieurs implémentations suivant la stratégie de
sécurité choisie (DAO/JDBC, LDAP, CAS…)
Tout est représenté par des interfaces
Modèle très extensible
Souple et modulaire
(Basé sur des intercepteurs (filtres servlet et
intercepteurs AOP)
8 TeeJUG - 2008
Introduction Etude de cas Comprendre Autres fontions Conclusion
9 TeeJUG - 2008
Introduction Etude de cas Comprendre Autres fontions Conclusion
Filtres
servlet
ACL
Intercepteurs
AOP
10 TeeJUG - 2008
TeeJUG - 2008
Etude de cas
Introduction
Etude de cas
Besoins et contraintes
Solution : spring security
Demo
Récapitulatif
Introduction Etude de cas Comprendre Autres fontions Conclusion
Besoins et contraintes
12 TeeJUG - 2008
Introduction Etude de cas Comprendre Autres fontions Conclusion
Besoins et contraintes
1-Ajouter un module d’authentification -Implémentation avec minimum de
changement
h d Æ maintenance
d code
de i
- Une page de login
- Module de Vérification du
principal et crédential
- Un lien de déconnexion
-Application ancienne : struts1, pas
2 Ajouter un module d
2- d’autorisations
autorisations de spring
- Définir des ressources sécurisées
- Définir des permissions d’accès
- Définir une page d’erreur -course contre la
(accès interdit) montre
3 Securiser le contenu des pages
3-
- Sécuriser les liens
- Sécuriser des parties des pages
13 TeeJUG - 2008
Introduction Etude de cas Comprendre Autres fontions Conclusion
Besoins
Mais… Comment
et contraintes
peut-on faire tout
cela en si peu de
temps?!
14 TeeJUG
© GL6 - -2006
2008
Introduction Etude de cas Comprendre Autres fontions Conclusion
15 TeeJUG - 2008
Introduction Etude de cas Comprendre Autres fontions Conclusion
16 TeeJUG - 2008
Introduction Etude de cas Comprendre Autres fontions Conclusion
17 TeeJUG - 2008
Introduction Etude de cas Comprendre Autres fontions Conclusion
18 TeeJUG - 2008
Introduction Etude de cas Comprendre Autres fontions Conclusion
19 TeeJUG - 2008
Introduction Etude de cas Comprendre Autres fontions Conclusion
Plan de bataille
1. Installation de spring security
1. Ajouter
j les librairies nécessaires
2. Configurer spring security dans web.xml
3. Ajouter
j le fichier applicationContext-
pp
security.xml
2
2. Module d’authentification
d authentification
1. Ajouter la page login
2
2. Configurer les filtres d
d’authentification
authentification
20 TeeJUG - 2008
Introduction Etude de cas Comprendre Autres fontions Conclusion
Plan de bataille
3. Module d’autorisation
1. Configurer
g les filtres d’autorisation
2. Configurer les ressources sécurisées dans la
source de définition des objets
4. Filtres pour logout et accessDenied
1
1. Ajouter le filtre logout et le lien qui l’appelle
l appelle
2. Configurer l’accessDenied dans le filtre
d’exception
d exception (exceptionTranslationFilter)
5. Utilisation des tags et sécuriser les
liens dans le men
menu
21 TeeJUG - 2008
Introduction Etude de cas Comprendre Autres fontions Conclusion
Demo
22 TeeJUG - 2008
Introduction Etude de cas Comprendre Autres fontions Conclusion
Récapitulatif
1. Installation de spring security
Comprendre
Introduction
Etudede cas
?
Comprendre
Détail de configuration
Fonctionnement
Introduction Etude de cas Comprendre Autres Fonctions Conclusion
Comprendre le principe
25 TeeJUG - 2008
Introduction Etude de cas Comprendre Autres Fonctions Conclusion
Comprendre le principe
Se déconnecter
26 TeeJUG - 2008
Introduction Etude de cas Comprendre Autres Fonctions Conclusion
Fonctionnement
Accès à une page sécurisée
utilisateur
27 TeeJUG - 2008
Introduction Etude de cas Comprendre Autres Fonctions Conclusion
Fonctionnement
Accès à une page sécurisée
utilisateur
28 TeeJUG - 2008
Introduction Etude de cas Comprendre Autres Fonctions Conclusion
Fonctionnement
Accès à une page sécurisée
utilisateur
29 TeeJUG - 2008
Introduction Etude de cas Comprendre Autres Fonctions Conclusion
Requête
FilterChainProxy
d’ACEGI
ACEGI
SecurityInterceptor
30 © GL6 - 2006
Introduction Etude de cas Comprendre Autres Fonctions Conclusion
Point
P i t
d’accès
Requête
FilterChainProxy
d’ACEGI
ACEGI
SecurityInterceptor
ContextHolder
ObjectDefinition
Source
S
SecuredObject
dObj t
31 © GL6 - 2006
Introduction Etude de cas Comprendre Autres Fonctions Conclusion
Point
P i t
d’accès
Requête
FilterChainProxy
d’ACEGI
ACEGI
DataSource
SecurityInterceptor AuthenticationManager
ContextHolder
ObjectDefinition
Source
S
SecuredObject
dObj t
32 © GL6 - 2006
Introduction Etude de cas Comprendre Autres Fonctions Conclusion
Point
P i t
d’accès
Requête
FilterChainProxy
d’ACEGI
ACEGI
DataSource
SecurityInterceptor AuthenticationManager
ContextHolder
ObjectDefinition
Source
S
SecuredObject
dObj t AccessDecisionManager
33 © GL6 - 2006
TeeJUG - 2008
Autres
Fonctionnalités
Introduction
Etudede cas
Comprendre
Autres fonctionnalité
Autres fonctionnalités
Introduction Etude de cas Comprendre Autres Fonctions Conclusion
Autres fonctionnalités
Securité au niv couche service (AOP)
Securité au niv d’instance des objets (ACL)
Connexion en https
Support de l’autentification via ldap
cryptage
t d pwd
des d
Integration avec ehcache
Integration
I t ti avec CAS : SSO
Integration avec AndroMDA
Event
E t logging
l i
….et beaucoup plus
35 TeeJUG - 2008
TeeJUG - 2008
Conclusion
Introduction
Etudede cas
Comprendre
Autres fonctionnalités
Conclusion
Next…
Introduction Comment faire? Construction Fonctionnement Conclusion
Next
Next…
37 TeeJUG - 2008
TeeJUG - 2008
M i
Merci
Contact : Hamed.koubaa@gmail.com
Blog :
http://teejug.blogspot.com/
Google group :
http://groups.google.com/group/teejug
p g p g g g p j g