]> git.ipfire.org Git - thirdparty/kea.git/commitdiff
[#3609] Checkpoint before rebase
authorFrancis Dupont <fdupont@isc.org>
Sat, 16 Nov 2024 08:44:38 +0000 (09:44 +0100)
committerFrancis Dupont <fdupont@isc.org>
Fri, 22 Nov 2024 08:55:31 +0000 (09:55 +0100)
src/bin/agent/tests/ca_cfg_mgr_unittests.cc
src/bin/dhcp4/tests/config_parser_unittest.cc
src/bin/dhcp6/tests/config_parser_unittest.cc

index a7b40c55671ae548933edbe4b2e307c1da22c973..7c9a6364f1c911333fd412d6564684af3704d545 100644 (file)
@@ -358,6 +358,11 @@ const char* AGENT_CONFIGS[] = {
     "    \"user-context\": { \"comment\": \"Indirect comment\" },\n"
     "    \"http-host\": \"betelgeuse\",\n"
     "    \"http-port\": 8001,\n"
+    "    \"http-headers\": [ {\n"
+    "        \"comment\": \"HSTS header\",\n"
+    "        \"name\": \"Strict-Transport-Security\",\n"
+    "        \"value\": \"max-age=31536000\"\n"
+    "    } ],\n"
     "    \"authentication\": {\n"
     "        \"comment\": \"basic HTTP authentication\",\n"
     "        \"type\": \"basic\",\n"
@@ -624,14 +629,23 @@ TEST_F(AgentParserTest, comments) {
     ASSERT_TRUE(ctx6->get("version"));
     EXPECT_EQ("1", ctx6->get("version")->str());
 
-    // Check authentication comment.
-    const HttpAuthConfigPtr& auth = agent_ctx->getAuthConfig();
-    ASSERT_TRUE(auth);
-    ConstElementPtr ctx7 = auth->getContext();
+    // Check HTTP header comment.
+    const CfgHttpHeaders& headers = agent_ctx->getHttpHeaders();
+    ASSERT_EQ(1, headers.size());
+    ConstElementPtr ctx7 = headers[0].getContext();
     ASSERT_TRUE(ctx7);
     ASSERT_EQ(1, ctx7->size());
     ASSERT_TRUE(ctx7->get("comment"));
-    EXPECT_EQ("\"basic HTTP authentication\"", ctx7->get("comment")->str());
+    EXPECT_EQ("\"HSTS header\"", ctx7->get("comment")->str());
+
+    // Check authentication comment.
+    const HttpAuthConfigPtr& auth = agent_ctx->getAuthConfig();
+    ASSERT_TRUE(auth);
+    ConstElementPtr ctx8 = auth->getContext();
+    ASSERT_TRUE(ctx8);
+    ASSERT_EQ(1, ctx8->size());
+    ASSERT_TRUE(ctx8->get("comment"));
+    EXPECT_EQ("\"basic HTTP authentication\"", ctx8->get("comment")->str());
 
     // Check basic HTTP authentication client comment.
     const BasicHttpAuthConfigPtr& basic_auth =
@@ -639,18 +653,18 @@ TEST_F(AgentParserTest, comments) {
     ASSERT_TRUE(basic_auth);
     auto clients = basic_auth->getClientList();
     ASSERT_EQ(2, clients.size());
-    ConstElementPtr ctx8 = clients.front().getContext();
-    ASSERT_TRUE(ctx8);
-    ASSERT_EQ(1, ctx8->size());
-    ASSERT_TRUE(ctx8->get("comment"));
-    EXPECT_EQ("\"foo is authorized\"", ctx8->get("comment")->str());
-
-    // Check basic HTTP authentication client user context.
-    ConstElementPtr ctx9 = clients.back().getContext();
+    ConstElementPtr ctx9 = clients.front().getContext();
     ASSERT_TRUE(ctx9);
     ASSERT_EQ(1, ctx9->size());
-    ASSERT_TRUE(ctx9->get("no password"));
-    EXPECT_EQ("true", ctx9->get("no password")->str());
+    ASSERT_TRUE(ctx9->get("comment"));
+    EXPECT_EQ("\"foo is authorized\"", ctx9->get("comment")->str());
+
+    // Check basic HTTP authentication client user context.
+    ConstElementPtr ctx10 = clients.back().getContext();
+    ASSERT_TRUE(ctx10);
+    ASSERT_EQ(1, ctx10->size());
+    ASSERT_TRUE(ctx10->get("no password"));
+    EXPECT_EQ("true", ctx10->get("no password")->str());
 }
 
 // This test checks if a config with TLS parameters is parsed properly.
index 396b4ae9a4f20153ae6fb15153875cb27363c46c..d178dce589f74394959761c71ce31099b616b784 100644 (file)
@@ -246,6 +246,11 @@ const char* PARSER_CONFIGS[] = {
     "            \"socket-type\": \"http\","
     "            \"socket-address\": \"::1\","
     "            \"socket-port\": 8000,"
+    "            \"http-headers\": [ {"
+    "                \"comment\": \"HSTS header\","
+    "                \"name\": \"Strict-Transport-Security\","
+    "                \"value\": \"max-age=31536000\""
+    "            } ],"
     "            \"authentication\": {"
     "                \"comment\": \"basic HTTP authentication\","
     "                \"type\": \"basic\","
@@ -7110,6 +7115,18 @@ TEST_F(Dhcp4ParserTest, comments) {
     ASSERT_TRUE(ctx_socket->get("comment"));
     EXPECT_EQ("\"HTTP control socket\"", ctx_socket->get("comment")->str());
 
+    // HTTP headers.
+    ConstElementPtr headers = socket->get("http-headers");
+    ASSERT_TRUE(headers);
+    ASSERT_EQ(1, headers->size());
+    ConstElementPtr header = headers->get(0);
+    ASSERT_TRUE(header);
+    ConstElementPtr ctx_header = header->get("user-context");
+    ASSERT_TRUE(ctx_header);
+    ASSERT_EQ(1, ctx_header->size());
+    ASSERT_TRUE(ctx_header->get("comment"));
+    EXPECT_EQ("\"HSTS header\"", ctx_header->get("comment")->str());
+
     // HTTP authentication.
     ConstElementPtr auth = socket->get("authentication");
     ASSERT_TRUE(auth);
index e91da6b79606b13cdbf178bb8fb4b07ab4933346..c3f20bf3f45d369303c9cc443f342b7cf42d141a 100644 (file)
@@ -327,6 +327,11 @@ const char* PARSER_CONFIGS[] = {
     "            \"socket-type\": \"http\","
     "            \"socket-address\": \"127.0.0.1\","
     "            \"socket-port\": 8000,"
+    "            \"http-headers\": [ {"
+    "                \"comment\": \"HSTS header\","
+    "                \"name\": \"Strict-Transport-Security\","
+    "                \"value\": \"max-age=31536000\""
+    "            } ],"
     "            \"authentication\": {"
     "                \"comment\": \"basic HTTP authentication\","
     "                \"type\": \"basic\","
@@ -7924,6 +7929,18 @@ TEST_F(Dhcp6ParserTest, comments) {
     ASSERT_TRUE(ctx_socket->get("comment"));
     EXPECT_EQ("\"HTTP control socket\"", ctx_socket->get("comment")->str());
 
+    // HTTP headers.
+    ConstElementPtr headers = socket->get("http-headers");
+    ASSERT_TRUE(headers);
+    ASSERT_EQ(1, headers->size());
+    ConstElementPtr header = headers->get(0);
+    ASSERT_TRUE(header);
+    ConstElementPtr ctx_header = header->get("user-context");
+    ASSERT_TRUE(ctx_header);
+    ASSERT_EQ(1, ctx_header->size());
+    ASSERT_TRUE(ctx_header->get("comment"));
+    EXPECT_EQ("\"HSTS header\"", ctx_header->get("comment")->str());
+
     // HTTP authentication.
     ConstElementPtr auth = socket->get("authentication");
     ASSERT_TRUE(auth);