diff --git a/CLAUDE.md b/CLAUDE.md index 04ed264..bd50442 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -111,7 +111,7 @@ See `doc/development/sonar-quality-gate.adoc` for the complete compliance policy ## Dependency Management -- **Parent POM**: `de.cuioss:cui-java-parent:1.5.1` +- **Parent POM**: `de.cuioss:cui-java-parent:1.5.4` - **CRITICAL**: Never add dependencies without explicit user approval ## Git Workflow diff --git a/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/ApiSheriffApplication.java b/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/ApiSheriffApplication.java index ea2fc1c..648795f 100644 --- a/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/ApiSheriffApplication.java +++ b/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/ApiSheriffApplication.java @@ -1,5 +1,5 @@ /* - * Copyright © 2022 CUI-OpenSource-Software (info@cuioss.de) + * Copyright © 2026 CUI-OpenSource-Software (info@cuioss.de) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/ApiSheriffLogMessages.java b/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/ApiSheriffLogMessages.java index 1aaca4f..3732b4d 100644 --- a/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/ApiSheriffLogMessages.java +++ b/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/ApiSheriffLogMessages.java @@ -1,5 +1,5 @@ /* - * Copyright © 2022 CUI-OpenSource-Software (info@cuioss.de) + * Copyright © 2026 CUI-OpenSource-Software (info@cuioss.de) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/asset/AssetResponseEnvelope.java b/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/asset/AssetResponseEnvelope.java index cbb1bf2..4c4dc57 100644 --- a/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/asset/AssetResponseEnvelope.java +++ b/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/asset/AssetResponseEnvelope.java @@ -1,5 +1,5 @@ /* - * Copyright © 2022 CUI-OpenSource-Software (info@cuioss.de) + * Copyright © 2026 CUI-OpenSource-Software (info@cuioss.de) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/asset/AssetSource.java b/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/asset/AssetSource.java index 40780ad..f11c7c0 100644 --- a/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/asset/AssetSource.java +++ b/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/asset/AssetSource.java @@ -1,5 +1,5 @@ /* - * Copyright © 2022 CUI-OpenSource-Software (info@cuioss.de) + * Copyright © 2026 CUI-OpenSource-Software (info@cuioss.de) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/asset/DirectoryAssetSource.java b/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/asset/DirectoryAssetSource.java index be650d0..f7f256b 100644 --- a/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/asset/DirectoryAssetSource.java +++ b/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/asset/DirectoryAssetSource.java @@ -1,5 +1,5 @@ /* - * Copyright © 2022 CUI-OpenSource-Software (info@cuioss.de) + * Copyright © 2026 CUI-OpenSource-Software (info@cuioss.de) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -150,7 +150,7 @@ public Served serve(HttpMethod method, String subPath) { private boolean realPathWithinRoot(Path file) { try { return file.toRealPath().startsWith(root.toRealPath()); - } catch (IOException unresolvable) { + } catch (IOException _) { return false; } } diff --git a/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/asset/PathConfinement.java b/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/asset/PathConfinement.java index eaecd77..751fafc 100644 --- a/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/asset/PathConfinement.java +++ b/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/asset/PathConfinement.java @@ -1,5 +1,5 @@ /* - * Copyright © 2022 CUI-OpenSource-Software (info@cuioss.de) + * Copyright © 2026 CUI-OpenSource-Software (info@cuioss.de) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -99,7 +99,7 @@ public Optional confine(Path root, String requestSubPath) { try { String asAbsolute = "/" + stripLeadingSlashes(requestSubPath); canonical = pathValidator.validate(asAbsolute).orElse("/"); - } catch (UrlSecurityException rejected) { + } catch (UrlSecurityException _) { return Optional.empty(); } String relative = stripLeadingSlashes(canonical); diff --git a/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/asset/UpstreamAssetSource.java b/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/asset/UpstreamAssetSource.java index 6eeeb08..6523d2b 100644 --- a/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/asset/UpstreamAssetSource.java +++ b/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/asset/UpstreamAssetSource.java @@ -1,5 +1,5 @@ /* - * Copyright © 2022 CUI-OpenSource-Software (info@cuioss.de) + * Copyright © 2026 CUI-OpenSource-Software (info@cuioss.de) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -76,7 +76,6 @@ public final class UpstreamAssetSource implements AssetSource { /** The default upstream read timeout. */ public static final Duration DEFAULT_READ_TIMEOUT = Duration.ofSeconds(10); - private static final int OK = 200; private static final int NOT_FOUND = 404; private static final int METHOD_NOT_ALLOWED = 405; private static final int PAYLOAD_TOO_LARGE = 413; @@ -160,7 +159,7 @@ public Served serve(HttpMethod method, String remainder) { UpstreamFetcher.Fetched fetched; try { fetched = fetcher.fetch(target); - } catch (UpstreamFetcher.UpstreamTimeoutException timeout) { + } catch (UpstreamFetcher.UpstreamTimeoutException _) { return new Served(GATEWAY_TIMEOUT, Map.of(), EMPTY_BODY); } catch (IOException _) { return new Served(BAD_GATEWAY, Map.of(), EMPTY_BODY); diff --git a/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/asset/package-info.java b/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/asset/package-info.java index 441620e..6cb7258 100644 --- a/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/asset/package-info.java +++ b/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/asset/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2022 CUI-OpenSource-Software (info@cuioss.de) + * Copyright © 2026 CUI-OpenSource-Software (info@cuioss.de) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/auth/AuthenticationStage.java b/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/auth/AuthenticationStage.java index 4fcb2b9..1bd5c8c 100644 --- a/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/auth/AuthenticationStage.java +++ b/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/auth/AuthenticationStage.java @@ -1,5 +1,5 @@ /* - * Copyright © 2022 CUI-OpenSource-Software (info@cuioss.de) + * Copyright © 2026 CUI-OpenSource-Software (info@cuioss.de) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/auth/GatewayValidator.java b/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/auth/GatewayValidator.java index d011cb6..ef3f33c 100644 --- a/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/auth/GatewayValidator.java +++ b/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/auth/GatewayValidator.java @@ -1,5 +1,5 @@ /* - * Copyright © 2022 CUI-OpenSource-Software (info@cuioss.de) + * Copyright © 2026 CUI-OpenSource-Software (info@cuioss.de) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/auth/JwksTrustProfileResolver.java b/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/auth/JwksTrustProfileResolver.java index cdd7f2e..0a4498c 100644 --- a/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/auth/JwksTrustProfileResolver.java +++ b/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/auth/JwksTrustProfileResolver.java @@ -1,5 +1,5 @@ /* - * Copyright © 2022 CUI-OpenSource-Software (info@cuioss.de) + * Copyright © 2026 CUI-OpenSource-Software (info@cuioss.de) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/auth/TokenValidatorProducer.java b/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/auth/TokenValidatorProducer.java index a010ece..0945b1c 100644 --- a/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/auth/TokenValidatorProducer.java +++ b/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/auth/TokenValidatorProducer.java @@ -1,5 +1,5 @@ /* - * Copyright © 2022 CUI-OpenSource-Software (info@cuioss.de) + * Copyright © 2026 CUI-OpenSource-Software (info@cuioss.de) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/auth/package-info.java b/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/auth/package-info.java index 8086d35..0f04933 100644 --- a/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/auth/package-info.java +++ b/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/auth/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2022 CUI-OpenSource-Software (info@cuioss.de) + * Copyright © 2026 CUI-OpenSource-Software (info@cuioss.de) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/config/ConfigLogMessages.java b/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/config/ConfigLogMessages.java index 1111fe6..245318c 100644 --- a/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/config/ConfigLogMessages.java +++ b/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/config/ConfigLogMessages.java @@ -1,5 +1,5 @@ /* - * Copyright © 2022 CUI-OpenSource-Software (info@cuioss.de) + * Copyright © 2026 CUI-OpenSource-Software (info@cuioss.de) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/config/RouteTableBuilder.java b/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/config/RouteTableBuilder.java index 4be25ca..0b32aac 100644 --- a/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/config/RouteTableBuilder.java +++ b/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/config/RouteTableBuilder.java @@ -1,5 +1,5 @@ /* - * Copyright © 2022 CUI-OpenSource-Software (info@cuioss.de) + * Copyright © 2026 CUI-OpenSource-Software (info@cuioss.de) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/config/load/ConfigError.java b/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/config/load/ConfigError.java index edd5e31..1fa80d8 100644 --- a/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/config/load/ConfigError.java +++ b/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/config/load/ConfigError.java @@ -1,5 +1,5 @@ /* - * Copyright © 2022 CUI-OpenSource-Software (info@cuioss.de) + * Copyright © 2026 CUI-OpenSource-Software (info@cuioss.de) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/config/load/ConfigLoadException.java b/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/config/load/ConfigLoadException.java index 8ad3c6c..22a8fd8 100644 --- a/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/config/load/ConfigLoadException.java +++ b/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/config/load/ConfigLoadException.java @@ -1,5 +1,5 @@ /* - * Copyright © 2022 CUI-OpenSource-Software (info@cuioss.de) + * Copyright © 2026 CUI-OpenSource-Software (info@cuioss.de) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/config/load/ConfigLoader.java b/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/config/load/ConfigLoader.java index 82f4060..aba44bc 100644 --- a/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/config/load/ConfigLoader.java +++ b/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/config/load/ConfigLoader.java @@ -1,5 +1,5 @@ /* - * Copyright © 2022 CUI-OpenSource-Software (info@cuioss.de) + * Copyright © 2026 CUI-OpenSource-Software (info@cuioss.de) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -374,7 +374,7 @@ private static JsonNode coerce(String value) { return IntNode.valueOf((int) parsed); } return LongNode.valueOf(parsed); - } catch (NumberFormatException e) { + } catch (NumberFormatException _) { return TextNode.valueOf(value); } } diff --git a/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/config/load/EnvSecretResolver.java b/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/config/load/EnvSecretResolver.java index 3700bcf..f8253f3 100644 --- a/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/config/load/EnvSecretResolver.java +++ b/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/config/load/EnvSecretResolver.java @@ -1,5 +1,5 @@ /* - * Copyright © 2022 CUI-OpenSource-Software (info@cuioss.de) + * Copyright © 2026 CUI-OpenSource-Software (info@cuioss.de) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/config/load/package-info.java b/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/config/load/package-info.java index 6a4f433..9a03858 100644 --- a/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/config/load/package-info.java +++ b/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/config/load/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2022 CUI-OpenSource-Software (info@cuioss.de) + * Copyright © 2026 CUI-OpenSource-Software (info@cuioss.de) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/config/model/AccessLevel.java b/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/config/model/AccessLevel.java index 1c072c1..45cb1db 100644 --- a/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/config/model/AccessLevel.java +++ b/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/config/model/AccessLevel.java @@ -1,5 +1,5 @@ /* - * Copyright © 2022 CUI-OpenSource-Software (info@cuioss.de) + * Copyright © 2026 CUI-OpenSource-Software (info@cuioss.de) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/config/model/AnchorConfig.java b/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/config/model/AnchorConfig.java index 1d55c8a..0322da4 100644 --- a/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/config/model/AnchorConfig.java +++ b/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/config/model/AnchorConfig.java @@ -1,5 +1,5 @@ /* - * Copyright © 2022 CUI-OpenSource-Software (info@cuioss.de) + * Copyright © 2026 CUI-OpenSource-Software (info@cuioss.de) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/config/model/AnchorType.java b/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/config/model/AnchorType.java index 5c0b794..3875db7 100644 --- a/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/config/model/AnchorType.java +++ b/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/config/model/AnchorType.java @@ -1,5 +1,5 @@ /* - * Copyright © 2022 CUI-OpenSource-Software (info@cuioss.de) + * Copyright © 2026 CUI-OpenSource-Software (info@cuioss.de) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/config/model/AssetConfig.java b/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/config/model/AssetConfig.java index 732f3eb..e412c73 100644 --- a/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/config/model/AssetConfig.java +++ b/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/config/model/AssetConfig.java @@ -1,5 +1,5 @@ /* - * Copyright © 2022 CUI-OpenSource-Software (info@cuioss.de) + * Copyright © 2026 CUI-OpenSource-Software (info@cuioss.de) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/config/model/AuthConfig.java b/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/config/model/AuthConfig.java index 493ed99..ba14764 100644 --- a/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/config/model/AuthConfig.java +++ b/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/config/model/AuthConfig.java @@ -1,5 +1,5 @@ /* - * Copyright © 2022 CUI-OpenSource-Software (info@cuioss.de) + * Copyright © 2026 CUI-OpenSource-Software (info@cuioss.de) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/config/model/EndpointConfig.java b/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/config/model/EndpointConfig.java index a4d67ce..6d6f27c 100644 --- a/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/config/model/EndpointConfig.java +++ b/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/config/model/EndpointConfig.java @@ -1,5 +1,5 @@ /* - * Copyright © 2022 CUI-OpenSource-Software (info@cuioss.de) + * Copyright © 2026 CUI-OpenSource-Software (info@cuioss.de) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/config/model/ForwardConfig.java b/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/config/model/ForwardConfig.java index 734e302..91b6e2b 100644 --- a/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/config/model/ForwardConfig.java +++ b/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/config/model/ForwardConfig.java @@ -1,5 +1,5 @@ /* - * Copyright © 2022 CUI-OpenSource-Software (info@cuioss.de) + * Copyright © 2026 CUI-OpenSource-Software (info@cuioss.de) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/config/model/ForwardedConfig.java b/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/config/model/ForwardedConfig.java index b1a63b3..6c7b6f9 100644 --- a/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/config/model/ForwardedConfig.java +++ b/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/config/model/ForwardedConfig.java @@ -1,5 +1,5 @@ /* - * Copyright © 2022 CUI-OpenSource-Software (info@cuioss.de) + * Copyright © 2026 CUI-OpenSource-Software (info@cuioss.de) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/config/model/GatewayConfig.java b/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/config/model/GatewayConfig.java index 9ffba8e..0a378ed 100644 --- a/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/config/model/GatewayConfig.java +++ b/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/config/model/GatewayConfig.java @@ -1,5 +1,5 @@ /* - * Copyright © 2022 CUI-OpenSource-Software (info@cuioss.de) + * Copyright © 2026 CUI-OpenSource-Software (info@cuioss.de) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/config/model/HttpMethod.java b/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/config/model/HttpMethod.java index 9205101..b7dd276 100644 --- a/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/config/model/HttpMethod.java +++ b/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/config/model/HttpMethod.java @@ -1,5 +1,5 @@ /* - * Copyright © 2022 CUI-OpenSource-Software (info@cuioss.de) + * Copyright © 2026 CUI-OpenSource-Software (info@cuioss.de) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/config/model/IssuerConfig.java b/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/config/model/IssuerConfig.java index 3feab31..a75e41a 100644 --- a/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/config/model/IssuerConfig.java +++ b/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/config/model/IssuerConfig.java @@ -1,5 +1,5 @@ /* - * Copyright © 2022 CUI-OpenSource-Software (info@cuioss.de) + * Copyright © 2026 CUI-OpenSource-Software (info@cuioss.de) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/config/model/MatchConfig.java b/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/config/model/MatchConfig.java index 2f9168f..8e3e004 100644 --- a/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/config/model/MatchConfig.java +++ b/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/config/model/MatchConfig.java @@ -1,5 +1,5 @@ /* - * Copyright © 2022 CUI-OpenSource-Software (info@cuioss.de) + * Copyright © 2026 CUI-OpenSource-Software (info@cuioss.de) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/config/model/Metadata.java b/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/config/model/Metadata.java index f79540d..315d6fb 100644 --- a/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/config/model/Metadata.java +++ b/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/config/model/Metadata.java @@ -1,5 +1,5 @@ /* - * Copyright © 2022 CUI-OpenSource-Software (info@cuioss.de) + * Copyright © 2026 CUI-OpenSource-Software (info@cuioss.de) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/config/model/OidcConfig.java b/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/config/model/OidcConfig.java index 044a337..6fb81c3 100644 --- a/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/config/model/OidcConfig.java +++ b/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/config/model/OidcConfig.java @@ -1,5 +1,5 @@ /* - * Copyright © 2022 CUI-OpenSource-Software (info@cuioss.de) + * Copyright © 2026 CUI-OpenSource-Software (info@cuioss.de) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/config/model/Protocol.java b/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/config/model/Protocol.java index 29b7103..2403c07 100644 --- a/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/config/model/Protocol.java +++ b/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/config/model/Protocol.java @@ -1,5 +1,5 @@ /* - * Copyright © 2022 CUI-OpenSource-Software (info@cuioss.de) + * Copyright © 2026 CUI-OpenSource-Software (info@cuioss.de) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/config/model/RateLimitConfig.java b/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/config/model/RateLimitConfig.java index 8037db1..9f6281d 100644 --- a/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/config/model/RateLimitConfig.java +++ b/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/config/model/RateLimitConfig.java @@ -1,5 +1,5 @@ /* - * Copyright © 2022 CUI-OpenSource-Software (info@cuioss.de) + * Copyright © 2026 CUI-OpenSource-Software (info@cuioss.de) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/config/model/ResolvedAsset.java b/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/config/model/ResolvedAsset.java index acbb783..1007465 100644 --- a/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/config/model/ResolvedAsset.java +++ b/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/config/model/ResolvedAsset.java @@ -1,5 +1,5 @@ /* - * Copyright © 2022 CUI-OpenSource-Software (info@cuioss.de) + * Copyright © 2026 CUI-OpenSource-Software (info@cuioss.de) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -64,6 +64,12 @@ public record ResolvedAsset(AssetConfig.Source source, AccessLevel access, Optio * upstream, an {@link AssetConfig.Source#UPSTREAM} action carries a resolved * upstream and no directory. */ + // NOSONAR java:S6916 - the rule suggests replacing each case's if with a `when` guard, but + // guards attach only to PATTERN labels; `case DIRECTORY when ...` on an enum CONSTANT label + // is a compile error (verified against javac --release 25). The suggested remedy is therefore + // inapplicable at this site, and the alternative (switching on a type pattern) would restructure + // the invariant check rather than address the finding. + @SuppressWarnings("java:S6916") public ResolvedAsset { Objects.requireNonNull(source, "source"); Objects.requireNonNull(access, "access"); diff --git a/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/config/model/ResolvedRoute.java b/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/config/model/ResolvedRoute.java index 3783beb..bd70a51 100644 --- a/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/config/model/ResolvedRoute.java +++ b/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/config/model/ResolvedRoute.java @@ -1,5 +1,5 @@ /* - * Copyright © 2022 CUI-OpenSource-Software (info@cuioss.de) + * Copyright © 2026 CUI-OpenSource-Software (info@cuioss.de) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/config/model/ResolvedTopology.java b/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/config/model/ResolvedTopology.java index 5c052fc..3cf5e57 100644 --- a/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/config/model/ResolvedTopology.java +++ b/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/config/model/ResolvedTopology.java @@ -1,5 +1,5 @@ /* - * Copyright © 2022 CUI-OpenSource-Software (info@cuioss.de) + * Copyright © 2026 CUI-OpenSource-Software (info@cuioss.de) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/config/model/ResolvedUpstream.java b/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/config/model/ResolvedUpstream.java index b8e8b6f..a0433b4 100644 --- a/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/config/model/ResolvedUpstream.java +++ b/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/config/model/ResolvedUpstream.java @@ -1,5 +1,5 @@ /* - * Copyright © 2022 CUI-OpenSource-Software (info@cuioss.de) + * Copyright © 2026 CUI-OpenSource-Software (info@cuioss.de) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/config/model/RouteConfig.java b/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/config/model/RouteConfig.java index 82fa5ec..bd385cb 100644 --- a/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/config/model/RouteConfig.java +++ b/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/config/model/RouteConfig.java @@ -1,5 +1,5 @@ /* - * Copyright © 2022 CUI-OpenSource-Software (info@cuioss.de) + * Copyright © 2026 CUI-OpenSource-Software (info@cuioss.de) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/config/model/RouteTable.java b/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/config/model/RouteTable.java index 4de7ba7..b7a05b9 100644 --- a/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/config/model/RouteTable.java +++ b/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/config/model/RouteTable.java @@ -1,5 +1,5 @@ /* - * Copyright © 2022 CUI-OpenSource-Software (info@cuioss.de) + * Copyright © 2026 CUI-OpenSource-Software (info@cuioss.de) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/config/model/SecurityDefaultsConfig.java b/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/config/model/SecurityDefaultsConfig.java index 871f3f8..a98cb2d 100644 --- a/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/config/model/SecurityDefaultsConfig.java +++ b/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/config/model/SecurityDefaultsConfig.java @@ -1,5 +1,5 @@ /* - * Copyright © 2022 CUI-OpenSource-Software (info@cuioss.de) + * Copyright © 2026 CUI-OpenSource-Software (info@cuioss.de) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/config/model/SecurityFilterConfig.java b/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/config/model/SecurityFilterConfig.java index cf1abc3..4fca5f3 100644 --- a/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/config/model/SecurityFilterConfig.java +++ b/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/config/model/SecurityFilterConfig.java @@ -1,5 +1,5 @@ /* - * Copyright © 2022 CUI-OpenSource-Software (info@cuioss.de) + * Copyright © 2026 CUI-OpenSource-Software (info@cuioss.de) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/config/model/SecurityHeadersConfig.java b/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/config/model/SecurityHeadersConfig.java index 2f0b38f..e1f755a 100644 --- a/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/config/model/SecurityHeadersConfig.java +++ b/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/config/model/SecurityHeadersConfig.java @@ -1,5 +1,5 @@ /* - * Copyright © 2022 CUI-OpenSource-Software (info@cuioss.de) + * Copyright © 2026 CUI-OpenSource-Software (info@cuioss.de) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/config/model/TlsConfig.java b/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/config/model/TlsConfig.java index 0ccdcd7..51d7c56 100644 --- a/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/config/model/TlsConfig.java +++ b/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/config/model/TlsConfig.java @@ -1,5 +1,5 @@ /* - * Copyright © 2022 CUI-OpenSource-Software (info@cuioss.de) + * Copyright © 2026 CUI-OpenSource-Software (info@cuioss.de) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/config/model/TokenValidationConfig.java b/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/config/model/TokenValidationConfig.java index 3bb96be..a1d119a 100644 --- a/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/config/model/TokenValidationConfig.java +++ b/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/config/model/TokenValidationConfig.java @@ -1,5 +1,5 @@ /* - * Copyright © 2022 CUI-OpenSource-Software (info@cuioss.de) + * Copyright © 2026 CUI-OpenSource-Software (info@cuioss.de) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/config/model/UpstreamConfig.java b/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/config/model/UpstreamConfig.java index 674ff4d..8fe7467 100644 --- a/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/config/model/UpstreamConfig.java +++ b/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/config/model/UpstreamConfig.java @@ -1,5 +1,5 @@ /* - * Copyright © 2022 CUI-OpenSource-Software (info@cuioss.de) + * Copyright © 2026 CUI-OpenSource-Software (info@cuioss.de) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/config/model/UpstreamDefaultsConfig.java b/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/config/model/UpstreamDefaultsConfig.java index 921dc92..5c9a41a 100644 --- a/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/config/model/UpstreamDefaultsConfig.java +++ b/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/config/model/UpstreamDefaultsConfig.java @@ -1,5 +1,5 @@ /* - * Copyright © 2022 CUI-OpenSource-Software (info@cuioss.de) + * Copyright © 2026 CUI-OpenSource-Software (info@cuioss.de) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/config/model/WebSocketConfig.java b/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/config/model/WebSocketConfig.java index e0b9715..a547c5c 100644 --- a/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/config/model/WebSocketConfig.java +++ b/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/config/model/WebSocketConfig.java @@ -1,5 +1,5 @@ /* - * Copyright © 2022 CUI-OpenSource-Software (info@cuioss.de) + * Copyright © 2026 CUI-OpenSource-Software (info@cuioss.de) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/config/model/package-info.java b/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/config/model/package-info.java index 6e7ac42..2613564 100644 --- a/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/config/model/package-info.java +++ b/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/config/model/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2022 CUI-OpenSource-Software (info@cuioss.de) + * Copyright © 2026 CUI-OpenSource-Software (info@cuioss.de) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/config/package-info.java b/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/config/package-info.java index da6eb7a..d1a8857 100644 --- a/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/config/package-info.java +++ b/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/config/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2022 CUI-OpenSource-Software (info@cuioss.de) + * Copyright © 2026 CUI-OpenSource-Software (info@cuioss.de) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/config/topology/TopologyResolver.java b/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/config/topology/TopologyResolver.java index abf7938..8a3260f 100644 --- a/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/config/topology/TopologyResolver.java +++ b/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/config/topology/TopologyResolver.java @@ -1,5 +1,5 @@ /* - * Copyright © 2022 CUI-OpenSource-Software (info@cuioss.de) + * Copyright © 2026 CUI-OpenSource-Software (info@cuioss.de) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/config/topology/package-info.java b/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/config/topology/package-info.java index e58fdb7..f4946ee 100644 --- a/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/config/topology/package-info.java +++ b/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/config/topology/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2022 CUI-OpenSource-Software (info@cuioss.de) + * Copyright © 2026 CUI-OpenSource-Software (info@cuioss.de) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/config/validation/ConfigValidator.java b/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/config/validation/ConfigValidator.java index 72d2a53..1f639cc 100644 --- a/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/config/validation/ConfigValidator.java +++ b/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/config/validation/ConfigValidator.java @@ -1,5 +1,5 @@ /* - * Copyright © 2022 CUI-OpenSource-Software (info@cuioss.de) + * Copyright © 2026 CUI-OpenSource-Software (info@cuioss.de) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -120,7 +120,7 @@ public final class ConfigValidator { (gateway, endpoints, topology, errors) -> validateAnchorAuthFloor(gateway, endpoints, errors), (gateway, endpoints, topology, errors) -> validateEffectiveAuth(gateway, endpoints, errors), (gateway, endpoints, topology, errors) -> validateAccessAuthMatrix(gateway, errors), - (gateway, endpoints, topology, errors) -> validateTerminalAction(gateway, endpoints, topology, errors), + ConfigValidator::validateTerminalAction, (gateway, endpoints, topology, errors) -> validateMethodMembership(gateway, endpoints, errors), (gateway, endpoints, topology, errors) -> validateForwardedTrust(gateway, errors), (gateway, endpoints, topology, errors) -> validateCors(gateway, errors), @@ -553,6 +553,11 @@ private static void validateTerminalAction(GatewayConfig gateway, List errors) { switch (asset.source()) { @@ -675,13 +680,13 @@ private static Optional parseCidr(String cidr) { int prefixLength; try { prefixLength = Integer.parseInt(cidr.substring(slash + 1)); - } catch (NumberFormatException e) { + } catch (NumberFormatException _) { return Optional.empty(); } byte[] bytes; try { bytes = InetAddress.ofLiteral(cidr.substring(0, slash)).getAddress(); - } catch (IllegalArgumentException e) { + } catch (IllegalArgumentException _) { return Optional.empty(); } int bits = bytes.length * 8; diff --git a/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/config/validation/package-info.java b/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/config/validation/package-info.java index 156b44b..bc0d352 100644 --- a/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/config/validation/package-info.java +++ b/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/config/validation/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2022 CUI-OpenSource-Software (info@cuioss.de) + * Copyright © 2026 CUI-OpenSource-Software (info@cuioss.de) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/config/validation/rule/ValidationRule.java b/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/config/validation/rule/ValidationRule.java index 3fbc99d..6cbd89f 100644 --- a/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/config/validation/rule/ValidationRule.java +++ b/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/config/validation/rule/ValidationRule.java @@ -1,5 +1,5 @@ /* - * Copyright © 2022 CUI-OpenSource-Software (info@cuioss.de) + * Copyright © 2026 CUI-OpenSource-Software (info@cuioss.de) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/config/validation/rule/package-info.java b/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/config/validation/rule/package-info.java index 68ee44b..066833e 100644 --- a/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/config/validation/rule/package-info.java +++ b/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/config/validation/rule/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2022 CUI-OpenSource-Software (info@cuioss.de) + * Copyright © 2026 CUI-OpenSource-Software (info@cuioss.de) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/edge/DispatchStage.java b/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/edge/DispatchStage.java index 15416ec..8017e5a 100644 --- a/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/edge/DispatchStage.java +++ b/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/edge/DispatchStage.java @@ -1,5 +1,5 @@ /* - * Copyright © 2022 CUI-OpenSource-Software (info@cuioss.de) + * Copyright © 2026 CUI-OpenSource-Software (info@cuioss.de) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/edge/EdgeHardeningOptions.java b/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/edge/EdgeHardeningOptions.java index fac09ef..00f4e64 100644 --- a/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/edge/EdgeHardeningOptions.java +++ b/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/edge/EdgeHardeningOptions.java @@ -1,5 +1,5 @@ /* - * Copyright © 2022 CUI-OpenSource-Software (info@cuioss.de) + * Copyright © 2026 CUI-OpenSource-Software (info@cuioss.de) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/edge/GatewayEdgeRoute.java b/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/edge/GatewayEdgeRoute.java index 8e2176f..51fae6b 100644 --- a/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/edge/GatewayEdgeRoute.java +++ b/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/edge/GatewayEdgeRoute.java @@ -1,5 +1,5 @@ /* - * Copyright © 2022 CUI-OpenSource-Software (info@cuioss.de) + * Copyright © 2026 CUI-OpenSource-Software (info@cuioss.de) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -682,7 +682,7 @@ private static String encode(String value) { private static Optional parseMethod(String name) { try { return Optional.of(HttpMethod.valueOf(name)); - } catch (IllegalArgumentException unsupported) { + } catch (IllegalArgumentException _) { return Optional.empty(); } } diff --git a/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/edge/GrpcDispatchStage.java b/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/edge/GrpcDispatchStage.java index 12f7ccf..a98db71 100644 --- a/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/edge/GrpcDispatchStage.java +++ b/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/edge/GrpcDispatchStage.java @@ -1,5 +1,5 @@ /* - * Copyright © 2022 CUI-OpenSource-Software (info@cuioss.de) + * Copyright © 2026 CUI-OpenSource-Software (info@cuioss.de) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/edge/GrpcStatusMapper.java b/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/edge/GrpcStatusMapper.java index 378110e..2a9d82a 100644 --- a/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/edge/GrpcStatusMapper.java +++ b/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/edge/GrpcStatusMapper.java @@ -1,5 +1,5 @@ /* - * Copyright © 2022 CUI-OpenSource-Software (info@cuioss.de) + * Copyright © 2026 CUI-OpenSource-Software (info@cuioss.de) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/edge/ResponseStage.java b/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/edge/ResponseStage.java index 5729c19..348cf32 100644 --- a/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/edge/ResponseStage.java +++ b/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/edge/ResponseStage.java @@ -1,5 +1,5 @@ /* - * Copyright © 2022 CUI-OpenSource-Software (info@cuioss.de) + * Copyright © 2026 CUI-OpenSource-Software (info@cuioss.de) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/edge/RouteRuntimeAssembler.java b/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/edge/RouteRuntimeAssembler.java index b7786f3..cf7a311 100644 --- a/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/edge/RouteRuntimeAssembler.java +++ b/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/edge/RouteRuntimeAssembler.java @@ -1,5 +1,5 @@ /* - * Copyright © 2022 CUI-OpenSource-Software (info@cuioss.de) + * Copyright © 2026 CUI-OpenSource-Software (info@cuioss.de) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/edge/StreamAwareRetryGate.java b/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/edge/StreamAwareRetryGate.java index 5273c69..400a727 100644 --- a/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/edge/StreamAwareRetryGate.java +++ b/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/edge/StreamAwareRetryGate.java @@ -1,5 +1,5 @@ /* - * Copyright © 2022 CUI-OpenSource-Software (info@cuioss.de) + * Copyright © 2026 CUI-OpenSource-Software (info@cuioss.de) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/edge/UpstreamFailureMapper.java b/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/edge/UpstreamFailureMapper.java index 769a17c..d53625b 100644 --- a/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/edge/UpstreamFailureMapper.java +++ b/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/edge/UpstreamFailureMapper.java @@ -1,5 +1,5 @@ /* - * Copyright © 2022 CUI-OpenSource-Software (info@cuioss.de) + * Copyright © 2026 CUI-OpenSource-Software (info@cuioss.de) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/edge/WebSocketRelayStage.java b/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/edge/WebSocketRelayStage.java index 21ed869..2d47ad8 100644 --- a/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/edge/WebSocketRelayStage.java +++ b/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/edge/WebSocketRelayStage.java @@ -1,5 +1,5 @@ /* - * Copyright © 2022 CUI-OpenSource-Software (info@cuioss.de) + * Copyright © 2026 CUI-OpenSource-Software (info@cuioss.de) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/edge/package-info.java b/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/edge/package-info.java index b38aee7..62f24f5 100644 --- a/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/edge/package-info.java +++ b/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/edge/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2022 CUI-OpenSource-Software (info@cuioss.de) + * Copyright © 2026 CUI-OpenSource-Software (info@cuioss.de) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/events/EventCategory.java b/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/events/EventCategory.java index 1488272..422dc51 100644 --- a/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/events/EventCategory.java +++ b/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/events/EventCategory.java @@ -1,5 +1,5 @@ /* - * Copyright © 2022 CUI-OpenSource-Software (info@cuioss.de) + * Copyright © 2026 CUI-OpenSource-Software (info@cuioss.de) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/events/EventType.java b/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/events/EventType.java index bd07897..753ebe8 100644 --- a/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/events/EventType.java +++ b/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/events/EventType.java @@ -1,5 +1,5 @@ /* - * Copyright © 2022 CUI-OpenSource-Software (info@cuioss.de) + * Copyright © 2026 CUI-OpenSource-Software (info@cuioss.de) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/events/GatewayEventCounter.java b/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/events/GatewayEventCounter.java index a97934e..42f8884 100644 --- a/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/events/GatewayEventCounter.java +++ b/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/events/GatewayEventCounter.java @@ -1,5 +1,5 @@ /* - * Copyright © 2022 CUI-OpenSource-Software (info@cuioss.de) + * Copyright © 2026 CUI-OpenSource-Software (info@cuioss.de) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/events/GatewayException.java b/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/events/GatewayException.java index 4a36a9c..9e8b95b 100644 --- a/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/events/GatewayException.java +++ b/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/events/GatewayException.java @@ -1,5 +1,5 @@ /* - * Copyright © 2022 CUI-OpenSource-Software (info@cuioss.de) + * Copyright © 2026 CUI-OpenSource-Software (info@cuioss.de) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/events/package-info.java b/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/events/package-info.java index a7b1672..f01ab2d 100644 --- a/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/events/package-info.java +++ b/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/events/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2022 CUI-OpenSource-Software (info@cuioss.de) + * Copyright © 2026 CUI-OpenSource-Software (info@cuioss.de) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/forward/ForwardPolicyStage.java b/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/forward/ForwardPolicyStage.java index e60edbd..e1fa5a8 100644 --- a/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/forward/ForwardPolicyStage.java +++ b/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/forward/ForwardPolicyStage.java @@ -1,5 +1,5 @@ /* - * Copyright © 2022 CUI-OpenSource-Software (info@cuioss.de) + * Copyright © 2026 CUI-OpenSource-Software (info@cuioss.de) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/forward/TcpPeerGate.java b/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/forward/TcpPeerGate.java index 9b9127f..a5fa59a 100644 --- a/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/forward/TcpPeerGate.java +++ b/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/forward/TcpPeerGate.java @@ -1,5 +1,5 @@ /* - * Copyright © 2022 CUI-OpenSource-Software (info@cuioss.de) + * Copyright © 2026 CUI-OpenSource-Software (info@cuioss.de) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/forward/package-info.java b/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/forward/package-info.java index cb67087..3e1621b 100644 --- a/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/forward/package-info.java +++ b/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/forward/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2022 CUI-OpenSource-Software (info@cuioss.de) + * Copyright © 2026 CUI-OpenSource-Software (info@cuioss.de) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/package-info.java b/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/package-info.java index dfa47df..268747a 100644 --- a/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/package-info.java +++ b/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2022 CUI-OpenSource-Software (info@cuioss.de) + * Copyright © 2026 CUI-OpenSource-Software (info@cuioss.de) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/pipeline/BasicChecksStage.java b/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/pipeline/BasicChecksStage.java index 87e2e22..14dc657 100644 --- a/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/pipeline/BasicChecksStage.java +++ b/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/pipeline/BasicChecksStage.java @@ -1,5 +1,5 @@ /* - * Copyright © 2022 CUI-OpenSource-Software (info@cuioss.de) + * Copyright © 2026 CUI-OpenSource-Software (info@cuioss.de) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/pipeline/CanonicalPathGuard.java b/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/pipeline/CanonicalPathGuard.java index f1522b8..36ab7f3 100644 --- a/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/pipeline/CanonicalPathGuard.java +++ b/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/pipeline/CanonicalPathGuard.java @@ -1,5 +1,5 @@ /* - * Copyright © 2022 CUI-OpenSource-Software (info@cuioss.de) + * Copyright © 2026 CUI-OpenSource-Software (info@cuioss.de) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/pipeline/FramingGate.java b/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/pipeline/FramingGate.java index 79ea4ca..6f86961 100644 --- a/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/pipeline/FramingGate.java +++ b/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/pipeline/FramingGate.java @@ -1,5 +1,5 @@ /* - * Copyright © 2022 CUI-OpenSource-Software (info@cuioss.de) + * Copyright © 2026 CUI-OpenSource-Software (info@cuioss.de) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/pipeline/OriginValidationStage.java b/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/pipeline/OriginValidationStage.java index 82cdebc..ebc3a9c 100644 --- a/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/pipeline/OriginValidationStage.java +++ b/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/pipeline/OriginValidationStage.java @@ -1,5 +1,5 @@ /* - * Copyright © 2022 CUI-OpenSource-Software (info@cuioss.de) + * Copyright © 2026 CUI-OpenSource-Software (info@cuioss.de) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/pipeline/PipelineRequest.java b/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/pipeline/PipelineRequest.java index 00c867a..d07829b 100644 --- a/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/pipeline/PipelineRequest.java +++ b/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/pipeline/PipelineRequest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2022 CUI-OpenSource-Software (info@cuioss.de) + * Copyright © 2026 CUI-OpenSource-Software (info@cuioss.de) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/pipeline/RouteSelectionStage.java b/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/pipeline/RouteSelectionStage.java index 75bd3b0..20d26d6 100644 --- a/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/pipeline/RouteSelectionStage.java +++ b/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/pipeline/RouteSelectionStage.java @@ -1,5 +1,5 @@ /* - * Copyright © 2022 CUI-OpenSource-Software (info@cuioss.de) + * Copyright © 2026 CUI-OpenSource-Software (info@cuioss.de) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/pipeline/SecurityHeadersStage.java b/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/pipeline/SecurityHeadersStage.java index 7face2a..f168ca7 100644 --- a/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/pipeline/SecurityHeadersStage.java +++ b/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/pipeline/SecurityHeadersStage.java @@ -1,5 +1,5 @@ /* - * Copyright © 2022 CUI-OpenSource-Software (info@cuioss.de) + * Copyright © 2026 CUI-OpenSource-Software (info@cuioss.de) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/pipeline/ThoroughChecksStage.java b/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/pipeline/ThoroughChecksStage.java index f031718..bdc89db 100644 --- a/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/pipeline/ThoroughChecksStage.java +++ b/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/pipeline/ThoroughChecksStage.java @@ -1,5 +1,5 @@ /* - * Copyright © 2022 CUI-OpenSource-Software (info@cuioss.de) + * Copyright © 2026 CUI-OpenSource-Software (info@cuioss.de) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/pipeline/VerbGateStage.java b/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/pipeline/VerbGateStage.java index f18d54f..213a2a2 100644 --- a/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/pipeline/VerbGateStage.java +++ b/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/pipeline/VerbGateStage.java @@ -1,5 +1,5 @@ /* - * Copyright © 2022 CUI-OpenSource-Software (info@cuioss.de) + * Copyright © 2026 CUI-OpenSource-Software (info@cuioss.de) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/pipeline/package-info.java b/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/pipeline/package-info.java index 2c2a6af..1f7d0cc 100644 --- a/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/pipeline/package-info.java +++ b/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/pipeline/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2022 CUI-OpenSource-Software (info@cuioss.de) + * Copyright © 2026 CUI-OpenSource-Software (info@cuioss.de) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/quarkus/ConfigModelReflection.java b/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/quarkus/ConfigModelReflection.java index d218e4b..87bc2d1 100644 --- a/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/quarkus/ConfigModelReflection.java +++ b/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/quarkus/ConfigModelReflection.java @@ -1,5 +1,5 @@ /* - * Copyright © 2022 CUI-OpenSource-Software (info@cuioss.de) + * Copyright © 2026 CUI-OpenSource-Software (info@cuioss.de) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/quarkus/ConfigProducer.java b/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/quarkus/ConfigProducer.java index ca23705..d1edf7f 100644 --- a/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/quarkus/ConfigProducer.java +++ b/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/quarkus/ConfigProducer.java @@ -1,5 +1,5 @@ /* - * Copyright © 2022 CUI-OpenSource-Software (info@cuioss.de) + * Copyright © 2026 CUI-OpenSource-Software (info@cuioss.de) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/quarkus/GatewayReadinessCheck.java b/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/quarkus/GatewayReadinessCheck.java index 802e26a..b0ee79e 100644 --- a/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/quarkus/GatewayReadinessCheck.java +++ b/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/quarkus/GatewayReadinessCheck.java @@ -1,5 +1,5 @@ /* - * Copyright © 2022 CUI-OpenSource-Software (info@cuioss.de) + * Copyright © 2026 CUI-OpenSource-Software (info@cuioss.de) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/quarkus/SheriffMetrics.java b/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/quarkus/SheriffMetrics.java index 0d4c48e..8c798d3 100644 --- a/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/quarkus/SheriffMetrics.java +++ b/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/quarkus/SheriffMetrics.java @@ -1,5 +1,5 @@ /* - * Copyright © 2022 CUI-OpenSource-Software (info@cuioss.de) + * Copyright © 2026 CUI-OpenSource-Software (info@cuioss.de) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/quarkus/package-info.java b/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/quarkus/package-info.java index 7111d40..3280550 100644 --- a/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/quarkus/package-info.java +++ b/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/quarkus/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2022 CUI-OpenSource-Software (info@cuioss.de) + * Copyright © 2026 CUI-OpenSource-Software (info@cuioss.de) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/routing/GrpcProtocolProcessor.java b/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/routing/GrpcProtocolProcessor.java index 9793325..e2d9007 100644 --- a/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/routing/GrpcProtocolProcessor.java +++ b/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/routing/GrpcProtocolProcessor.java @@ -1,5 +1,5 @@ /* - * Copyright © 2022 CUI-OpenSource-Software (info@cuioss.de) + * Copyright © 2026 CUI-OpenSource-Software (info@cuioss.de) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/routing/HttpProtocolProcessor.java b/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/routing/HttpProtocolProcessor.java index 06fc9f6..3652043 100644 --- a/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/routing/HttpProtocolProcessor.java +++ b/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/routing/HttpProtocolProcessor.java @@ -1,5 +1,5 @@ /* - * Copyright © 2022 CUI-OpenSource-Software (info@cuioss.de) + * Copyright © 2026 CUI-OpenSource-Software (info@cuioss.de) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/routing/ProtocolProcessor.java b/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/routing/ProtocolProcessor.java index ab72984..4956b1a 100644 --- a/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/routing/ProtocolProcessor.java +++ b/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/routing/ProtocolProcessor.java @@ -1,5 +1,5 @@ /* - * Copyright © 2022 CUI-OpenSource-Software (info@cuioss.de) + * Copyright © 2026 CUI-OpenSource-Software (info@cuioss.de) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/routing/ProtocolProcessorRegistry.java b/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/routing/ProtocolProcessorRegistry.java index 343efb5..1c1be02 100644 --- a/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/routing/ProtocolProcessorRegistry.java +++ b/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/routing/ProtocolProcessorRegistry.java @@ -1,5 +1,5 @@ /* - * Copyright © 2022 CUI-OpenSource-Software (info@cuioss.de) + * Copyright © 2026 CUI-OpenSource-Software (info@cuioss.de) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/routing/RouteMatcher.java b/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/routing/RouteMatcher.java index d0d5968..f5b85e3 100644 --- a/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/routing/RouteMatcher.java +++ b/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/routing/RouteMatcher.java @@ -1,5 +1,5 @@ /* - * Copyright © 2022 CUI-OpenSource-Software (info@cuioss.de) + * Copyright © 2026 CUI-OpenSource-Software (info@cuioss.de) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/routing/RouteRuntime.java b/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/routing/RouteRuntime.java index e5f284f..2d086e6 100644 --- a/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/routing/RouteRuntime.java +++ b/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/routing/RouteRuntime.java @@ -1,5 +1,5 @@ /* - * Copyright © 2022 CUI-OpenSource-Software (info@cuioss.de) + * Copyright © 2026 CUI-OpenSource-Software (info@cuioss.de) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/routing/WebSocketProtocolProcessor.java b/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/routing/WebSocketProtocolProcessor.java index a548337..ffbae96 100644 --- a/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/routing/WebSocketProtocolProcessor.java +++ b/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/routing/WebSocketProtocolProcessor.java @@ -1,5 +1,5 @@ /* - * Copyright © 2022 CUI-OpenSource-Software (info@cuioss.de) + * Copyright © 2026 CUI-OpenSource-Software (info@cuioss.de) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/routing/package-info.java b/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/routing/package-info.java index e8ba65c..606c3f1 100644 --- a/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/routing/package-info.java +++ b/api-sheriff/src/main/java/de/cuioss/sheriff/gateway/routing/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2022 CUI-OpenSource-Software (info@cuioss.de) + * Copyright © 2026 CUI-OpenSource-Software (info@cuioss.de) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/api-sheriff/src/test/java/de/cuioss/sheriff/gateway/arch/FrameworkAgnosticArchTest.java b/api-sheriff/src/test/java/de/cuioss/sheriff/gateway/arch/FrameworkAgnosticArchTest.java index 3124e46..1ec1ff4 100644 --- a/api-sheriff/src/test/java/de/cuioss/sheriff/gateway/arch/FrameworkAgnosticArchTest.java +++ b/api-sheriff/src/test/java/de/cuioss/sheriff/gateway/arch/FrameworkAgnosticArchTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2022 CUI-OpenSource-Software (info@cuioss.de) + * Copyright © 2026 CUI-OpenSource-Software (info@cuioss.de) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/api-sheriff/src/test/java/de/cuioss/sheriff/gateway/asset/AssetResponseEnvelopeTest.java b/api-sheriff/src/test/java/de/cuioss/sheriff/gateway/asset/AssetResponseEnvelopeTest.java index ea82271..41773af 100644 --- a/api-sheriff/src/test/java/de/cuioss/sheriff/gateway/asset/AssetResponseEnvelopeTest.java +++ b/api-sheriff/src/test/java/de/cuioss/sheriff/gateway/asset/AssetResponseEnvelopeTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2022 CUI-OpenSource-Software (info@cuioss.de) + * Copyright © 2026 CUI-OpenSource-Software (info@cuioss.de) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -149,7 +149,7 @@ void shouldStripSetCookie() { "app.js", AccessLevel.PUBLIC, sourceHeaders); assertAll( - () -> assertFalse(governed.keySet().stream().anyMatch(k -> "Set-Cookie".equalsIgnoreCase(k)), + () -> assertFalse(governed.keySet().stream().anyMatch("Set-Cookie"::equalsIgnoreCase), "an asset action must never establish a session"), () -> assertEquals("kept", governed.get("X-Custom"), "unrelated source headers pass through")); diff --git a/api-sheriff/src/test/java/de/cuioss/sheriff/gateway/asset/AssetSourceServedTest.java b/api-sheriff/src/test/java/de/cuioss/sheriff/gateway/asset/AssetSourceServedTest.java index 29d1d20..6135ed3 100644 --- a/api-sheriff/src/test/java/de/cuioss/sheriff/gateway/asset/AssetSourceServedTest.java +++ b/api-sheriff/src/test/java/de/cuioss/sheriff/gateway/asset/AssetSourceServedTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2022 CUI-OpenSource-Software (info@cuioss.de) + * Copyright © 2026 CUI-OpenSource-Software (info@cuioss.de) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/api-sheriff/src/test/java/de/cuioss/sheriff/gateway/asset/DirectoryAssetSourceTest.java b/api-sheriff/src/test/java/de/cuioss/sheriff/gateway/asset/DirectoryAssetSourceTest.java index 99f3ad5..bc78df6 100644 --- a/api-sheriff/src/test/java/de/cuioss/sheriff/gateway/asset/DirectoryAssetSourceTest.java +++ b/api-sheriff/src/test/java/de/cuioss/sheriff/gateway/asset/DirectoryAssetSourceTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2022 CUI-OpenSource-Software (info@cuioss.de) + * Copyright © 2026 CUI-OpenSource-Software (info@cuioss.de) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -19,12 +19,14 @@ import static org.junit.jupiter.api.Assertions.assertArrayEquals; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertNotEquals; +import static org.junit.jupiter.api.Assertions.assertThrows; import static org.junit.jupiter.api.Assumptions.assumeTrue; import java.io.IOException; import java.nio.charset.StandardCharsets; import java.nio.file.Files; import java.nio.file.Path; +import java.util.stream.Stream; import de.cuioss.sheriff.gateway.config.model.AccessLevel; @@ -126,6 +128,56 @@ void shouldDenySymlinkEscapingRoot() { () -> assertEquals(0, served.body().length, "no byte of the symlink target is served")); } + @Test + @DisplayName("Should deny an in-root entry whose real path cannot be resolved (fails closed)") + void shouldDenyUnresolvableRealPath() throws Exception { + Path procFd = Path.of("/proc/self/fd"); + assumeTrue(Files.isDirectory(procFd), "requires the Linux /proc filesystem to stage the entry"); + Path vanishing = Files.write(tempDir.resolve("vanishing.bin"), INDEX_BODY); + try (var _ = Files.newInputStream(vanishing)) { + // A held descriptor of a deleted file still stats as a regular file through its /proc magic + // link, but its real path no longer resolves — the deterministic stand-in for the TOCTOU + // removal the real-path check must survive. + Files.delete(vanishing); + Path magicLink = deletedDescriptorLink(procFd, vanishing); + assumeTrue(magicLink != null, "no /proc/self/fd entry resolved to the deleted file"); + Path link = root.resolve("unresolvable.html"); + try { + Files.createSymbolicLink(link, magicLink); + } catch (IOException | UnsupportedOperationException unsupported) { + assumeTrue(false, "symbolic links are not supported/permitted in this environment: " + + unsupported.getMessage()); + } + assumeTrue(Files.isRegularFile(link), "the staged entry must still stat as a regular file"); + assertThrows(IOException.class, link::toRealPath, + "the staged entry must fail real-path resolution for this test to exercise the " + + "fail-closed branch"); + + AssetSource.Served served = publicSource().serve(HttpMethod.GET, "unresolvable.html"); + + assertAll( + () -> assertEquals(NOT_FOUND, served.status(), + "an entry whose real path cannot be resolved must be denied"), + () -> assertEquals(0, served.body().length, "no byte is served for an unresolvable entry")); + } + } + + /** + * Locates the {@code /proc/self/fd} magic link that still refers to the just-deleted + * {@code deleted} file (the kernel renders such a target as {@code (deleted)}). + */ + private static Path deletedDescriptorLink(Path procFd, Path deleted) throws IOException { + try (Stream entries = Files.list(procFd)) { + return entries.filter(entry -> { + try { + return Files.readSymbolicLink(entry).toString().startsWith(deleted.toString()); + } catch (IOException | UnsupportedOperationException _) { + return false; + } + }).findFirst().orElse(null); + } + } + @Test @DisplayName("Should return 404 for an in-root file that does not exist") void shouldReturnNotFoundForMissingFile() { diff --git a/api-sheriff/src/test/java/de/cuioss/sheriff/gateway/asset/PathConfinementTest.java b/api-sheriff/src/test/java/de/cuioss/sheriff/gateway/asset/PathConfinementTest.java index 4d49c51..49d2812 100644 --- a/api-sheriff/src/test/java/de/cuioss/sheriff/gateway/asset/PathConfinementTest.java +++ b/api-sheriff/src/test/java/de/cuioss/sheriff/gateway/asset/PathConfinementTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2022 CUI-OpenSource-Software (info@cuioss.de) + * Copyright © 2026 CUI-OpenSource-Software (info@cuioss.de) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/api-sheriff/src/test/java/de/cuioss/sheriff/gateway/asset/UpstreamAssetSourceHttpFetcherTest.java b/api-sheriff/src/test/java/de/cuioss/sheriff/gateway/asset/UpstreamAssetSourceHttpFetcherTest.java index 8abe9e0..ac5b5f3 100644 --- a/api-sheriff/src/test/java/de/cuioss/sheriff/gateway/asset/UpstreamAssetSourceHttpFetcherTest.java +++ b/api-sheriff/src/test/java/de/cuioss/sheriff/gateway/asset/UpstreamAssetSourceHttpFetcherTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2022 CUI-OpenSource-Software (info@cuioss.de) + * Copyright © 2026 CUI-OpenSource-Software (info@cuioss.de) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/api-sheriff/src/test/java/de/cuioss/sheriff/gateway/asset/UpstreamAssetSourceTest.java b/api-sheriff/src/test/java/de/cuioss/sheriff/gateway/asset/UpstreamAssetSourceTest.java index cb280b2..5e468fc 100644 --- a/api-sheriff/src/test/java/de/cuioss/sheriff/gateway/asset/UpstreamAssetSourceTest.java +++ b/api-sheriff/src/test/java/de/cuioss/sheriff/gateway/asset/UpstreamAssetSourceTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2022 CUI-OpenSource-Software (info@cuioss.de) + * Copyright © 2026 CUI-OpenSource-Software (info@cuioss.de) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -113,7 +113,7 @@ void shouldStripUpstreamSetCookie() { AssetSource.Served served = source(AccessLevel.PUBLIC, fetcher).serve(HttpMethod.GET, "app.js"); assertAll( - () -> assertFalse(served.headers().keySet().stream().anyMatch(k -> "Set-Cookie".equalsIgnoreCase(k)), + () -> assertFalse(served.headers().keySet().stream().anyMatch("Set-Cookie"::equalsIgnoreCase), "an upstream Set-Cookie must never reach the client"), () -> assertEquals("yes", served.headers().get("X-Keep"))); } diff --git a/api-sheriff/src/test/java/de/cuioss/sheriff/gateway/auth/AuthenticationStageTest.java b/api-sheriff/src/test/java/de/cuioss/sheriff/gateway/auth/AuthenticationStageTest.java index fcf5279..2712f14 100644 --- a/api-sheriff/src/test/java/de/cuioss/sheriff/gateway/auth/AuthenticationStageTest.java +++ b/api-sheriff/src/test/java/de/cuioss/sheriff/gateway/auth/AuthenticationStageTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2022 CUI-OpenSource-Software (info@cuioss.de) + * Copyright © 2026 CUI-OpenSource-Software (info@cuioss.de) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/api-sheriff/src/test/java/de/cuioss/sheriff/gateway/auth/JwksTrustProfileResolverTest.java b/api-sheriff/src/test/java/de/cuioss/sheriff/gateway/auth/JwksTrustProfileResolverTest.java index 8c62728..ee0d4ce 100644 --- a/api-sheriff/src/test/java/de/cuioss/sheriff/gateway/auth/JwksTrustProfileResolverTest.java +++ b/api-sheriff/src/test/java/de/cuioss/sheriff/gateway/auth/JwksTrustProfileResolverTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2022 CUI-OpenSource-Software (info@cuioss.de) + * Copyright © 2026 CUI-OpenSource-Software (info@cuioss.de) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/api-sheriff/src/test/java/de/cuioss/sheriff/gateway/auth/TestTlsConfigurationRegistry.java b/api-sheriff/src/test/java/de/cuioss/sheriff/gateway/auth/TestTlsConfigurationRegistry.java index 77b6eec..017c895 100644 --- a/api-sheriff/src/test/java/de/cuioss/sheriff/gateway/auth/TestTlsConfigurationRegistry.java +++ b/api-sheriff/src/test/java/de/cuioss/sheriff/gateway/auth/TestTlsConfigurationRegistry.java @@ -1,5 +1,5 @@ /* - * Copyright © 2022 CUI-OpenSource-Software (info@cuioss.de) + * Copyright © 2026 CUI-OpenSource-Software (info@cuioss.de) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/api-sheriff/src/test/java/de/cuioss/sheriff/gateway/auth/TokenValidatorProducerTest.java b/api-sheriff/src/test/java/de/cuioss/sheriff/gateway/auth/TokenValidatorProducerTest.java index 0bd25f1..f44fa22 100644 --- a/api-sheriff/src/test/java/de/cuioss/sheriff/gateway/auth/TokenValidatorProducerTest.java +++ b/api-sheriff/src/test/java/de/cuioss/sheriff/gateway/auth/TokenValidatorProducerTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2022 CUI-OpenSource-Software (info@cuioss.de) + * Copyright © 2026 CUI-OpenSource-Software (info@cuioss.de) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -40,6 +40,8 @@ import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Nested; import org.junit.jupiter.api.Test; +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.ValueSource; @DisplayName("TokenValidatorProducer — builds the shared gateway validator from token_validation") class TokenValidatorProducerTest { @@ -112,48 +114,20 @@ void failsWhenIssuerHasNoJwks() { assertEquals(EventType.CONFIG_INVALID, thrown.getEventType()); } - @Test - @DisplayName("fails config-invalid when an http jwks source declares no url") - void failsWhenHttpJwksHasNoUrl() { - // Arrange - TokenValidatorProducer producer = producerFor(IssuerConfig.builder() - .name("primary") - .issuer(ISSUER) - .jwks(Optional.of(IssuerConfig.Jwks.builder().source("http").build())) - .build()); - - // Act - GatewayException thrown = assertThrows(GatewayException.class, producer::gatewayTokenValidator); - - // Assert - assertEquals(EventType.CONFIG_INVALID, thrown.getEventType()); - } - - @Test - @DisplayName("fails config-invalid when a file jwks source declares no file path") - void failsWhenFileJwksHasNoFile() { - // Arrange - TokenValidatorProducer producer = producerFor(IssuerConfig.builder() - .name("primary") - .issuer(ISSUER) - .jwks(Optional.of(IssuerConfig.Jwks.builder().source("file").build())) - .build()); - - // Act - GatewayException thrown = assertThrows(GatewayException.class, producer::gatewayTokenValidator); - - // Assert - assertEquals(EventType.CONFIG_INVALID, thrown.getEventType()); - } - - @Test - @DisplayName("fails config-invalid for an unsupported jwks source") - void failsForUnsupportedJwksSource() { + /** + * Covers the three unusable jwks-source shapes that must all fail config-invalid: + * an {@code http} source without a url, a {@code file} source without a file path, + * and a source that is not supported at all. + */ + @ParameterizedTest(name = "jwks source ''{0}''") + @ValueSource(strings = {"http", "file", "ldap"}) + @DisplayName("fails config-invalid when a jwks source is incomplete or unsupported") + void failsForUnusableJwksSource(String source) { // Arrange TokenValidatorProducer producer = producerFor(IssuerConfig.builder() .name("primary") .issuer(ISSUER) - .jwks(Optional.of(IssuerConfig.Jwks.builder().source("ldap").build())) + .jwks(Optional.of(IssuerConfig.Jwks.builder().source(source).build())) .build()); // Act @@ -371,8 +345,8 @@ void unresolvableProfileFailsTheProducer() { .build()); // Act - GatewayException thrown = assertThrows(GatewayException.class, - () -> producerFor(issuer, TestTlsConfigurationRegistry.empty()).gatewayTokenValidator()); + TokenValidatorProducer producer = producerFor(issuer, TestTlsConfigurationRegistry.empty()); + GatewayException thrown = assertThrows(GatewayException.class, producer::gatewayTokenValidator); // Assert — the failure surfaces at validator assembly, which boot forces, so the // gateway refuses to start instead of silently validating against default trust diff --git a/api-sheriff/src/test/java/de/cuioss/sheriff/gateway/config/RouteTableBuilderTest.java b/api-sheriff/src/test/java/de/cuioss/sheriff/gateway/config/RouteTableBuilderTest.java index 65c0b5b..b97dd79 100644 --- a/api-sheriff/src/test/java/de/cuioss/sheriff/gateway/config/RouteTableBuilderTest.java +++ b/api-sheriff/src/test/java/de/cuioss/sheriff/gateway/config/RouteTableBuilderTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2022 CUI-OpenSource-Software (info@cuioss.de) + * Copyright © 2026 CUI-OpenSource-Software (info@cuioss.de) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/api-sheriff/src/test/java/de/cuioss/sheriff/gateway/config/load/ConfigLoaderTest.java b/api-sheriff/src/test/java/de/cuioss/sheriff/gateway/config/load/ConfigLoaderTest.java index b4eb70f..7e624be 100644 --- a/api-sheriff/src/test/java/de/cuioss/sheriff/gateway/config/load/ConfigLoaderTest.java +++ b/api-sheriff/src/test/java/de/cuioss/sheriff/gateway/config/load/ConfigLoaderTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2022 CUI-OpenSource-Software (info@cuioss.de) + * Copyright © 2026 CUI-OpenSource-Software (info@cuioss.de) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -489,6 +489,18 @@ void substitutedScalarIsSchemaTypeChecked() throws Exception { "a defaulted ${VAR} on an integer field must coerce to an integer and satisfy the schema"); } + @Test + void keepsAnAllDigitSubstitutionTooLargeForALongAsText() throws Exception { + copyFixtureAs("/config/valid/gateway.yaml", "gateway.yaml"); + String tooLargeForALong = "9".repeat(20); + + ConfigLoader.LoadedConfig loaded = loader(Map.of("OIDC_CLIENT_SECRET", tooLargeForALong)).load(); + + assertEquals(Optional.of(tooLargeForALong), loaded.gateway().oidc().orElseThrow().clientSecret(), + "an all-digit substitution that overflows a long must fall back to a text node rather than " + + "propagate the parse failure"); + } + @Test void rejectsLiteralSecretValue() throws Exception { writeConfig("gateway.yaml", """ diff --git a/api-sheriff/src/test/java/de/cuioss/sheriff/gateway/config/load/EnvSecretResolverTest.java b/api-sheriff/src/test/java/de/cuioss/sheriff/gateway/config/load/EnvSecretResolverTest.java index 3434d5c..10ff913 100644 --- a/api-sheriff/src/test/java/de/cuioss/sheriff/gateway/config/load/EnvSecretResolverTest.java +++ b/api-sheriff/src/test/java/de/cuioss/sheriff/gateway/config/load/EnvSecretResolverTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2022 CUI-OpenSource-Software (info@cuioss.de) + * Copyright © 2026 CUI-OpenSource-Software (info@cuioss.de) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/api-sheriff/src/test/java/de/cuioss/sheriff/gateway/config/model/ConfigModelContractTest.java b/api-sheriff/src/test/java/de/cuioss/sheriff/gateway/config/model/ConfigModelContractTest.java index 4691872..b56f128 100644 --- a/api-sheriff/src/test/java/de/cuioss/sheriff/gateway/config/model/ConfigModelContractTest.java +++ b/api-sheriff/src/test/java/de/cuioss/sheriff/gateway/config/model/ConfigModelContractTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2022 CUI-OpenSource-Software (info@cuioss.de) + * Copyright © 2026 CUI-OpenSource-Software (info@cuioss.de) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -530,7 +530,8 @@ void listComponentIsDecoupledFromTheSource() { @Test void listComponentIsUnmodifiable() { GatewayConfig cfg = GatewayConfig.builder().version(1).allowedMethods(List.of(HttpMethod.GET)).build(); - assertThrows(UnsupportedOperationException.class, () -> cfg.allowedMethods().add(HttpMethod.PUT)); + List methods = cfg.allowedMethods(); + assertThrows(UnsupportedOperationException.class, () -> methods.add(HttpMethod.PUT)); } @Test @@ -541,7 +542,9 @@ void anchorsMapIsDecoupledAndUnmodifiable() { source.put("bff", anchorConfig()); assertEquals(Map.of("api", anchorConfig()), cfg.anchors(), "mutating the source map after construction must not affect the record"); - assertThrows(UnsupportedOperationException.class, () -> cfg.anchors().put("extra", anchorConfig())); + Map anchors = cfg.anchors(); + AnchorConfig extra = anchorConfig(); + assertThrows(UnsupportedOperationException.class, () -> anchors.put("extra", extra)); } @Test @@ -551,7 +554,8 @@ void mapComponentIsDecoupledAndUnmodifiable() { ForwardConfig cfg = ForwardConfig.builder().setHeaders(source).build(); source.put("X-Extra", "leak"); assertEquals(Map.of("X-Gateway", "sheriff"), cfg.setHeaders()); - assertThrows(UnsupportedOperationException.class, () -> cfg.setHeaders().put("X-New", "v")); + Map headers = cfg.setHeaders(); + assertThrows(UnsupportedOperationException.class, () -> headers.put("X-New", "v")); } @Test @@ -574,12 +578,17 @@ class MandatoryFields { @Test void endpointConfigRequiresIdAndBaseUrl() { - assertThrows(NullPointerException.class, - () -> new EndpointConfig(null, true, "url", Optional.empty(), Optional.of(auth()), List.of(), - Optional.empty(), List.of())); - assertThrows(NullPointerException.class, - () -> new EndpointConfig("id", true, null, Optional.empty(), Optional.of(auth()), List.of(), - Optional.empty(), List.of())); + assertThrows(NullPointerException.class, () -> endpointConfigWith(null, "url")); + assertThrows(NullPointerException.class, () -> endpointConfigWith("id", null)); + } + + /** + * Builds an otherwise-valid {@link EndpointConfig} so a mandatory-field test can vary + * exactly one component, keeping each {@code assertThrows} lambda to a single invocation. + */ + private EndpointConfig endpointConfigWith(String id, String baseUrl) { + return new EndpointConfig(id, true, baseUrl, Optional.empty(), Optional.of(auth()), List.of(), + Optional.empty(), List.of()); } @Test @@ -644,35 +653,48 @@ void headerMatcherRequiresName() { @Test void routeConfigRequiresIdAndMatch() { MatchConfig match = matchConfig(); - assertThrows(NullPointerException.class, () -> new RouteConfig(null, Optional.empty(), Optional.empty(), - match, Optional.empty(), Optional.empty(), Optional.empty(), Optional.empty(), Optional.empty(), - Optional.empty(), Optional.empty())); - assertThrows(NullPointerException.class, () -> new RouteConfig("id", Optional.empty(), Optional.empty(), - null, Optional.empty(), Optional.empty(), Optional.empty(), Optional.empty(), Optional.empty(), - Optional.empty(), Optional.empty())); + assertThrows(NullPointerException.class, () -> routeConfigWith(null, match)); + assertThrows(NullPointerException.class, () -> routeConfigWith("id", null)); + } + + /** + * Builds an otherwise-valid {@link RouteConfig} so a mandatory-field test can vary + * exactly one component, keeping each {@code assertThrows} lambda to a single invocation. + */ + private RouteConfig routeConfigWith(String id, MatchConfig match) { + return new RouteConfig(id, Optional.empty(), Optional.empty(), match, Optional.empty(), Optional.empty(), + Optional.empty(), Optional.empty(), Optional.empty(), Optional.empty(), Optional.empty()); } @Test void resolvedRouteRequiresIdMatchAuthAndExactlyOneTerminalAction() { - assertThrows(NullPointerException.class, () -> new ResolvedRoute(null, Protocol.HTTP, Optional.empty(), - matchConfig(), auth(), List.of(), Optional.empty(), Optional.empty(), true, true, - Optional.of(resolvedUpstream()), Optional.empty(), null, null, null)); - assertThrows(NullPointerException.class, () -> new ResolvedRoute("id", Protocol.HTTP, Optional.empty(), null, - auth(), List.of(), Optional.empty(), Optional.empty(), true, true, Optional.of(resolvedUpstream()), - Optional.empty(), null, null, null)); - assertThrows(NullPointerException.class, () -> new ResolvedRoute("id", Protocol.HTTP, Optional.empty(), - matchConfig(), null, List.of(), Optional.empty(), Optional.empty(), true, true, - Optional.of(resolvedUpstream()), Optional.empty(), null, null, null)); - assertThrows(IllegalArgumentException.class, () -> new ResolvedRoute("id", Protocol.HTTP, Optional.empty(), - matchConfig(), auth(), List.of(), Optional.empty(), Optional.empty(), true, true, Optional.empty(), - Optional.empty(), null, null, null), + MatchConfig match = matchConfig(); + AuthConfig auth = auth(); + Optional upstream = Optional.of(resolvedUpstream()); + Optional noUpstream = Optional.empty(); + Optional noAsset = Optional.empty(); + Optional asset = Optional.of(ResolvedAsset.directory("/srv", AccessLevel.PUBLIC)); + + assertThrows(NullPointerException.class, () -> resolvedRouteWith(null, match, auth, upstream, noAsset)); + assertThrows(NullPointerException.class, () -> resolvedRouteWith("id", null, auth, upstream, noAsset)); + assertThrows(NullPointerException.class, () -> resolvedRouteWith("id", match, null, upstream, noAsset)); + assertThrows(IllegalArgumentException.class, + () -> resolvedRouteWith("id", match, auth, noUpstream, noAsset), "a route with neither an upstream nor an asset terminal action is rejected (XOR)"); - assertThrows(IllegalArgumentException.class, () -> new ResolvedRoute("id", Protocol.HTTP, Optional.empty(), - matchConfig(), auth(), List.of(), Optional.empty(), Optional.empty(), true, true, - Optional.of(resolvedUpstream()), Optional.of(ResolvedAsset.directory("/srv", AccessLevel.PUBLIC)), - null, null, null), + assertThrows(IllegalArgumentException.class, + () -> resolvedRouteWith("id", match, auth, upstream, asset), "a route with both an upstream and an asset terminal action is rejected (XOR)"); } + + /** + * Builds an otherwise-valid {@link ResolvedRoute} so a mandatory-field or XOR test can vary + * exactly one component, keeping each {@code assertThrows} lambda to a single invocation. + */ + private ResolvedRoute resolvedRouteWith(String id, MatchConfig match, AuthConfig auth, + Optional upstream, Optional asset) { + return new ResolvedRoute(id, Protocol.HTTP, Optional.empty(), match, auth, List.of(), Optional.empty(), + Optional.empty(), true, true, upstream, asset, null, null, null); + } } // --- New fields introduced for this deliverable ------------------------ diff --git a/api-sheriff/src/test/java/de/cuioss/sheriff/gateway/config/topology/TopologyResolverTest.java b/api-sheriff/src/test/java/de/cuioss/sheriff/gateway/config/topology/TopologyResolverTest.java index 995ebec..f9f06a4 100644 --- a/api-sheriff/src/test/java/de/cuioss/sheriff/gateway/config/topology/TopologyResolverTest.java +++ b/api-sheriff/src/test/java/de/cuioss/sheriff/gateway/config/topology/TopologyResolverTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2022 CUI-OpenSource-Software (info@cuioss.de) + * Copyright © 2026 CUI-OpenSource-Software (info@cuioss.de) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/api-sheriff/src/test/java/de/cuioss/sheriff/gateway/config/validation/ConfigValidatorTest.java b/api-sheriff/src/test/java/de/cuioss/sheriff/gateway/config/validation/ConfigValidatorTest.java index f3c24e5..b832961 100644 --- a/api-sheriff/src/test/java/de/cuioss/sheriff/gateway/config/validation/ConfigValidatorTest.java +++ b/api-sheriff/src/test/java/de/cuioss/sheriff/gateway/config/validation/ConfigValidatorTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2022 CUI-OpenSource-Software (info@cuioss.de) + * Copyright © 2026 CUI-OpenSource-Software (info@cuioss.de) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -24,6 +24,7 @@ import java.util.Locale; import java.util.Map; import java.util.Optional; +import java.util.stream.Stream; import de.cuioss.sheriff.gateway.config.RouteTableBuilder; @@ -61,7 +62,9 @@ import org.junit.jupiter.api.Nested; import org.junit.jupiter.api.Test; import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.Arguments; import org.junit.jupiter.params.provider.EnumSource; +import org.junit.jupiter.params.provider.MethodSource; import org.junit.jupiter.params.provider.ValueSource; /** @@ -485,86 +488,49 @@ void shouldAcceptMillisecondPrecisionTimeout() { () -> "expected no violations for a millisecond-precision timeout, got: " + errors); } - @Test - @DisplayName("Should reject a single full-space IPv4 CIDR in forwarded.trusted_proxies") - void shouldRejectTrustAllCidr() { - GatewayConfig gateway = validGateway() - .forwarded(Optional.of(ForwardedConfig.builder().trustedProxies(List.of("0.0.0.0/0")).build())) - .build(); - EndpointConfig endpoint = endpoint("orders", "ORDERS", List.of(), route("r", HttpMethod.GET)); - - List errors = validator.validate(gateway, List.of(endpoint), topologyWith("ORDERS")); - - assertHasError(errors, "/forwarded/trusted_proxies", "entire IPv4 address space"); - } - - @Test - @DisplayName("Should reject a single full-space IPv6 CIDR in forwarded.trusted_proxies") - void shouldRejectTrustAllIpv6Cidr() { - GatewayConfig gateway = validGateway() - .forwarded(Optional.of(ForwardedConfig.builder().trustedProxies(List.of("::/0")).build())) - .build(); - EndpointConfig endpoint = endpoint("orders", "ORDERS", List.of(), route("r", HttpMethod.GET)); - - List errors = validator.validate(gateway, List.of(endpoint), topologyWith("ORDERS")); - - assertHasError(errors, "/forwarded/trusted_proxies", "entire IPv6 address space"); + static Stream fullAddressSpaceTrustedProxies() { + return Stream.of( + Arguments.of("a single full-space IPv4 CIDR", List.of("0.0.0.0/0"), "entire IPv4 address space"), + Arguments.of("a single full-space IPv6 CIDR", List.of("::/0"), "entire IPv6 address space"), + Arguments.of("a complementary /1 IPv4 pair", List.of("0.0.0.0/1", "128.0.0.0/1"), + "entire IPv4 address space"), + Arguments.of("a complementary /1 IPv6 pair", List.of("::/1", "8000::/1"), + "entire IPv6 address space")); } - @Test - @DisplayName("Should reject a complementary /1 IPv4 pair that together cover the whole address space") - void shouldRejectComplementaryIpv4HalfPair() { + @ParameterizedTest(name = "{0}") + @MethodSource("fullAddressSpaceTrustedProxies") + @DisplayName("Should reject forwarded.trusted_proxies entries that cover the whole address space") + void shouldRejectFullAddressSpaceTrustedProxies(String label, List trustedProxies, + String expectedDetail) { GatewayConfig gateway = validGateway() - .forwarded(Optional.of(ForwardedConfig.builder() - .trustedProxies(List.of("0.0.0.0/1", "128.0.0.0/1")).build())) + .forwarded(Optional.of(ForwardedConfig.builder().trustedProxies(trustedProxies).build())) .build(); EndpointConfig endpoint = endpoint("orders", "ORDERS", List.of(), route("r", HttpMethod.GET)); List errors = validator.validate(gateway, List.of(endpoint), topologyWith("ORDERS")); - assertHasError(errors, "/forwarded/trusted_proxies", "entire IPv4 address space"); + assertHasError(errors, "/forwarded/trusted_proxies", expectedDetail); } - @Test - @DisplayName("Should reject a complementary /1 IPv6 pair that together cover the whole address space") - void shouldRejectComplementaryIpv6HalfPair() { - GatewayConfig gateway = validGateway() - .forwarded(Optional.of(ForwardedConfig.builder() - .trustedProxies(List.of("::/1", "8000::/1")).build())) - .build(); - EndpointConfig endpoint = endpoint("orders", "ORDERS", List.of(), route("r", HttpMethod.GET)); - - List errors = validator.validate(gateway, List.of(endpoint), topologyWith("ORDERS")); - - assertHasError(errors, "/forwarded/trusted_proxies", "entire IPv6 address space"); - } - - @Test + /** + * Each entry fails CIDR parsing at a different point: no slash at all, a numeric prefix + * length outside the address width, a prefix length that is not a number, and an address + * part that is not an IP literal. All four must be reported identically. + */ + @ParameterizedTest(name = "trusted_proxies entry \"{0}\" is rejected as malformed") + @ValueSource(strings = {"not-a-cidr", "10.0.0.0/33", "10.0.0.0/abc", "not-an-ip/24"}) @DisplayName("Should reject a malformed trusted_proxies CIDR entry with file/pointer context") - void shouldRejectMalformedCidr() { - GatewayConfig gateway = validGateway() - .forwarded(Optional.of(ForwardedConfig.builder() - .trustedProxies(List.of("not-a-cidr")).build())) - .build(); - EndpointConfig endpoint = endpoint("orders", "ORDERS", List.of(), route("r", HttpMethod.GET)); - - List errors = validator.validate(gateway, List.of(endpoint), topologyWith("ORDERS")); - - assertHasError(errors, "/forwarded/trusted_proxies", "malformed trusted_proxies CIDR: not-a-cidr"); - } - - @Test - @DisplayName("Should reject a trusted_proxies CIDR whose prefix length is out of range") - void shouldRejectOutOfRangePrefixLength() { + void shouldRejectMalformedCidr(String malformedCidr) { GatewayConfig gateway = validGateway() .forwarded(Optional.of(ForwardedConfig.builder() - .trustedProxies(List.of("10.0.0.0/33")).build())) + .trustedProxies(List.of(malformedCidr)).build())) .build(); EndpointConfig endpoint = endpoint("orders", "ORDERS", List.of(), route("r", HttpMethod.GET)); List errors = validator.validate(gateway, List.of(endpoint), topologyWith("ORDERS")); - assertHasError(errors, "/forwarded/trusted_proxies", "malformed trusted_proxies CIDR: 10.0.0.0/33"); + assertHasError(errors, "/forwarded/trusted_proxies", "malformed trusted_proxies CIDR: " + malformedCidr); } @Test @@ -1071,50 +1037,26 @@ void shouldRejectPublicAnchorForEveryAuthFloorValue(String require) { assertHasError(errors, "/anchors/open", "is access: public and must not declare an auth block"); } - @Test - @DisplayName("Rule authenticated→floor: Should reject an access: authenticated anchor declaring no auth floor at all") - void shouldRejectAuthenticatedAnchorWithNoAuthBlock() { - GatewayConfig gateway = gatewayWithAnchors(Map.of( - "secure", matrixAnchor("secure", "/secure", AnchorType.PROXY, AccessLevel.AUTHENTICATED, null))); - - List errors = validator.validate(gateway, List.of(), topologyWith()); - - assertHasError(errors, "/anchors/secure", "declares no non-'none' auth floor"); - } - - @Test - @DisplayName("Rule authenticated→floor: Should reject an access: authenticated anchor whose floor is 'none'") - void shouldRejectAuthenticatedAnchorWithNoneFloor() { - GatewayConfig gateway = gatewayWithAnchors(Map.of( - "secure", matrixAnchor("secure", "/secure", AnchorType.PROXY, AccessLevel.AUTHENTICATED, "none"))); - - List errors = validator.validate(gateway, List.of(), topologyWith()); - - assertHasError(errors, "/anchors/secure", "declares no non-'none' auth floor"); + static Stream authenticatedAnchorsWithoutBackedFloor() { + return Stream.of( + Arguments.of("no auth floor at all", null, "declares no non-'none' auth floor"), + Arguments.of("an explicit 'none' floor", "none", "declares no non-'none' auth floor"), + Arguments.of("a bearer floor with no token_validation issuer", "bearer", + "access: authenticated bearer floor requires token_validation with at least one issuer"), + Arguments.of("a session floor with no oidc block", "session", + "access: authenticated session floor requires an oidc block")); } - @Test - @DisplayName("Rule authenticated backing: Should reject an authenticated bearer floor with no token_validation issuer") - void shouldRejectAuthenticatedBearerFloorWithoutIssuer() { - GatewayConfig gateway = gatewayWithAnchors(Map.of( - "secure", matrixAnchor("secure", "/secure", AnchorType.PROXY, AccessLevel.AUTHENTICATED, "bearer"))); - - List errors = validator.validate(gateway, List.of(), topologyWith()); - - assertHasError(errors, "/anchors/secure", - "access: authenticated bearer floor requires token_validation with at least one issuer"); - } - - @Test - @DisplayName("Rule authenticated backing: Should reject an authenticated session floor with no oidc block") - void shouldRejectAuthenticatedSessionFloorWithoutOidc() { + @ParameterizedTest(name = "{0}") + @MethodSource("authenticatedAnchorsWithoutBackedFloor") + @DisplayName("Rules authenticated→floor and authenticated backing: Should reject an access: authenticated anchor without a backed auth floor") + void shouldRejectAuthenticatedAnchorWithoutBackedFloor(String label, String require, String expectedDetail) { GatewayConfig gateway = gatewayWithAnchors(Map.of( - "secure", matrixAnchor("secure", "/secure", AnchorType.PROXY, AccessLevel.AUTHENTICATED, "session"))); + "secure", matrixAnchor("secure", "/secure", AnchorType.PROXY, AccessLevel.AUTHENTICATED, require))); List errors = validator.validate(gateway, List.of(), topologyWith()); - assertHasError(errors, "/anchors/secure", - "access: authenticated session floor requires an oidc block"); + assertHasError(errors, "/anchors/secure", expectedDetail); } @Test diff --git a/api-sheriff/src/test/java/de/cuioss/sheriff/gateway/edge/DispatchStageTest.java b/api-sheriff/src/test/java/de/cuioss/sheriff/gateway/edge/DispatchStageTest.java index 88ee7a1..a4abde8 100644 --- a/api-sheriff/src/test/java/de/cuioss/sheriff/gateway/edge/DispatchStageTest.java +++ b/api-sheriff/src/test/java/de/cuioss/sheriff/gateway/edge/DispatchStageTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2022 CUI-OpenSource-Software (info@cuioss.de) + * Copyright © 2026 CUI-OpenSource-Software (info@cuioss.de) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -197,8 +197,9 @@ void retriesIdempotentWithoutBody() { }; // Act — the stream is never subscribed (failure before send), so retry is allowed + var guard = retryGuard(); GatewayException raised = assertThrows(GatewayException.class, - () -> stage.guardedDispatch(retryGuard(), gate, HttpMethod.GET, bytesSent::get, () -> false, + () -> stage.guardedDispatch(guard, gate, HttpMethod.GET, bytesSent::get, () -> false, failing)); // Assert — the safe idempotent+bodyless request was retried the full budget @@ -221,8 +222,9 @@ void neverRetriesPost() { }; // Act + var guard = retryGuard(); assertThrows(GatewayException.class, - () -> stage.guardedDispatch(retryGuard(), gate, HttpMethod.POST, bytesSent::get, () -> false, + () -> stage.guardedDispatch(guard, gate, HttpMethod.POST, bytesSent::get, () -> false, failing)); // Assert — a POST must never be re-sent, so the upstream is called exactly once @@ -245,8 +247,9 @@ void neverRetriesAfterBodyByte() { }; // Act + var guard = retryGuard(); assertThrows(GatewayException.class, - () -> stage.guardedDispatch(retryGuard(), gate, HttpMethod.PUT, bytesSent::get, () -> false, + () -> stage.guardedDispatch(guard, gate, HttpMethod.PUT, bytesSent::get, () -> false, failing)); // Assert — a streamed request cannot be replayed once a body byte has been sent @@ -271,8 +274,9 @@ void neverRetriesWhenBodyStreamAlreadySubscribed() { }; // Act — idempotent GET, zero bytes sent, but the body stream is already subscribed + var guard = retryGuard(); assertThrows(GatewayException.class, - () -> stage.guardedDispatch(retryGuard(), gate, HttpMethod.GET, bytesSent::get, () -> true, + () -> stage.guardedDispatch(guard, gate, HttpMethod.GET, bytesSent::get, () -> true, failing)); // Assert — reusing an already-subscribed one-shot body stream is refused, no re-send diff --git a/api-sheriff/src/test/java/de/cuioss/sheriff/gateway/edge/EdgeHardeningTest.java b/api-sheriff/src/test/java/de/cuioss/sheriff/gateway/edge/EdgeHardeningTest.java index 24cd3ba..f0b6c09 100644 --- a/api-sheriff/src/test/java/de/cuioss/sheriff/gateway/edge/EdgeHardeningTest.java +++ b/api-sheriff/src/test/java/de/cuioss/sheriff/gateway/edge/EdgeHardeningTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2022 CUI-OpenSource-Software (info@cuioss.de) + * Copyright © 2026 CUI-OpenSource-Software (info@cuioss.de) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/api-sheriff/src/test/java/de/cuioss/sheriff/gateway/edge/GatewayEdgePipelineTest.java b/api-sheriff/src/test/java/de/cuioss/sheriff/gateway/edge/GatewayEdgePipelineTest.java index 319b4f1..030d5f3 100644 --- a/api-sheriff/src/test/java/de/cuioss/sheriff/gateway/edge/GatewayEdgePipelineTest.java +++ b/api-sheriff/src/test/java/de/cuioss/sheriff/gateway/edge/GatewayEdgePipelineTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2022 CUI-OpenSource-Software (info@cuioss.de) + * Copyright © 2026 CUI-OpenSource-Software (info@cuioss.de) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -17,6 +17,7 @@ import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertNull; import static org.junit.jupiter.api.Assertions.assertTrue; import java.lang.annotation.Annotation; @@ -180,6 +181,19 @@ void rejectsDisallowedVerb() throws Exception { assertNotNull(response.headers().get("Allow"), "a 405 names the permitted verbs in the Allow header"); } + @Test + @DisplayName("rejects a verb outside the gateway's method model 405 before any stage runs") + void rejectsUnmodelledVerb() throws Exception { + // Act — TRACE is a valid HTTP verb the gateway deliberately does not model, so it is refused at + // the pipeline entry, before route selection ever runs + Response response = send(io.vertx.core.http.HttpMethod.TRACE, "/echo/orders", Map.of(), null); + + // Assert + assertEquals(405, response.status()); + assertNull(response.headers().get("X-Upstream-Echo"), + "an unmodelled verb must never reach the upstream"); + } + @Test @DisplayName("rejects a request breaching the baseline parameter-count cap 400") void rejectsExcessiveParameters() throws Exception { diff --git a/api-sheriff/src/test/java/de/cuioss/sheriff/gateway/edge/GatewayEdgeRouteTest.java b/api-sheriff/src/test/java/de/cuioss/sheriff/gateway/edge/GatewayEdgeRouteTest.java index 8f1dfb8..793bf9a 100644 --- a/api-sheriff/src/test/java/de/cuioss/sheriff/gateway/edge/GatewayEdgeRouteTest.java +++ b/api-sheriff/src/test/java/de/cuioss/sheriff/gateway/edge/GatewayEdgeRouteTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2022 CUI-OpenSource-Software (info@cuioss.de) + * Copyright © 2026 CUI-OpenSource-Software (info@cuioss.de) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/api-sheriff/src/test/java/de/cuioss/sheriff/gateway/edge/GrpcDispatchStageTest.java b/api-sheriff/src/test/java/de/cuioss/sheriff/gateway/edge/GrpcDispatchStageTest.java index 2a139ec..829dec9 100644 --- a/api-sheriff/src/test/java/de/cuioss/sheriff/gateway/edge/GrpcDispatchStageTest.java +++ b/api-sheriff/src/test/java/de/cuioss/sheriff/gateway/edge/GrpcDispatchStageTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2022 CUI-OpenSource-Software (info@cuioss.de) + * Copyright © 2026 CUI-OpenSource-Software (info@cuioss.de) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/api-sheriff/src/test/java/de/cuioss/sheriff/gateway/edge/GrpcStatusMapperTest.java b/api-sheriff/src/test/java/de/cuioss/sheriff/gateway/edge/GrpcStatusMapperTest.java index a3ba4ab..15f3b9f 100644 --- a/api-sheriff/src/test/java/de/cuioss/sheriff/gateway/edge/GrpcStatusMapperTest.java +++ b/api-sheriff/src/test/java/de/cuioss/sheriff/gateway/edge/GrpcStatusMapperTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2022 CUI-OpenSource-Software (info@cuioss.de) + * Copyright © 2026 CUI-OpenSource-Software (info@cuioss.de) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/api-sheriff/src/test/java/de/cuioss/sheriff/gateway/edge/ResponseStageTest.java b/api-sheriff/src/test/java/de/cuioss/sheriff/gateway/edge/ResponseStageTest.java index 92e664a..7a14322 100644 --- a/api-sheriff/src/test/java/de/cuioss/sheriff/gateway/edge/ResponseStageTest.java +++ b/api-sheriff/src/test/java/de/cuioss/sheriff/gateway/edge/ResponseStageTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2022 CUI-OpenSource-Software (info@cuioss.de) + * Copyright © 2026 CUI-OpenSource-Software (info@cuioss.de) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/api-sheriff/src/test/java/de/cuioss/sheriff/gateway/edge/RouteRuntimeAssemblerTest.java b/api-sheriff/src/test/java/de/cuioss/sheriff/gateway/edge/RouteRuntimeAssemblerTest.java index 24a04fc..1f151ad 100644 --- a/api-sheriff/src/test/java/de/cuioss/sheriff/gateway/edge/RouteRuntimeAssemblerTest.java +++ b/api-sheriff/src/test/java/de/cuioss/sheriff/gateway/edge/RouteRuntimeAssemblerTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2022 CUI-OpenSource-Software (info@cuioss.de) + * Copyright © 2026 CUI-OpenSource-Software (info@cuioss.de) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/api-sheriff/src/test/java/de/cuioss/sheriff/gateway/edge/StreamAwareRetryGateTest.java b/api-sheriff/src/test/java/de/cuioss/sheriff/gateway/edge/StreamAwareRetryGateTest.java index 3e036cb..0caa43b 100644 --- a/api-sheriff/src/test/java/de/cuioss/sheriff/gateway/edge/StreamAwareRetryGateTest.java +++ b/api-sheriff/src/test/java/de/cuioss/sheriff/gateway/edge/StreamAwareRetryGateTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2022 CUI-OpenSource-Software (info@cuioss.de) + * Copyright © 2026 CUI-OpenSource-Software (info@cuioss.de) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/api-sheriff/src/test/java/de/cuioss/sheriff/gateway/edge/UpstreamFailureMapperTest.java b/api-sheriff/src/test/java/de/cuioss/sheriff/gateway/edge/UpstreamFailureMapperTest.java index 32eb467..4b2b6a2 100644 --- a/api-sheriff/src/test/java/de/cuioss/sheriff/gateway/edge/UpstreamFailureMapperTest.java +++ b/api-sheriff/src/test/java/de/cuioss/sheriff/gateway/edge/UpstreamFailureMapperTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2022 CUI-OpenSource-Software (info@cuioss.de) + * Copyright © 2026 CUI-OpenSource-Software (info@cuioss.de) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/api-sheriff/src/test/java/de/cuioss/sheriff/gateway/edge/WebSocketRelayStageTest.java b/api-sheriff/src/test/java/de/cuioss/sheriff/gateway/edge/WebSocketRelayStageTest.java index 32ce44a..b2ca21e 100644 --- a/api-sheriff/src/test/java/de/cuioss/sheriff/gateway/edge/WebSocketRelayStageTest.java +++ b/api-sheriff/src/test/java/de/cuioss/sheriff/gateway/edge/WebSocketRelayStageTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2022 CUI-OpenSource-Software (info@cuioss.de) + * Copyright © 2026 CUI-OpenSource-Software (info@cuioss.de) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/api-sheriff/src/test/java/de/cuioss/sheriff/gateway/events/EventTypeTest.java b/api-sheriff/src/test/java/de/cuioss/sheriff/gateway/events/EventTypeTest.java index 6373351..ed2e281 100644 --- a/api-sheriff/src/test/java/de/cuioss/sheriff/gateway/events/EventTypeTest.java +++ b/api-sheriff/src/test/java/de/cuioss/sheriff/gateway/events/EventTypeTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2022 CUI-OpenSource-Software (info@cuioss.de) + * Copyright © 2026 CUI-OpenSource-Software (info@cuioss.de) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/api-sheriff/src/test/java/de/cuioss/sheriff/gateway/events/GatewayEventCounterTest.java b/api-sheriff/src/test/java/de/cuioss/sheriff/gateway/events/GatewayEventCounterTest.java index d10310e..167e199 100644 --- a/api-sheriff/src/test/java/de/cuioss/sheriff/gateway/events/GatewayEventCounterTest.java +++ b/api-sheriff/src/test/java/de/cuioss/sheriff/gateway/events/GatewayEventCounterTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2022 CUI-OpenSource-Software (info@cuioss.de) + * Copyright © 2026 CUI-OpenSource-Software (info@cuioss.de) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/api-sheriff/src/test/java/de/cuioss/sheriff/gateway/forward/ForwardPolicyStageTest.java b/api-sheriff/src/test/java/de/cuioss/sheriff/gateway/forward/ForwardPolicyStageTest.java index ed15b7f..4900a9b 100644 --- a/api-sheriff/src/test/java/de/cuioss/sheriff/gateway/forward/ForwardPolicyStageTest.java +++ b/api-sheriff/src/test/java/de/cuioss/sheriff/gateway/forward/ForwardPolicyStageTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2022 CUI-OpenSource-Software (info@cuioss.de) + * Copyright © 2026 CUI-OpenSource-Software (info@cuioss.de) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/api-sheriff/src/test/java/de/cuioss/sheriff/gateway/forward/TcpPeerGateTest.java b/api-sheriff/src/test/java/de/cuioss/sheriff/gateway/forward/TcpPeerGateTest.java index 4ae3f7e..e50540c 100644 --- a/api-sheriff/src/test/java/de/cuioss/sheriff/gateway/forward/TcpPeerGateTest.java +++ b/api-sheriff/src/test/java/de/cuioss/sheriff/gateway/forward/TcpPeerGateTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2022 CUI-OpenSource-Software (info@cuioss.de) + * Copyright © 2026 CUI-OpenSource-Software (info@cuioss.de) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/api-sheriff/src/test/java/de/cuioss/sheriff/gateway/pipeline/BasicChecksStageTest.java b/api-sheriff/src/test/java/de/cuioss/sheriff/gateway/pipeline/BasicChecksStageTest.java index e83cecb..e7c4106 100644 Binary files a/api-sheriff/src/test/java/de/cuioss/sheriff/gateway/pipeline/BasicChecksStageTest.java and b/api-sheriff/src/test/java/de/cuioss/sheriff/gateway/pipeline/BasicChecksStageTest.java differ diff --git a/api-sheriff/src/test/java/de/cuioss/sheriff/gateway/pipeline/CanonicalPathGuardTest.java b/api-sheriff/src/test/java/de/cuioss/sheriff/gateway/pipeline/CanonicalPathGuardTest.java index 0e8c833..6d7c988 100644 --- a/api-sheriff/src/test/java/de/cuioss/sheriff/gateway/pipeline/CanonicalPathGuardTest.java +++ b/api-sheriff/src/test/java/de/cuioss/sheriff/gateway/pipeline/CanonicalPathGuardTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2022 CUI-OpenSource-Software (info@cuioss.de) + * Copyright © 2026 CUI-OpenSource-Software (info@cuioss.de) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/api-sheriff/src/test/java/de/cuioss/sheriff/gateway/pipeline/FramingGateTest.java b/api-sheriff/src/test/java/de/cuioss/sheriff/gateway/pipeline/FramingGateTest.java index e811d39..5c31a3d 100644 --- a/api-sheriff/src/test/java/de/cuioss/sheriff/gateway/pipeline/FramingGateTest.java +++ b/api-sheriff/src/test/java/de/cuioss/sheriff/gateway/pipeline/FramingGateTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2022 CUI-OpenSource-Software (info@cuioss.de) + * Copyright © 2026 CUI-OpenSource-Software (info@cuioss.de) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/api-sheriff/src/test/java/de/cuioss/sheriff/gateway/pipeline/OriginValidationStageTest.java b/api-sheriff/src/test/java/de/cuioss/sheriff/gateway/pipeline/OriginValidationStageTest.java index 66f590d..d560875 100644 --- a/api-sheriff/src/test/java/de/cuioss/sheriff/gateway/pipeline/OriginValidationStageTest.java +++ b/api-sheriff/src/test/java/de/cuioss/sheriff/gateway/pipeline/OriginValidationStageTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2022 CUI-OpenSource-Software (info@cuioss.de) + * Copyright © 2026 CUI-OpenSource-Software (info@cuioss.de) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/api-sheriff/src/test/java/de/cuioss/sheriff/gateway/pipeline/RouteSelectionStageTest.java b/api-sheriff/src/test/java/de/cuioss/sheriff/gateway/pipeline/RouteSelectionStageTest.java index 5fcdf8a..98183ff 100644 --- a/api-sheriff/src/test/java/de/cuioss/sheriff/gateway/pipeline/RouteSelectionStageTest.java +++ b/api-sheriff/src/test/java/de/cuioss/sheriff/gateway/pipeline/RouteSelectionStageTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2022 CUI-OpenSource-Software (info@cuioss.de) + * Copyright © 2026 CUI-OpenSource-Software (info@cuioss.de) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/api-sheriff/src/test/java/de/cuioss/sheriff/gateway/pipeline/SecurityHeadersStageTest.java b/api-sheriff/src/test/java/de/cuioss/sheriff/gateway/pipeline/SecurityHeadersStageTest.java index d3e7a8d..676f1b1 100644 --- a/api-sheriff/src/test/java/de/cuioss/sheriff/gateway/pipeline/SecurityHeadersStageTest.java +++ b/api-sheriff/src/test/java/de/cuioss/sheriff/gateway/pipeline/SecurityHeadersStageTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2022 CUI-OpenSource-Software (info@cuioss.de) + * Copyright © 2026 CUI-OpenSource-Software (info@cuioss.de) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/api-sheriff/src/test/java/de/cuioss/sheriff/gateway/pipeline/ThoroughChecksStageTest.java b/api-sheriff/src/test/java/de/cuioss/sheriff/gateway/pipeline/ThoroughChecksStageTest.java index be201e7..bdb2a1b 100644 --- a/api-sheriff/src/test/java/de/cuioss/sheriff/gateway/pipeline/ThoroughChecksStageTest.java +++ b/api-sheriff/src/test/java/de/cuioss/sheriff/gateway/pipeline/ThoroughChecksStageTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2022 CUI-OpenSource-Software (info@cuioss.de) + * Copyright © 2026 CUI-OpenSource-Software (info@cuioss.de) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -135,8 +135,9 @@ void rejectsPathOutsideAllowedPaths() { PipelineRequest request = requestFor("/api/other", routeWithConfig(Optional.empty())); // Act + List allowedPaths = List.of("/api/orders"); GatewayException thrown = assertThrows(GatewayException.class, - () -> stage.process(request, List.of("/api/orders"))); + () -> stage.process(request, allowedPaths)); // Assert assertEquals(EventType.PATH_NOT_ALLOWED, thrown.getEventType()); @@ -159,8 +160,9 @@ void rejectsWildcardSegmentCountMismatch() { PipelineRequest request = requestFor("/api/42", routeWithConfig(Optional.empty())); // Act + List allowedPaths = List.of("/api/{id}/detail"); GatewayException thrown = assertThrows(GatewayException.class, - () -> stage.process(request, List.of("/api/{id}/detail"))); + () -> stage.process(request, allowedPaths)); // Assert assertEquals(EventType.PATH_NOT_ALLOWED, thrown.getEventType()); diff --git a/api-sheriff/src/test/java/de/cuioss/sheriff/gateway/pipeline/VerbGateStageTest.java b/api-sheriff/src/test/java/de/cuioss/sheriff/gateway/pipeline/VerbGateStageTest.java index 6986a26..2ccb1cb 100644 --- a/api-sheriff/src/test/java/de/cuioss/sheriff/gateway/pipeline/VerbGateStageTest.java +++ b/api-sheriff/src/test/java/de/cuioss/sheriff/gateway/pipeline/VerbGateStageTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2022 CUI-OpenSource-Software (info@cuioss.de) + * Copyright © 2026 CUI-OpenSource-Software (info@cuioss.de) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/api-sheriff/src/test/java/de/cuioss/sheriff/gateway/quarkus/ConfigFailFastTest.java b/api-sheriff/src/test/java/de/cuioss/sheriff/gateway/quarkus/ConfigFailFastTest.java index 496f004..4dca1c9 100644 --- a/api-sheriff/src/test/java/de/cuioss/sheriff/gateway/quarkus/ConfigFailFastTest.java +++ b/api-sheriff/src/test/java/de/cuioss/sheriff/gateway/quarkus/ConfigFailFastTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2022 CUI-OpenSource-Software (info@cuioss.de) + * Copyright © 2026 CUI-OpenSource-Software (info@cuioss.de) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/api-sheriff/src/test/java/de/cuioss/sheriff/gateway/quarkus/ConfigProducerTest.java b/api-sheriff/src/test/java/de/cuioss/sheriff/gateway/quarkus/ConfigProducerTest.java index dbbb7f9..c73f162 100644 --- a/api-sheriff/src/test/java/de/cuioss/sheriff/gateway/quarkus/ConfigProducerTest.java +++ b/api-sheriff/src/test/java/de/cuioss/sheriff/gateway/quarkus/ConfigProducerTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2022 CUI-OpenSource-Software (info@cuioss.de) + * Copyright © 2026 CUI-OpenSource-Software (info@cuioss.de) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/api-sheriff/src/test/java/de/cuioss/sheriff/gateway/quarkus/SheriffMetricsTest.java b/api-sheriff/src/test/java/de/cuioss/sheriff/gateway/quarkus/SheriffMetricsTest.java index c3d80f6..fcaf030 100644 --- a/api-sheriff/src/test/java/de/cuioss/sheriff/gateway/quarkus/SheriffMetricsTest.java +++ b/api-sheriff/src/test/java/de/cuioss/sheriff/gateway/quarkus/SheriffMetricsTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2022 CUI-OpenSource-Software (info@cuioss.de) + * Copyright © 2026 CUI-OpenSource-Software (info@cuioss.de) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/api-sheriff/src/test/java/de/cuioss/sheriff/gateway/routing/GrpcProtocolProcessorTest.java b/api-sheriff/src/test/java/de/cuioss/sheriff/gateway/routing/GrpcProtocolProcessorTest.java index d54f1e8..6178b68 100644 --- a/api-sheriff/src/test/java/de/cuioss/sheriff/gateway/routing/GrpcProtocolProcessorTest.java +++ b/api-sheriff/src/test/java/de/cuioss/sheriff/gateway/routing/GrpcProtocolProcessorTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2022 CUI-OpenSource-Software (info@cuioss.de) + * Copyright © 2026 CUI-OpenSource-Software (info@cuioss.de) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/api-sheriff/src/test/java/de/cuioss/sheriff/gateway/routing/RouteRuntimeTest.java b/api-sheriff/src/test/java/de/cuioss/sheriff/gateway/routing/RouteRuntimeTest.java index 77316b6..cb51197 100644 --- a/api-sheriff/src/test/java/de/cuioss/sheriff/gateway/routing/RouteRuntimeTest.java +++ b/api-sheriff/src/test/java/de/cuioss/sheriff/gateway/routing/RouteRuntimeTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2022 CUI-OpenSource-Software (info@cuioss.de) + * Copyright © 2026 CUI-OpenSource-Software (info@cuioss.de) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/api-sheriff/src/test/java/de/cuioss/sheriff/gateway/routing/WebSocketProtocolProcessorTest.java b/api-sheriff/src/test/java/de/cuioss/sheriff/gateway/routing/WebSocketProtocolProcessorTest.java index 783f6b0..9c5ecc8 100644 --- a/api-sheriff/src/test/java/de/cuioss/sheriff/gateway/routing/WebSocketProtocolProcessorTest.java +++ b/api-sheriff/src/test/java/de/cuioss/sheriff/gateway/routing/WebSocketProtocolProcessorTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2022 CUI-OpenSource-Software (info@cuioss.de) + * Copyright © 2026 CUI-OpenSource-Software (info@cuioss.de) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/benchmarks/src/main/java/de/cuioss/sheriff/gateway/k6/benchmark/ComparisonSummaryWriter.java b/benchmarks/src/main/java/de/cuioss/sheriff/gateway/k6/benchmark/ComparisonSummaryWriter.java index be8ebd4..6336193 100644 --- a/benchmarks/src/main/java/de/cuioss/sheriff/gateway/k6/benchmark/ComparisonSummaryWriter.java +++ b/benchmarks/src/main/java/de/cuioss/sheriff/gateway/k6/benchmark/ComparisonSummaryWriter.java @@ -1,5 +1,5 @@ /* - * Copyright © 2022 CUI-OpenSource-Software (info@cuioss.de) + * Copyright © 2026 CUI-OpenSource-Software (info@cuioss.de) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/benchmarks/src/main/java/de/cuioss/sheriff/gateway/k6/benchmark/K6BenchmarkConverter.java b/benchmarks/src/main/java/de/cuioss/sheriff/gateway/k6/benchmark/K6BenchmarkConverter.java index e57a371..b049f73 100644 --- a/benchmarks/src/main/java/de/cuioss/sheriff/gateway/k6/benchmark/K6BenchmarkConverter.java +++ b/benchmarks/src/main/java/de/cuioss/sheriff/gateway/k6/benchmark/K6BenchmarkConverter.java @@ -1,5 +1,5 @@ /* - * Copyright © 2022 CUI-OpenSource-Software (info@cuioss.de) + * Copyright © 2026 CUI-OpenSource-Software (info@cuioss.de) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/benchmarks/src/main/java/de/cuioss/sheriff/gateway/k6/benchmark/K6BenchmarkLogMessages.java b/benchmarks/src/main/java/de/cuioss/sheriff/gateway/k6/benchmark/K6BenchmarkLogMessages.java index 74dc00f..2593111 100644 --- a/benchmarks/src/main/java/de/cuioss/sheriff/gateway/k6/benchmark/K6BenchmarkLogMessages.java +++ b/benchmarks/src/main/java/de/cuioss/sheriff/gateway/k6/benchmark/K6BenchmarkLogMessages.java @@ -1,5 +1,5 @@ /* - * Copyright © 2022 CUI-OpenSource-Software (info@cuioss.de) + * Copyright © 2026 CUI-OpenSource-Software (info@cuioss.de) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/benchmarks/src/main/java/de/cuioss/sheriff/gateway/k6/benchmark/K6ResultPostProcessor.java b/benchmarks/src/main/java/de/cuioss/sheriff/gateway/k6/benchmark/K6ResultPostProcessor.java index 5dedd7a..2ce6464 100644 --- a/benchmarks/src/main/java/de/cuioss/sheriff/gateway/k6/benchmark/K6ResultPostProcessor.java +++ b/benchmarks/src/main/java/de/cuioss/sheriff/gateway/k6/benchmark/K6ResultPostProcessor.java @@ -1,5 +1,5 @@ /* - * Copyright © 2022 CUI-OpenSource-Software (info@cuioss.de) + * Copyright © 2026 CUI-OpenSource-Software (info@cuioss.de) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/benchmarks/src/main/java/de/cuioss/sheriff/gateway/k6/benchmark/package-info.java b/benchmarks/src/main/java/de/cuioss/sheriff/gateway/k6/benchmark/package-info.java index abb8e18..af12d66 100644 --- a/benchmarks/src/main/java/de/cuioss/sheriff/gateway/k6/benchmark/package-info.java +++ b/benchmarks/src/main/java/de/cuioss/sheriff/gateway/k6/benchmark/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2022 CUI-OpenSource-Software (info@cuioss.de) + * Copyright © 2026 CUI-OpenSource-Software (info@cuioss.de) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -13,7 +13,6 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - /** * k6 benchmark post-processing for API Sheriff. *

