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);
} |
Partager