22/09/2016 OSSGTP - Présentation Spring 1 Sommaire  Architectures en couches et conteneurs légers  Spring  Spring Core  Spring AOP  Accès aux données.

Slides:



Advertisements
Présentations similaires
JI Les systèmes d’autorisation et d’authentification dans AMI Fabian Lambert.
Advertisements

Evaluation de requêtes Quelques résultats préliminaires 1 Amin Mesmoudi.
SRT 2 NTP. Nécessité ● Les ordinateurs utilisent des horloges à quartz – Peu de précision – Tendance à dériver – Parfois plusieurs secondes par jour.
24 novembre 2008 – Claude BUENO– ITSYSTEM – Joomla, logiciel de gestion de contenu en mode open source, permet de réaliser.
1 / Univnautes Projet de portail captif de L'UNPiDF Pierre Cros
Outils et scénarios d’édition collaborative en Haute École Étienne Vandeput Projet HETICE © CRIFA - ULg.
Les ORMs ● Faire coexister le monde relationnel et objet.
Reformulation  L’AFPA promoteur du projet souhaite mettre en place une application WEB afin de remplacer une solution en Java. Pour ce projet 4 mandataires.
Présentation du projet JAVA Système de messagerie instantanée cryptée.
Présentation LabPlus v3. Solution novatrice en Technologies de l’information Solution novatrice en Technologies de l’information Application pour la Gestion.
Apache Tomcat Distributeur : Apache Software Foundation Projet : Jakarta Catégorie : Serveur d'applications Technologie : Java.
RMLL 2008 Isis-FISH/Gesi Benjamin Poussin Code Lutin
1 Administration ESCO-Portail Les environnements numériques de travail Administration du socle de l'ENT Les applications.
Développement d'applications Web avec le framework PHP Symfony 2 Mathieu Peltier (Mercator Océan - CNRS) (UMS 831, Observatoire Midi-Pyrénées)
Logiciel Assistant Gestion d’Événement Rémi Papillie (Chef d’équipe) Maxime Brodeur Xavier Pajani Gabriel Rolland David St-Jean.
Soutenance projet tutoré Réalisé par : Michaël Gallaire - Selamettin Uzun - Jérôme Tchania - Etienne Trimaille - Franck Petidemange - David Lebienvenu.
Initiation à QuickPlace, janvier Initiation à QuickPlace n Nature de l'outil n Fonctions de base (lecture, création) n Fonctions de gestionnaire.
Séminaire EOLE Beaune Septembre 2007 HORUS.
GOOGLE MAPS ANDROID API V2. INTRODUCTION TO THE GOOGLE MAPS ANDROID API V2.
La mise en réseau des ordinateurs à l'école Sources : Educnet christian.caleca.free.fr.
Séminaire EOLE DIJON 23 et 24 Octobre x et RADIUS.
15/11/2016 Projet 1789 : Plateforme d'enseignement innovante Groupe n°81 : Lan Xu, Tanguy Kerdoncuff, Thomas Fredon, Vincent Feugère Encadrants : Alexander.
Installation De Peakup.  Télécharger le fichier peakup2.4.0.free.zip  Décompresser le fichier extrait sur une Directory de votre choix  Créer un lient.
Refonte du portail eaufrance Présentation du cadre de référence pour avis GCIB – 14/10/2014 – Anne Macaire.
Procédures Framework LDAP
Les commandes externes
Cross-Plateform Cours JavaScript
Séminaire Novembre 2006 Zephir : Déploiement et supervision des serveurs Eole.
NuFW, un parefeu authentifiant
Séminaire EOLE Dijon Octobre 2010
AMUE – SIFAC Les concepts de SIFAC WEB HISTORIQUE DES MISES A JOUR
SECURITE DU SYSTEME D’INFORMATION (SSI)
Javadoc et débogueur Semaine 03 Version A16.
Réalisation d'agents de surveillance Zephir
Virtualisation d’applications mobiles dans un réseau de Cloudlets
Projet 1789 : Plateforme d'enseignement innovante
Cyber-Sphinx Séance 2.
QoS - Configuration de NBAR (Network-Based Application Recognition)
Usage responsable du Numérique
1ers pas des utilisateurs migrés
Mise en place d’une stratégie de groupe
3 MOIS DE FORMATION 1 MOIS DE STAGE EN ENTREPRISE prÉsentation …
Présentation des EJB Enterprise Java Beans.
Notion De Gestion De Bases De Données
PROGRAMMATION INFORMATIQUE D’INGÉNIERIE II
3- Nouvelles pages d’accueil
Bureau distant sur Windows Vista /2008 Server
15 Développement d'application de base de données en Java
Développement d’applications interactives
Mise en place d'un Serveur Radius pour la sécurité d'un réseau Wireless sous Windows Serveur Présenter par le Stagiaire : Etienne Mamadou Guilavogui.
Integrated Business intelligence
5 Analyse avec Designer d'Oracle
Programmation Android Composantes d’une application
Module bibliothèques numériques : le format PDF
Bonnes pratiques d’exploitation des applications
Exposé de système / réseaux IR3
Module 13 : Implémentation de la protection contre les sinistres
Architectures Logicielles Java GLG203 GLG204
Serveurs d’applications
JDepend - Analyse de la qualité du code Java -
Module 5 : Gestion de l'accès aux ressources à l'aide de groupes
et de la Recherche Scientifique
Elles contiennent des informations autre que géométriques
Michel Jouvin Comité des utilisateurs 14 Mai 2007
Réforme du Lycée
Tableaux croisés dynamiques sous Excel: des outils simples pour une analyse rapide de jeux de données en cytométrie Camille SANTA MARIA Ingénieur d’étude.
ManageEngine ADManager Plus 6
Présentation de l’épreuve E3 : Economie, Droit et Management
Role-Based Access Control (RBAC) Les permissions d’administration
Deux nouveaux programmes en « Techniques de l’informatique »
Transcription de la présentation:

