9
0
mirror of https://github.com/Xiao-MoMi/craft-engine.git synced 2025-12-19 15:09:15 +00:00

默认不严格验证

This commit is contained in:
XiaoMoMi
2025-12-01 15:49:58 +08:00
parent 1fcf903036
commit 02630c8350
3 changed files with 5 additions and 4 deletions

View File

@@ -198,7 +198,8 @@ resource-pack:
# Generates a single-use, time-limited download link for each player. # Generates a single-use, time-limited download link for each player.
one-time-token: true one-time-token: true
# Enhances validation for deny-non-minecraft-request and one-time-token. # Enhances validation for deny-non-minecraft-request and one-time-token.
strict-validation: true # Do not enable this on an offline server
strict-validation: false
rate-limiting: rate-limiting:
# Maximum bandwidth per second to prevent server instability for other players during resource pack downloads # Maximum bandwidth per second to prevent server instability for other players during resource pack downloads
max-bandwidth-per-second: 5_000_000 # 5MB/s max-bandwidth-per-second: 5_000_000 # 5MB/s

View File

@@ -77,7 +77,7 @@ public class SelfHost implements ResourcePackHost {
boolean oneTimeToken = ResourceConfigUtils.getAsBoolean(arguments.getOrDefault("one-time-token", true), "one-time-token"); boolean oneTimeToken = ResourceConfigUtils.getAsBoolean(arguments.getOrDefault("one-time-token", true), "one-time-token");
String protocol = arguments.getOrDefault("protocol", "http").toString(); String protocol = arguments.getOrDefault("protocol", "http").toString();
boolean denyNonMinecraftRequest = ResourceConfigUtils.getAsBoolean(arguments.getOrDefault("deny-non-minecraft-request", true), "deny-non-minecraft-request"); boolean denyNonMinecraftRequest = ResourceConfigUtils.getAsBoolean(arguments.getOrDefault("deny-non-minecraft-request", true), "deny-non-minecraft-request");
boolean strictValidation = ResourceConfigUtils.getAsBoolean(arguments.getOrDefault("strict-validation", true), "strict-validation"); boolean strictValidation = ResourceConfigUtils.getAsBoolean(arguments.getOrDefault("strict-validation", false), "strict-validation");
Bandwidth limit = null; Bandwidth limit = null;
Map<String, Object> rateLimitingSection = ResourceConfigUtils.getAsMapOrNull(arguments.get("rate-limiting"), "rate-limiting"); Map<String, Object> rateLimitingSection = ResourceConfigUtils.getAsMapOrNull(arguments.get("rate-limiting"), "rate-limiting");

View File

@@ -69,7 +69,7 @@ public class SelfHostHttpServer {
private String url; private String url;
private boolean denyNonMinecraft = true; private boolean denyNonMinecraft = true;
private boolean useToken; private boolean useToken;
private boolean strictValidation = true; private boolean strictValidation = false;
private long globalUploadRateLimit = 0; private long globalUploadRateLimit = 0;
private long minDownloadSpeed = 50_000; private long minDownloadSpeed = 50_000;
@@ -234,7 +234,7 @@ public class SelfHostHttpServer {
boolean nonMinecraftClient = userAgent == null || !userAgent.startsWith("Minecraft Java/"); boolean nonMinecraftClient = userAgent == null || !userAgent.startsWith("Minecraft Java/");
if (strictValidation && !nonMinecraftClient) { if (strictValidation && !nonMinecraftClient) {
String clientVersion = request.headers().get("X-Minecraft-Version"); String clientVersion = request.headers().get("X-Minecraft-Version");
nonMinecraftClient = !Objects.equals(clientVersion, userAgent.substring(15)); nonMinecraftClient = !Objects.equals(clientVersion, userAgent.substring("Minecraft Java/".length()));
} }
if (nonMinecraftClient) { if (nonMinecraftClient) {
sendError(ctx, HttpResponseStatus.FORBIDDEN, "Invalid client"); sendError(ctx, HttpResponseStatus.FORBIDDEN, "Invalid client");