From 4008137b4d3c4e5921344c4ed83a5663ab63379a Mon Sep 17 00:00:00 2001 From: danthe1st Date: Wed, 27 Dec 2023 16:58:50 +0100 Subject: [PATCH] allow CORS on API via filter --- .../javabot/api/routes/CorsFilter.java | 27 +++++++++++++++++++ .../javabot/api/routes/WebConfigurer.java | 17 ------------ 2 files changed, 27 insertions(+), 17 deletions(-) create mode 100644 src/main/java/net/discordjug/javabot/api/routes/CorsFilter.java delete mode 100644 src/main/java/net/discordjug/javabot/api/routes/WebConfigurer.java diff --git a/src/main/java/net/discordjug/javabot/api/routes/CorsFilter.java b/src/main/java/net/discordjug/javabot/api/routes/CorsFilter.java new file mode 100644 index 000000000..3735a49f6 --- /dev/null +++ b/src/main/java/net/discordjug/javabot/api/routes/CorsFilter.java @@ -0,0 +1,27 @@ +package net.discordjug.javabot.api.routes; + +import java.io.IOException; + +import javax.servlet.FilterChain; +import javax.servlet.ServletException; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.springframework.stereotype.Component; +import org.springframework.web.filter.OncePerRequestFilter; + +/** + * This filter enables CORS for all endpoints. + */ +@Component +public class CorsFilter extends OncePerRequestFilter { + + @Override + protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain) + throws ServletException, IOException { + response.addHeader("Access-Control-Allow-Origin", "*"); + response.addHeader("Access-Control-Allow-Methods", "POST, PUT, DELETE, GET, OPTIONS"); + filterChain.doFilter(request, response); + } + +} diff --git a/src/main/java/net/discordjug/javabot/api/routes/WebConfigurer.java b/src/main/java/net/discordjug/javabot/api/routes/WebConfigurer.java deleted file mode 100644 index a32b63e44..000000000 --- a/src/main/java/net/discordjug/javabot/api/routes/WebConfigurer.java +++ /dev/null @@ -1,17 +0,0 @@ -package net.discordjug.javabot.api.routes; - -import org.springframework.context.annotation.Configuration; -import org.springframework.web.servlet.config.annotation.CorsRegistry; -import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; - -/** - * Configures the web API. - * This class enables CORS for all endpoints. - */ -@Configuration -public class WebConfigurer implements WebMvcConfigurer { - @Override - public void addCorsMappings(CorsRegistry registry) { - registry.addMapping("/**"); - } -}