22/09/2016 OSSGTP - Présentation Spring 1 Sommaire  Architectures en couches et conteneurs légers  Spring  Spring Core  Spring AOP  Accès aux données  Gestion transactionnelle  MVC  Sécurité

22/09/2016 OSSGTP - Présentation Spring 2 Acegi Acegi (Spring Security) est le sous-projet de Spring adressant la sécurité des applications Java/J2EE:  Solution très modulaire et indépendante de J2EE;  Possibilité de se baser sur les services des serveurs d’application en matière de sécurité;  Solution peu intrusive pour l’application cible;  Plusieurs implémentations suivant la stratégie de sécurité choisie (DAO/JDBC, LDAP, CAS…).  Basé sur des intercepteurs (filtres servlet et intercepteurs AOP).

22/09/2016 OSSGTP - Présentation Spring 3 Principe (1/2) Application de la sécurité Présentation Application Services (métier) Accès aux données (DAO) Persistence Pattern MVCMismatch Paradigm Transactions Authentification / autorisations Exceptions Interceptions Contexte de sécurité Taglibs Acegi  Filtres servlet;  Intercepteurs AOP;  Taglibs pour la présentation.

22/09/2016 OSSGTP - Présentation Spring 4 Principe (2/2) Découplage des préoccupations:  Application transparente de la sécurité (approche non intrusive basée sur l’interception des traitements);  Récupération des informations pour l’authentification;  Gestion de l’authentification;  Facilités pour gérer un contexte de sécurité pour le fil d’exécution;  Gestion des autorisations;  Support pour la couche présentation. Interceptions avec:  Filtres servlet;  Intercepteurs AOP. Support pour la couche présentation:  Taglibs.

