AquaDX/src/main/java/icu/samnyan/aqua/spring/SecurityConfig.kt
2025-10-25 05:06:37 +08:00

37 lines
1.3 KiB
Kotlin

package icu.samnyan.aqua.spring
import org.springframework.context.annotation.Bean
import org.springframework.context.annotation.Configuration
import org.springframework.security.config.Customizer
import org.springframework.security.config.annotation.web.builders.HttpSecurity
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder
import org.springframework.security.web.SecurityFilterChain
import org.springframework.web.cors.CorsConfiguration
import org.springframework.web.cors.UrlBasedCorsConfigurationSource
@Configuration
@EnableWebSecurity
class SecurityConfig {
@Bean
fun corsConfigurationSource() = UrlBasedCorsConfigurationSource().apply {
registerCorsConfiguration("/api/**", CorsConfiguration().apply {
allowedOrigins = listOf("*")
allowedMethods = listOf("GET", "POST", "PUT", "DELETE", "OPTIONS")
allowedHeaders = listOf("*")
})
}
@Bean
fun configure(http: HttpSecurity): SecurityFilterChain = http
.headers { it.disable() }
.cors(Customizer.withDefaults())
.csrf { it.disable() }
.authorizeHttpRequests { it.anyRequest().permitAll() }
.build()
@Bean
fun passwordEncoder() = BCryptPasswordEncoder()
}