diff --git a/src/main/java/fr/unistra/sil/erp/back/WebMvcConfig.java b/src/main/java/fr/unistra/sil/erp/back/WebMvcConfig.java index 816b2e1fe10f2809bdd3d1a9b282b6e6d4e6254b..9ac6fc19c9d7e0fa8404f9b5f6e6fbb72d7fc746 100644 --- a/src/main/java/fr/unistra/sil/erp/back/WebMvcConfig.java +++ b/src/main/java/fr/unistra/sil/erp/back/WebMvcConfig.java @@ -16,6 +16,7 @@ import java.sql.DriverManager; import java.sql.SQLException; import java.util.logging.Level; import java.util.logging.Logger; +import org.springframework.web.servlet.config.annotation.CorsRegistry; /** * Main configuration file for the application. @@ -107,6 +108,16 @@ public class WebMvcConfig implements WebMvcConfigurer { public void addInterceptors(InterceptorRegistry registry) { registry.addInterceptor(new ApiAuthenticationInterceptor(this.env.getRequiredProperty("api.key"))).addPathPatterns(API_PREFIX + "**"); } + + /** + * CORS mappings. + * @param cr Spring's CORS Registry. + */ + @Override + public void addCorsMappings(CorsRegistry cr) + { + cr.addMapping("/**").allowedOrigins("*").allowedMethods("*"); + } /** * SQL Connection object. diff --git a/src/main/java/fr/unistra/sil/erp/back/filter/CORSFilter.java b/src/main/java/fr/unistra/sil/erp/back/filter/CORSFilter.java deleted file mode 100644 index dbd192f8225eebebbe11706a81a14fbe73e9c504..0000000000000000000000000000000000000000 --- a/src/main/java/fr/unistra/sil/erp/back/filter/CORSFilter.java +++ /dev/null @@ -1,29 +0,0 @@ -/* - * CONTRAT DE LICENCE DE LOGICIEL LIBRE CECILL-B - * https://cecill.info/licences/Licence_CeCILL-B_V1-fr.html - */ -package fr.unistra.sil.erp.back.filter; - -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; - -/** - * Because Spring sucks. - * - * @author BEAUVAIS ANTOINE - */ -@Component -public class CORSFilter extends OncePerRequestFilter { - - @Override - protected void doFilterInternal(HttpServletRequest hsr, HttpServletResponse hsr1, FilterChain fc) throws ServletException, IOException { - hsr1.addHeader("Access-Control-Allow-Origin", "*"); - fc.doFilter(hsr, hsr1); - } - -} diff --git a/src/main/java/fr/unistra/sil/erp/back/interceptor/api/ApiAuthenticationInterceptor.java b/src/main/java/fr/unistra/sil/erp/back/interceptor/api/ApiAuthenticationInterceptor.java index 11435e6a02e33fc797b4b70e00c156cd101816c3..60bb00a070468590a7f27753ab3a964dda385ea3 100644 --- a/src/main/java/fr/unistra/sil/erp/back/interceptor/api/ApiAuthenticationInterceptor.java +++ b/src/main/java/fr/unistra/sil/erp/back/interceptor/api/ApiAuthenticationInterceptor.java @@ -48,6 +48,9 @@ public class ApiAuthenticationInterceptor implements HandlerInterceptor { public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) { + if(request.getMethod().equals("OPTIONS")) + return true; + if(this.apikey == null) { response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);