Bonjour,
Je voudrais savoir si à travers les commentaires du code, j'ai bien compris les différents éléments de la configuration de la sécurité d'une API Rest.
Précision, je n'ai pas utilisé la notation "cumulée" que l'on rencontre habituellement et j'ai au contraire bien décomposé les étapes pour bien comprendre quels objets j'utilisais et ce qu'ils faisaient.
Pourriez-vous me dire si j'ai commis des erreurs ou s'il y a des ambiguïtés et si oui lesquelles ?
Merci d'avance
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
 
	/**
         * Configuration des règles de sécurité à appliquer aux requêtes entrantes
         * @param http
         * @throws Exception
         */
	@Override
	protected void configure(HttpSecurity http) throws Exception {
		// Paramètres CORS par défaut : toutes origines, tous les verbes ...
		http.cors();
		// Désactivation des règles de CSRF, car la vérification d'intégrité se fait par un token JWT
		http.csrf().disable();
		// Instanciation du gestionnaire d'exceptions
		ExceptionHandlingConfigurer<HttpSecurity> exceptionHandlingConfigurer = http.exceptionHandling();
		// Définition de la classe qui prendra la main lors d'une exception
		exceptionHandlingConfigurer.authenticationEntryPoint(authEntryPointJwt);
		// Instanciation d'un gestionnaire de session
		SessionManagementConfigurer<HttpSecurity> smc = http.sessionManagement();
		// Définition du type de session, ici sans état
		smc.sessionCreationPolicy(SessionCreationPolicy.STATELESS);
		// Instanciation du gestionnaire de filtre de requêtes
		ExpressionUrlAuthorizationConfigurer<HttpSecurity>.ExpressionInterceptUrlRegistry filtresRequetes = http.authorizeRequests();
		// Ajout du filtre indiquant que tous les utilisateurs peuvent s'authentifier ou s'inscrire
		filtresRequetes.antMatchers("/api/auth/**").permitAll();
		// Pour toutes les autres requêtes il faut être authentifié
		filtresRequetes.anyRequest().authenticated();
		// Ajout du filtre sur le token qui doit vérifier que l'utilisateur est bien authentifié
		// et qu'il possède les rôles avant exécution de la requête demandée
		http.addFilterBefore(authenticationJwtTokenFilter, UsernamePasswordAuthenticationFilter.class);
	}