diff --git a/benchmarks/src/test/java/de/cuioss/sheriff/gateway/k6/benchmark/ComparisonSummaryWriterTest.java b/benchmarks/src/test/java/de/cuioss/sheriff/gateway/k6/benchmark/ComparisonSummaryWriterTest.java index d1daacd..f52f4b9 100644 --- a/benchmarks/src/test/java/de/cuioss/sheriff/gateway/k6/benchmark/ComparisonSummaryWriterTest.java +++ b/benchmarks/src/test/java/de/cuioss/sheriff/gateway/k6/benchmark/ComparisonSummaryWriterTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2022 CUI-OpenSource-Software (info@cuioss.de) + * Copyright © 2026 CUI-OpenSource-Software (info@cuioss.de) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/benchmarks/src/test/java/de/cuioss/sheriff/gateway/k6/benchmark/K6BenchmarkConverterTest.java b/benchmarks/src/test/java/de/cuioss/sheriff/gateway/k6/benchmark/K6BenchmarkConverterTest.java index 6eb956e..9c0c2b4 100644 --- a/benchmarks/src/test/java/de/cuioss/sheriff/gateway/k6/benchmark/K6BenchmarkConverterTest.java +++ b/benchmarks/src/test/java/de/cuioss/sheriff/gateway/k6/benchmark/K6BenchmarkConverterTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2022 CUI-OpenSource-Software (info@cuioss.de) + * Copyright © 2026 CUI-OpenSource-Software (info@cuioss.de) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/integration-tests/src/main/java/de/cuioss/sheriff/gateway/integration/grpc/GrpcEchoService.java b/integration-tests/src/main/java/de/cuioss/sheriff/gateway/integration/grpc/GrpcEchoService.java index 5aa41b8..4407d26 100644 --- a/integration-tests/src/main/java/de/cuioss/sheriff/gateway/integration/grpc/GrpcEchoService.java +++ b/integration-tests/src/main/java/de/cuioss/sheriff/gateway/integration/grpc/GrpcEchoService.java @@ -1,5 +1,5 @@ /* - * Copyright © 2022 CUI-OpenSource-Software (info@cuioss.de) + * Copyright © 2026 CUI-OpenSource-Software (info@cuioss.de) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/integration-tests/src/test/java/de/cuioss/sheriff/gateway/integration/ApiSheriffIntegrationIT.java b/integration-tests/src/test/java/de/cuioss/sheriff/gateway/integration/ApiSheriffIntegrationIT.java index 863781b..0dc9559 100644 --- a/integration-tests/src/test/java/de/cuioss/sheriff/gateway/integration/ApiSheriffIntegrationIT.java +++ b/integration-tests/src/test/java/de/cuioss/sheriff/gateway/integration/ApiSheriffIntegrationIT.java @@ -1,5 +1,5 @@ /* - * Copyright © 2022 CUI-OpenSource-Software (info@cuioss.de) + * Copyright © 2026 CUI-OpenSource-Software (info@cuioss.de) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/integration-tests/src/test/java/de/cuioss/sheriff/gateway/integration/BaseIntegrationTest.java b/integration-tests/src/test/java/de/cuioss/sheriff/gateway/integration/BaseIntegrationTest.java index 337085a..07a76e0 100644 --- a/integration-tests/src/test/java/de/cuioss/sheriff/gateway/integration/BaseIntegrationTest.java +++ b/integration-tests/src/test/java/de/cuioss/sheriff/gateway/integration/BaseIntegrationTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2022 CUI-OpenSource-Software (info@cuioss.de) + * Copyright © 2026 CUI-OpenSource-Software (info@cuioss.de) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/integration-tests/src/test/java/de/cuioss/sheriff/gateway/integration/BearerValidationIT.java b/integration-tests/src/test/java/de/cuioss/sheriff/gateway/integration/BearerValidationIT.java index 6d37667..c76f99d 100644 --- a/integration-tests/src/test/java/de/cuioss/sheriff/gateway/integration/BearerValidationIT.java +++ b/integration-tests/src/test/java/de/cuioss/sheriff/gateway/integration/BearerValidationIT.java @@ -1,5 +1,5 @@ /* - * Copyright © 2022 CUI-OpenSource-Software (info@cuioss.de) + * Copyright © 2026 CUI-OpenSource-Software (info@cuioss.de) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/integration-tests/src/test/java/de/cuioss/sheriff/gateway/integration/ConfigLoadedIntegrationIT.java b/integration-tests/src/test/java/de/cuioss/sheriff/gateway/integration/ConfigLoadedIntegrationIT.java index 3c6df8f..9d82a29 100644 --- a/integration-tests/src/test/java/de/cuioss/sheriff/gateway/integration/ConfigLoadedIntegrationIT.java +++ b/integration-tests/src/test/java/de/cuioss/sheriff/gateway/integration/ConfigLoadedIntegrationIT.java @@ -1,5 +1,5 @@ /* - * Copyright © 2022 CUI-OpenSource-Software (info@cuioss.de) + * Copyright © 2026 CUI-OpenSource-Software (info@cuioss.de) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/integration-tests/src/test/java/de/cuioss/sheriff/gateway/integration/DirectoryAssetServingIT.java b/integration-tests/src/test/java/de/cuioss/sheriff/gateway/integration/DirectoryAssetServingIT.java index 44924ca..b080b00 100644 --- a/integration-tests/src/test/java/de/cuioss/sheriff/gateway/integration/DirectoryAssetServingIT.java +++ b/integration-tests/src/test/java/de/cuioss/sheriff/gateway/integration/DirectoryAssetServingIT.java @@ -1,5 +1,5 @@ /* - * Copyright © 2022 CUI-OpenSource-Software (info@cuioss.de) + * Copyright © 2026 CUI-OpenSource-Software (info@cuioss.de) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/integration-tests/src/test/java/de/cuioss/sheriff/gateway/integration/ErrorContractIT.java b/integration-tests/src/test/java/de/cuioss/sheriff/gateway/integration/ErrorContractIT.java index 9de180c..6f6ecb0 100644 --- a/integration-tests/src/test/java/de/cuioss/sheriff/gateway/integration/ErrorContractIT.java +++ b/integration-tests/src/test/java/de/cuioss/sheriff/gateway/integration/ErrorContractIT.java @@ -1,5 +1,5 @@ /* - * Copyright © 2022 CUI-OpenSource-Software (info@cuioss.de) + * Copyright © 2026 CUI-OpenSource-Software (info@cuioss.de) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/integration-tests/src/test/java/de/cuioss/sheriff/gateway/integration/GracefulShutdownIT.java b/integration-tests/src/test/java/de/cuioss/sheriff/gateway/integration/GracefulShutdownIT.java index 0e2bf41..ffa2b89 100644 --- a/integration-tests/src/test/java/de/cuioss/sheriff/gateway/integration/GracefulShutdownIT.java +++ b/integration-tests/src/test/java/de/cuioss/sheriff/gateway/integration/GracefulShutdownIT.java @@ -1,5 +1,5 @@ /* - * Copyright © 2022 CUI-OpenSource-Software (info@cuioss.de) + * Copyright © 2026 CUI-OpenSource-Software (info@cuioss.de) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/integration-tests/src/test/java/de/cuioss/sheriff/gateway/integration/GrpcProxyIT.java b/integration-tests/src/test/java/de/cuioss/sheriff/gateway/integration/GrpcProxyIT.java index 6507279..6c99a8e 100644 --- a/integration-tests/src/test/java/de/cuioss/sheriff/gateway/integration/GrpcProxyIT.java +++ b/integration-tests/src/test/java/de/cuioss/sheriff/gateway/integration/GrpcProxyIT.java @@ -1,5 +1,5 @@ /* - * Copyright © 2022 CUI-OpenSource-Software (info@cuioss.de) + * Copyright © 2026 CUI-OpenSource-Software (info@cuioss.de) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/integration-tests/src/test/java/de/cuioss/sheriff/gateway/integration/MetricsIT.java b/integration-tests/src/test/java/de/cuioss/sheriff/gateway/integration/MetricsIT.java index 686d0ba..d304add 100644 --- a/integration-tests/src/test/java/de/cuioss/sheriff/gateway/integration/MetricsIT.java +++ b/integration-tests/src/test/java/de/cuioss/sheriff/gateway/integration/MetricsIT.java @@ -1,5 +1,5 @@ /* - * Copyright © 2022 CUI-OpenSource-Software (info@cuioss.de) + * Copyright © 2026 CUI-OpenSource-Software (info@cuioss.de) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/integration-tests/src/test/java/de/cuioss/sheriff/gateway/integration/PipelineVerbIT.java b/integration-tests/src/test/java/de/cuioss/sheriff/gateway/integration/PipelineVerbIT.java index 398e19f..773c6c5 100644 --- a/integration-tests/src/test/java/de/cuioss/sheriff/gateway/integration/PipelineVerbIT.java +++ b/integration-tests/src/test/java/de/cuioss/sheriff/gateway/integration/PipelineVerbIT.java @@ -1,5 +1,5 @@ /* - * Copyright © 2022 CUI-OpenSource-Software (info@cuioss.de) + * Copyright © 2026 CUI-OpenSource-Software (info@cuioss.de) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/integration-tests/src/test/java/de/cuioss/sheriff/gateway/integration/UpstreamAssetServingIT.java b/integration-tests/src/test/java/de/cuioss/sheriff/gateway/integration/UpstreamAssetServingIT.java index d9443a7..866672a 100644 --- a/integration-tests/src/test/java/de/cuioss/sheriff/gateway/integration/UpstreamAssetServingIT.java +++ b/integration-tests/src/test/java/de/cuioss/sheriff/gateway/integration/UpstreamAssetServingIT.java @@ -1,5 +1,5 @@ /* - * Copyright © 2022 CUI-OpenSource-Software (info@cuioss.de) + * Copyright © 2026 CUI-OpenSource-Software (info@cuioss.de) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/integration-tests/src/test/java/de/cuioss/sheriff/gateway/integration/WebSocketProxyIT.java b/integration-tests/src/test/java/de/cuioss/sheriff/gateway/integration/WebSocketProxyIT.java index d898eb2..cb565ea 100644 --- a/integration-tests/src/test/java/de/cuioss/sheriff/gateway/integration/WebSocketProxyIT.java +++ b/integration-tests/src/test/java/de/cuioss/sheriff/gateway/integration/WebSocketProxyIT.java @@ -1,5 +1,5 @@ /* - * Copyright © 2022 CUI-OpenSource-Software (info@cuioss.de) + * Copyright © 2026 CUI-OpenSource-Software (info@cuioss.de) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/integration-tests/src/test/java/de/cuioss/sheriff/gateway/integration/grpc/GrpcEchoServiceTest.java b/integration-tests/src/test/java/de/cuioss/sheriff/gateway/integration/grpc/GrpcEchoServiceTest.java index 0de069e..c4f54d7 100644 --- a/integration-tests/src/test/java/de/cuioss/sheriff/gateway/integration/grpc/GrpcEchoServiceTest.java +++ b/integration-tests/src/test/java/de/cuioss/sheriff/gateway/integration/grpc/GrpcEchoServiceTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2022 CUI-OpenSource-Software (info@cuioss.de) + * Copyright © 2026 CUI-OpenSource-Software (info@cuioss.de) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/pom.xml b/pom.xml index bd2f4e7..cd4850c 100644 --- a/pom.xml +++ b/pom.xml @@ -41,6 +41,15 @@ + 3.37.3 0.9.2 1.5.9 @@ -424,6 +433,35 @@ + + + com.mycila + license-maven-plugin + + + 2026 + + +