summaryrefslogtreecommitdiffhomepage
path: root/caddytest
diff options
context:
space:
mode:
authorAziz Rmadi <[email protected]>2024-02-18 18:22:48 -0600
committerGitHub <[email protected]>2024-02-19 00:22:48 +0000
commitb893c8c5f856ba7399ed05c8de82fa5c8158ff00 (patch)
tree9a68972de32ea0bd728e79937c476ba79e80decd /caddytest
parent127788807fdc32feb48a7f24a7e89f954ad3a049 (diff)
downloadcaddy-b893c8c5f856ba7399ed05c8de82fa5c8158ff00.tar.gz
caddy-b893c8c5f856ba7399ed05c8de82fa5c8158ff00.zip
caddyfile: Reject directives in the place of site addresses (#6104)
Co-authored-by: Francis Lavoie <[email protected]>
Diffstat (limited to 'caddytest')
-rw-r--r--caddytest/integration/acme_test.go2
-rw-r--r--caddytest/integration/caddyfile_adapt/http_valid_directive_like_site_address.txt46
-rw-r--r--caddytest/integration/caddyfile_test.go28
-rw-r--r--caddytest/integration/pki_test.go6
4 files changed, 81 insertions, 1 deletions
diff --git a/caddytest/integration/acme_test.go b/caddytest/integration/acme_test.go
index 00a3a6c4e..45db8f017 100644
--- a/caddytest/integration/acme_test.go
+++ b/caddytest/integration/acme_test.go
@@ -23,7 +23,7 @@ import (
"go.uber.org/zap"
)
-const acmeChallengePort = 8080
+const acmeChallengePort = 9081
// Test the basic functionality of Caddy's ACME server
func TestACMEServerWithDefaults(t *testing.T) {
diff --git a/caddytest/integration/caddyfile_adapt/http_valid_directive_like_site_address.txt b/caddytest/integration/caddyfile_adapt/http_valid_directive_like_site_address.txt
new file mode 100644
index 000000000..675523a57
--- /dev/null
+++ b/caddytest/integration/caddyfile_adapt/http_valid_directive_like_site_address.txt
@@ -0,0 +1,46 @@
+http://handle {
+ file_server
+}
+----------
+{
+ "apps": {
+ "http": {
+ "servers": {
+ "srv0": {
+ "listen": [
+ ":80"
+ ],
+ "routes": [
+ {
+ "match": [
+ {
+ "host": [
+ "handle"
+ ]
+ }
+ ],
+ "handle": [
+ {
+ "handler": "subroute",
+ "routes": [
+ {
+ "handle": [
+ {
+ "handler": "file_server",
+ "hide": [
+ "./Caddyfile"
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "terminal": true
+ }
+ ]
+ }
+ }
+ }
+ }
+} \ No newline at end of file
diff --git a/caddytest/integration/caddyfile_test.go b/caddytest/integration/caddyfile_test.go
index f9a98fb38..959783be7 100644
--- a/caddytest/integration/caddyfile_test.go
+++ b/caddytest/integration/caddyfile_test.go
@@ -496,6 +496,7 @@ func TestUriReplace(t *testing.T) {
tester.AssertGetResponse("http://localhost:9080/endpoint?test={%20content%20}", 200, "test=%7B%20content%20%7D")
}
+
func TestHandleErrorSimpleCodes(t *testing.T) {
tester := caddytest.NewTester(t)
tester.InitServer(`{
@@ -584,3 +585,30 @@ func TestHandleErrorRangeAndCodes(t *testing.T) {
tester.AssertGetResponse("http://localhost:9080/threehundred", 301, "Error code is equal to 500 or in the [300..399] range")
tester.AssertGetResponse("http://localhost:9080/private", 410, "Error in the [400 .. 499] range")
}
+
+func TestInvalidSiteAddressesAsDirectives(t *testing.T) {
+ type testCase struct {
+ config, expectedError string
+ }
+
+ failureCases := []testCase{
+ {
+ config: `
+ handle {
+ file_server
+ }`,
+ expectedError: `Caddyfile:2: parsed 'handle' as a site address, but it is a known directive; directives must appear in a site block`,
+ },
+ {
+ config: `
+ reverse_proxy localhost:9000 localhost:9001 {
+ file_server
+ }`,
+ expectedError: `Caddyfile:2: parsed 'reverse_proxy' as a site address, but it is a known directive; directives must appear in a site block`,
+ },
+ }
+
+ for _, failureCase := range failureCases {
+ caddytest.AssertLoadError(t, failureCase.config, "caddyfile", failureCase.expectedError)
+ }
+}
diff --git a/caddytest/integration/pki_test.go b/caddytest/integration/pki_test.go
index 5e9928c0c..846798209 100644
--- a/caddytest/integration/pki_test.go
+++ b/caddytest/integration/pki_test.go
@@ -9,6 +9,9 @@ import (
func TestLeafCertLifetimeLessThanIntermediate(t *testing.T) {
caddytest.AssertLoadError(t, `
{
+ "admin": {
+ "disabled": true
+ },
"apps": {
"http": {
"servers": {
@@ -56,6 +59,9 @@ func TestLeafCertLifetimeLessThanIntermediate(t *testing.T) {
func TestIntermediateLifetimeLessThanRoot(t *testing.T) {
caddytest.AssertLoadError(t, `
{
+ "admin": {
+ "disabled": true
+ },
"apps": {
"http": {
"servers": {