fix(backend): fixed cors error on build dev environment

This commit is contained in:
Bernhard Müller 2026-07-28 12:59:54 +02:00
parent 918249580b
commit b856d5d105

View file

@ -6,6 +6,7 @@ import jakarta.servlet.DispatcherType;
import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Configuration;
import org.springframework.http.HttpMethod;
import org.springframework.security.authentication.AuthenticationManager; import org.springframework.security.authentication.AuthenticationManager;
import org.springframework.security.config.annotation.authentication.configuration.AuthenticationConfiguration; import org.springframework.security.config.annotation.authentication.configuration.AuthenticationConfiguration;
import org.springframework.security.config.annotation.method.configuration.EnableMethodSecurity; import org.springframework.security.config.annotation.method.configuration.EnableMethodSecurity;
@ -40,6 +41,9 @@ public class SecurityConfig {
@Value("${jwt.secret}") @Value("${jwt.secret}")
private String jwtSecret; private String jwtSecret;
@Value("${app.cors-origins:http://localhost:4200}")
private String corsOrigins;
@Bean @Bean
public JwtDecoder jwtDecoder() { public JwtDecoder jwtDecoder() {
SecretKeySpec secretKey = new SecretKeySpec(jwtSecret.getBytes(), "HmacSHA256"); SecretKeySpec secretKey = new SecretKeySpec(jwtSecret.getBytes(), "HmacSHA256");
@ -54,6 +58,7 @@ public class SecurityConfig {
.sessionManagement(session -> session.sessionCreationPolicy(SessionCreationPolicy.STATELESS)) .sessionManagement(session -> session.sessionCreationPolicy(SessionCreationPolicy.STATELESS))
.authorizeHttpRequests(auth -> auth .authorizeHttpRequests(auth -> auth
.dispatcherTypeMatchers(DispatcherType.FORWARD).permitAll() .dispatcherTypeMatchers(DispatcherType.FORWARD).permitAll()
.requestMatchers(HttpMethod.OPTIONS, "/**").permitAll()
.requestMatchers("/", "/index.html", "/assets/**", "/static/**", "/*.js", "/*.css", "/*.ico").permitAll() .requestMatchers("/", "/index.html", "/assets/**", "/static/**", "/*.js", "/*.css", "/*.ico").permitAll()
.requestMatchers("/v3/api-docs/**", "/swagger-ui/**", "/swagger-ui.html").permitAll() .requestMatchers("/v3/api-docs/**", "/swagger-ui/**", "/swagger-ui.html").permitAll()
.requestMatchers("/actuator/health", "/actuator/info").permitAll() .requestMatchers("/actuator/health", "/actuator/info").permitAll()
@ -85,9 +90,6 @@ public class SecurityConfig {
return jwtAuthenticationConverter; return jwtAuthenticationConverter;
} }
@Value("${app.cors-origins:http://localhost:4200}")
private String corsOrigins;
@Bean @Bean
public CorsConfigurationSource corsConfigurationSource() { public CorsConfigurationSource corsConfigurationSource() {
CorsConfiguration configuration = new CorsConfiguration(); CorsConfiguration configuration = new CorsConfiguration();
@ -111,7 +113,6 @@ public class SecurityConfig {
return config.getAuthenticationManager(); return config.getAuthenticationManager();
} }
// Das Gegenstück zum Decoder: Hiermit erstellen wir die Token!
@Bean @Bean
public JwtEncoder jwtEncoder() { public JwtEncoder jwtEncoder() {
SecretKeySpec secretKey = new SecretKeySpec(jwtSecret.getBytes(), "HmacSHA256"); SecretKeySpec secretKey = new SecretKeySpec(jwtSecret.getBytes(), "HmacSHA256");