Skip to content
Snippets Groups Projects

Ajout de sécurité

Merged Fatima Ezzahra Majidi requested to merge master into main
10 files
+ 242
7
Compare changes
  • Side-by-side
  • Inline
Files
10
@@ -2,18 +2,46 @@ package com.example.gestionstagesbackend.Config;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.method.configuration.EnableMethodSecurity;
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
import org.springframework.security.config.annotation.web.configuration.WebSecurityCustomizer;
import org.springframework.security.config.http.SessionCreationPolicy;
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
import org.springframework.security.crypto.password.PasswordEncoder;
import org.springframework.security.web.SecurityFilterChain;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.authentication.configuration.AuthenticationConfiguration;
import org.springframework.security.authentication.AuthenticationManager;
@Configuration
@EnableWebSecurity
@EnableMethodSecurity(prePostEnabled = true) // Enables @PreAuthorize
public class SecurityConfig {
@Bean
public PasswordEncoder passwordEncoder() {
return new BCryptPasswordEncoder();
}
@Bean
public AuthenticationManager authenticationManager(AuthenticationConfiguration authenticationConfiguration) throws Exception {
return authenticationConfiguration.getAuthenticationManager();
}
@Bean
public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception {
http
.csrf(csrf -> csrf.disable()) // ✅ Disable CSRF protection
.csrf(csrf -> csrf.disable())
.authorizeHttpRequests(auth -> auth
.anyRequest().permitAll() // ✅ Allow all requests (for testing)
);
.requestMatchers("/api/auth/**").permitAll() // Public routes
.requestMatchers("/api/students/**").hasAnyRole("SUPERVISEUR", "ADMIN")
.requestMatchers("/api/stages/**").hasAnyRole("ENTREPRISE", "ADMIN")
.requestMatchers("/api/enterprises/**").hasRole("ADMIN")
.requestMatchers("/api/candidacies/**").hasAnyRole("ETUDIANT", "ADMIN")
.anyRequest().authenticated()
)
.sessionManagement(session -> session.sessionCreationPolicy(SessionCreationPolicy.STATELESS));
return http.build();
}
}
Loading