diff --git a/src/main/java/im/rosetta/CorsFilter.java b/src/main/java/im/rosetta/CorsFilter.java new file mode 100644 index 0000000..61f3e27 --- /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 для всех доменов, чтобы клиенты могли обращаться к CDN напрямую из браузера + */ +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/Main.java b/src/main/java/im/rosetta/Main.java index ca897b1..f57e641 100644 --- a/src/main/java/im/rosetta/Main.java +++ b/src/main/java/im/rosetta/Main.java @@ -21,7 +21,8 @@ public class Main { ResourceConfig config = new ResourceConfig() .register(MultiPartFeature.class) - .register(JacksonFeature.class) + .register(JacksonFeature.class) + .register(CorsFilter.class) .register(new CdnResource(fileStore)); URI baseUri = URI.create("http://0.0.0.0:" + port + "/");