package com.android.trisolarisserver.security import org.springframework.context.annotation.Bean import org.springframework.context.annotation.Configuration import org.springframework.security.config.annotation.method.configuration.EnableMethodSecurity import org.springframework.security.config.annotation.web.builders.HttpSecurity import org.springframework.security.config.http.SessionCreationPolicy import org.springframework.security.web.SecurityFilterChain import org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter @Configuration(proxyBeanMethods = false) @EnableMethodSecurity class SecurityConfig( private val firebaseAuthFilter: FirebaseAuthFilter ) { @Bean fun filterChain(http: HttpSecurity): SecurityFilterChain { http .csrf { it.disable() } .sessionManagement { it.sessionCreationPolicy(SessionCreationPolicy.STATELESS) } .authorizeHttpRequests { it.requestMatchers("/", "/health", "/auth/**").permitAll() it.anyRequest().authenticated() } .httpBasic { it.disable() } .formLogin { it.disable() } .addFilterBefore(firebaseAuthFilter, UsernamePasswordAuthenticationFilter::class.java) return http.build() } }