🚧 Return 501 on Snapshot upload

This commit is contained in:
Andreas Dinauer 2026-04-18 18:37:13 +02:00
parent 15b9be7cc8
commit 63c3de81ad
4 changed files with 30 additions and 14 deletions

View File

@ -5,29 +5,24 @@ import io.quarkus.arc.profile.IfBuildProfile;
import io.quarkus.runtime.Startup; import io.quarkus.runtime.Startup;
import jakarta.enterprise.context.ApplicationScoped; import jakarta.enterprise.context.ApplicationScoped;
import jakarta.inject.Inject; import jakarta.inject.Inject;
import jakarta.ws.rs.GET;
import jakarta.ws.rs.POST;
import java.io.IOException; import java.io.IOException;
import java.nio.file.Files; import java.nio.file.Files;
import java.nio.file.Path; import java.nio.file.Path;
@ApplicationScoped @jakarta.ws.rs.Path("/dev")
@IfBuildProfile("x") @IfBuildProfile("dev")
public class Dev public class Dev
{ {
@Inject @Inject
Service service; Service service;
@Startup @GET
void init() throws IOException public void init() throws IOException
{ {
service.upload("/org/apache/httpcomponents/client5/httpclient5/5.6/httpclient5-5.6.jar", Files.readAllBytes(Path.of("/home/andreas/Documents/dev/maven/core/core/src/main/resources/jar/httpclient5-5.6.jar"))).close(); service.upload("/org/postgresql/postgresql/41.4.9/postgresql-41.4.9.jar", Files.readAllBytes(Path.of("/home/andreas/Documents/dev/maven/core/src/main/resources/jar/postgresql-42.7.9.jar"))).close();
service.upload("/org/postgresql/postgresql/41.4.9/postgresql-41.4.9.pom", Files.readAllBytes(Path.of("/home/andreas/Documents/dev/maven/core/src/main/resources/jar/postgresql-42.7.9.pom"))).close();
service.upload("/com/fasterxml/jackson/core/jackson-core/2.21.0/jackson-core-2.21.0.jar", Files.readAllBytes(Path.of("/home/andreas/Documents/dev/maven/core/core/src/main/resources/jar/jackson-core-2.21.0.jar"))).close();
service.upload("/org/postgresql/postgresql/42.7.9/postgresql-42.7.9.jar", Files.readAllBytes(Path.of("/home/andreas/Documents/dev/maven/core/core/src/main/resources/jar/postgresql-42.7.9.jar"))).close();
service.upload("/org/postgresql/postgresql/42.2.9/postgresql-42.2.9.jar", Files.readAllBytes(Path.of("/home/andreas/Documents/dev/maven/core/core/src/main/resources/jar/postgresql-42.7.9.jar"))).close();
service.upload("/org/postgresql/postgresql/42.4.9/postgresql-42.4.9.jar", Files.readAllBytes(Path.of("/home/andreas/Documents/dev/maven/core/core/src/main/resources/jar/postgresql-42.7.9.jar"))).close();
service.upload("/org/postgresql/postgresql/41.4.9/postgresql-41.4.9.jar", Files.readAllBytes(Path.of("/home/andreas/Documents/dev/maven/core/core/src/main/resources/jar/postgresql-42.7.9.jar"))).close();
service.upload("/org/postgresql/postgresql/41.4.9/postgresql-41.4.9.pom", Files.readAllBytes(Path.of("/home/andreas/Documents/dev/maven/core/core/src/main/resources/jar/postgresql-42.7.9.pom"))).close();
} }
} }

View File

@ -5,6 +5,7 @@ import dev.dinauer.maven.jpa.maven.GroupId;
import jakarta.inject.Inject; import jakarta.inject.Inject;
import jakarta.ws.rs.GET; import jakarta.ws.rs.GET;
import jakarta.ws.rs.Path; import jakarta.ws.rs.Path;
import jakarta.ws.rs.PathParam;
import java.util.List; import java.util.List;
@ -19,4 +20,11 @@ public class GroupResource
{ {
return groupRepo.listAll(); return groupRepo.listAll();
} }
@GET
@Path("/{group-id}")
public GroupId get(@PathParam("group-id") String groupId)
{
return groupRepo.findById(groupId);
}
} }

View File

@ -14,6 +14,7 @@ import jakarta.enterprise.context.ApplicationScoped;
import jakarta.inject.Inject; import jakarta.inject.Inject;
import jakarta.transaction.Transactional; import jakarta.transaction.Transactional;
import jakarta.ws.rs.NotFoundException; import jakarta.ws.rs.NotFoundException;
import jakarta.ws.rs.WebApplicationException;
import jakarta.ws.rs.core.MediaType; import jakarta.ws.rs.core.MediaType;
import jakarta.ws.rs.core.Response; import jakarta.ws.rs.core.Response;
import jdk.jshell.spi.ExecutionControl; import jdk.jshell.spi.ExecutionControl;
@ -43,6 +44,10 @@ public class Service
public Response upload(String path, byte[] body) public Response upload(String path, byte[] body)
{ {
MavenContext mavenContext = MavenContextProvider.parse(path); MavenContext mavenContext = MavenContextProvider.parse(path);
if (mavenContext.version().getSnapshot())
{
throw new WebApplicationException(501);
}
switch (mavenContext.file().getType()) switch (mavenContext.file().getType())
{ {
case JAR -> case JAR ->

View File

@ -47,6 +47,14 @@ public class ResourceTest
Assertions.assertEquals("a6b97b8d22c55f296040344dd75641b2", responsePomMd5); Assertions.assertEquals("a6b97b8d22c55f296040344dd75641b2", responsePomMd5);
} }
@Test
@TestSecurity(user = "user")
void test_snapshot()
{
RestAssured.given().body(readFile("/jar/postgresql-42.7.9.jar")).put("/maven2/org/postgresql/postgresql/42.7.9-SNAPSHOT/postgresql-42.7.9.jar").then().statusCode(501);
RestAssured.given().body(readFile("/jar/postgresql-42.7.9.pom")).put("/maven2/org/postgresql/postgresql/42.7.9-SNAPSHOT/postgresql-42.7.9.pom").then().statusCode(501);
}
private InputStream readFile(String path) private InputStream readFile(String path)
{ {
return getClass().getResourceAsStream(path); return getClass().getResourceAsStream(path);