WebSecurityConfig.java 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. package es.uv.garcosda.config;
  2. import static org.springframework.security.config.http.SessionCreationPolicy.STATELESS;
  3. import org.springframework.beans.factory.annotation.Autowired;
  4. import org.springframework.context.annotation.Bean;
  5. import org.springframework.context.annotation.Configuration;
  6. import org.springframework.security.authentication.AuthenticationManager;
  7. import org.springframework.security.authentication.ProviderManager;
  8. import org.springframework.security.authentication.dao.DaoAuthenticationProvider;
  9. import org.springframework.security.config.annotation.web.builders.HttpSecurity;
  10. import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
  11. import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
  12. import org.springframework.security.crypto.password.PasswordEncoder;
  13. import org.springframework.security.web.SecurityFilterChain;
  14. import es.uv.garcosda.security.CustomAuthenticationFilter;
  15. import es.uv.garcosda.security.CustomUserDetailsService;
  16. import es.uv.garcosda.services.JwtService;
  17. @Configuration
  18. @EnableWebSecurity
  19. public class WebSecurityConfig{
  20. @Autowired
  21. private CustomUserDetailsService userDetailsService;
  22. @Autowired
  23. private JwtService jwtService;
  24. @Bean
  25. public static PasswordEncoder passwordEncoder() {
  26. return new BCryptPasswordEncoder();
  27. }
  28. @Bean
  29. public AuthenticationManager authenticationManager(){
  30. DaoAuthenticationProvider authProvider = new DaoAuthenticationProvider();
  31. authProvider.setUserDetailsService(userDetailsService);
  32. authProvider.setPasswordEncoder(passwordEncoder());
  33. return new ProviderManager(authProvider);
  34. }
  35. @Bean
  36. public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception {
  37. http.csrf().disable()
  38. .cors().disable()
  39. .sessionManagement().sessionCreationPolicy(STATELESS)
  40. .and()
  41. .authorizeHttpRequests().anyRequest().permitAll()
  42. .and()
  43. .addFilter(new CustomAuthenticationFilter(authenticationManager(), jwtService));
  44. return http.build();
  45. }
  46. }