diff --git a/src/main/java/im/rosetta/CorsFilter.java b/src/main/java/im/rosetta/CorsFilter.java new file mode 100644 index 0000000..01e48a0 --- /dev/null +++ b/src/main/java/im/rosetta/CorsFilter.java @@ -0,0 +1,20 @@ +package im.rosetta; + +import java.io.IOException; + +import jakarta.ws.rs.container.ContainerRequestContext; +import jakarta.ws.rs.container.ContainerResponseContext; +import jakarta.ws.rs.container.ContainerResponseFilter; + +/** + * Разрешает CORS для всех доменов, чтобы клиенты могли обращаться напрямую из браузера + */ +public class CorsFilter implements ContainerResponseFilter { + + @Override + public void filter(ContainerRequestContext requestContext, ContainerResponseContext responseContext) + throws IOException { + responseContext.getHeaders().add("Access-Control-Allow-Origin", "*"); + } + +} diff --git a/src/main/java/im/rosetta/config/AppConfig.java b/src/main/java/im/rosetta/config/AppConfig.java index ea0727c..424590e 100644 --- a/src/main/java/im/rosetta/config/AppConfig.java +++ b/src/main/java/im/rosetta/config/AppConfig.java @@ -3,11 +3,14 @@ package im.rosetta.config; import org.glassfish.jersey.jackson.JacksonFeature; import org.glassfish.jersey.server.ResourceConfig; +import im.rosetta.CorsFilter; + public class AppConfig extends ResourceConfig { public AppConfig() { // Регистрируем REST-ресурсы. packages("im.rosetta.api"); // Включаем JSON-сериализацию. register(JacksonFeature.class); + register(CorsFilter.class); } }