| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- package com.platform2easy.genesis.security.config;
- import com.platform2easy.genesis.security.filter.AuthorizationFilter;
- import lombok.AllArgsConstructor;
- import org.springframework.context.annotation.Bean;
- import org.springframework.context.annotation.Configuration;
- import org.springframework.security.authentication.AuthenticationManager;
- import org.springframework.security.config.Customizer;
- import org.springframework.security.config.annotation.authentication.configuration.AuthenticationConfiguration;
- import org.springframework.security.config.annotation.web.builders.HttpSecurity;
- import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
- import org.springframework.security.config.annotation.web.configurers.AbstractHttpConfigurer;
- 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.web.authentication.UsernamePasswordAuthenticationFilter;
- @Configuration
- @EnableWebSecurity
- @AllArgsConstructor
- public class SecurityConfiguration {
- private AuthorizationFilter authorizationFilter;
- @Bean
- public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception {
- return http
- .csrf(AbstractHttpConfigurer::disable)
- .cors(Customizer.withDefaults())
- .exceptionHandling(Customizer.withDefaults())
- .sessionManagement(sessionManagementConfigurer -> sessionManagementConfigurer.sessionCreationPolicy(SessionCreationPolicy.STATELESS))
- .authorizeHttpRequests(authorizationRegistry -> authorizationRegistry
- .requestMatchers("/").permitAll()
- .anyRequest().authenticated())
- .addFilterBefore(authorizationFilter, UsernamePasswordAuthenticationFilter.class)
- .formLogin(httpSecurityFormLoginConfigurer -> httpSecurityFormLoginConfigurer.defaultSuccessUrl("/", true))
- .logout(httpSecurityLogoutConfigurer -> httpSecurityLogoutConfigurer.logoutSuccessUrl("/"))
- .build();
- }
- @Bean
- public AuthenticationManager authenticationManager(AuthenticationConfiguration configuration) throws Exception {
- return configuration.getAuthenticationManager();
- }
- @Bean
- public PasswordEncoder passwordEncoder() {
- return new BCryptPasswordEncoder();
- }
- }
|