22/09/2016 OSSGTP - Présentation Spring 5 Interceptions - Filtres (1/2) Interceptions par des filtres sur lesquels peuvent injecter différentes informations:  Utilisation de la classe DelegatingFilterProxy;  Plusieurs types de filtres prédéfinis:  Chargement des informations dans le contexte pour le fil d’exécution (classe HttpSessionContextIntegrationFilter);  Authentification (classe spécifique pour le type d’authentification: AuthenticationProcessingFilter, CasProcessingFilter, BasicProcessingFilter, HttpRequestIntegrationFilter, JBossIntegrationFilter);  Vérification de l’authentification et des autorisations (classe SecurityEnforcementFilter). L’ordre des filtres très important. Celui-ci correspond à l’ordre de l’énumération ci-dessus.

22/09/2016 OSSGTP - Présentation Spring 6 Acegi HTTP Request Security Filter org.springframework.web.filter.DelegatingFilterProxy targetClass net.sf.acegisecurity.context.HttpSessionContextIntegrationFilter Acegi Filter Chain Proxy /* Interceptions - Filtres (2/2) Exemple de configuration de filtres: web.xml

22/09/2016 OSSGTP - Présentation Spring 7 Interceptions - AOP (1/2) Les interceptions basées sur l’AOP pour la gestion des autorisations:  Intercepteur AOP FilterSecurityInterceptor. Le filtre est encapsulé dans le filtre SecurityEnforcementFilter. Utilisation directe de l’intercepteur au niveau de la couche service métier.

22/09/2016 OSSGTP - Présentation Spring 8 Interceptions - AOP (2/2) Exemple de configuration d’intercepteurs: applicationContext.xml <bean id="securityInterceptor" class="net.sf.acegisecurity.intercept.web.FilterSecurityInterceptor">... <bean id="monBean" class="org.springframework.aop.framework.ProxyFactoryBean"> IMonBean securityInterceptor

22/09/2016 OSSGTP - Présentation Spring 9 Gestion de l’authentification (1/3) Pour une certaine URI, le filtre d’authentification est activé et il réalise les traitements suivants:  Extraction des données d’authentification de la requête;  Création d’une implémentation de l’interface Authentication avec ces données;  Délégation de l’authentification au fournisseur d’authentification. Application Services (métier) Accès aux données (DAO) Persistence Mismatch Paradigm Init Contexte Contexte transactionnel Authentification Vérification Sécurité Authentication Filter Authentication Manager

22/09/2016 OSSGTP - Présentation Spring 10 Gestion de l’authentification (2/3) Configuration du module d’authentification: applicationContext.xml... <bean id="authenticationManager" class="net.sf.acegisecurity.providers.ProviderManager"> <bean id="jdbcAuthenticationDao" class="net.sf.acegisecurity.providers.dao.jdbc.JdbcDaoImpl"> <bean id="daoAuthenticationProvider" class="net.sf.acegisecurity.providers.dao.DaoAuthenticationProvider">... Configuration du gestionnaire de fournisseurs d’authentification Configuration du fournisseurs d’authentification basé sur le pattern DAO

22/09/2016 OSSGTP - Présentation Spring 11 Gestion de l’authentification (3/3) Configuration du filtre: applicationContext.xml... <bean id="authenticationProcessingFilter" class="net.sf.acegisecurity.ui.webapp.AuthenticationProcessingFilter"> /login.jsp?login_error=1 / /j_login... Gestionnaire d’authentification utilisé URI de redirection en cas d’erreur URI de redirection par défaut en cas de succès URI d’activation du filtre

22/09/2016 OSSGTP - Présentation Spring 12 Gestion des autorisations (1/3) Pour toutes les URIs, le filtre d’authentification est activé et il réalise les traitements suivants:  Vérification que l’utilisateur de l’application est bien authentifié;  Vérification que l’URI correspond aux URI à protéger;  Si tel n’est pas le cas, aucune vérification de droits n’est réalisée;  Si tel est le cas, une vérification de droits est réalisée par un gestion de décision; Contexte transactionnel Application Services (métier) Accès aux données (DAO) Persistence Mismatch Paradigm Init Contexte Authentification Vérification Sécurité Security Filter Authentication Manager Decision Manager

22/09/2016 OSSGTP - Présentation Spring 13 Gestion des autorisations (2/3) Configuration du module de sécurité: applicationContext.xml... /j_login false CONVERT_URL_TO_LOWERCASE_BEFORE_COMPARISON PATTERN_TYPE_APACHE_ANT /form*=ROLE_ADMIN... Configuration du point d’entrée pour l’authentification Configuration de l’intercepteur de sécurité permettant de spécifier les ressources à protéger Configuration d’un votant Configuration du gestionnaire de décision basé sur un ou plusieurs votants et une stratégie de vote

22/09/2016 OSSGTP - Présentation Spring 14 Gestion des autorisations (3/3) Configuration du filtre: applicationContext.xml... <bean id="securityEnforcementFilter" class="com.sgam.websup.authentification.acegi.web.SecurityEnforcementFilter">... Intercepteur de sécurité utilisé Point d’entrée pour l’authentification

22/09/2016 OSSGTP - Présentation Spring 15 SecurityChannel (1/3) Objectif: forcer l’accès à une ressource avec un protocole de transport spécifique tel que HTTP ou HTTPS. Si tel n’est pas le cas, une redirection absolue est effectué en se basant sur un mappage de ports. Mise en œuvre:  Filtre (classe ChannelProcessingFilter) dédiée à placer en début de la chaîne des filtres  Configuration similaire à celles vues précédemment pour bénéficier de l’injection de dépendance.

22/09/2016 OSSGTP - Présentation Spring 16 SecurityChannel (2/3) Exemple de configuration: CONVERT_URL_TO_LOWERCASE_BEFORE_COMPARISON \A/secure/.*\Z=REQUIRES_SECURE_CHANNEL \A/acegilogin.jsp.*\Z=REQUIRES_SECURE_CHANNEL \A/j_acegi_security_check.*\Z=REQUIRES_SECURE_CHANNEL \A.*\Z=REQUIRES_INSECURE_CHANNEL Gestionnaire de décision Configuration du channel pour les différentes ressources en fonction de leurs URI Configuration des différents channels possibles: - secureChannelProcessor déclenché avec la propriété REQUIRES_SECURE_CHANNEL; - insecureChannelProcessor déclenché avec la propriété REQUIRES_INSECURE_CHANNEL. applicationContext.xml

22/09/2016 OSSGTP - Présentation Spring 17 SecurityChannel (3/3) Exemple de configuration (suite): Spécification du point d’entrée à utiliser pour la redirection Spécification du mappage des ports à utiliser pour la redirection en utilisant HTTPS Propriétés du mappage des ports Configuration de secureChannelProcessor Configuration de insecureChannelProcessor applicationContext.xml

22/09/2016 OSSGTP - Présentation Spring 18 Support pour la couche présentation Acegi offre un support pour la couche présentation avec des taglibs dédiés:  Se basent sur le contexte de sécurité pour le fil d’exécution;  Plusieurs types de taglibs:  Affichage dans les pages JSP suivant les rôles;  Affichage d’informations d’authentification (principal…). Exemple d’utilisation dans une page JSP: My text for the role USER My text for the role ADMIN

22/09/2016 OSSGTP - Présentation Spring 19 Autres fonctionnalités Acegi supporte également:  L’authentification / les autorisations basées sur un serveur d’application (Tomcat, Jetty, Jboss, Resin)  Plusieurs types d’authentification (HTTP Form, HTTP Basic, HTTP Digest, Anonymous, certificat X509);  SSO basé sur CAS. Attention, dans les versions 0.8.*, Acegi exécute systématiquement une réauthentification avec l’intercepteur de sécurité. Pour pallier à cela, il est nécessaire de mettre en place un cache (sur l’object Authentication). Ce mécanisme est modifié dans les version 0.9.* où Acegi laisse le choix de la stratégie choisie (réauthentification ou non).

22/09/2016 OSSGTP - Présentation Spring 20 A vous de jouer…