Skip to content

Fail to deploy WAF action when WAF policy declaration using 'file' property #88

Description

@zhaoqin-github
Do you already have an issue opened with F5 support?

No

ISSUE TYPE
  • Bug Report
AS3 BUILD/ VERSION
3.10.0
BIGIP VERSION
BIG-IP 13.1.1 Build 0.0.4 Final 
SUMMARY

I attempted to deploy an endpoint policy with one default rule and one WAF action. The WAF_Policy object is declared under Application object, and the WAF policy file is defined by the 'file' property of WAF_Policy. Policy_Action object has a 'use' pointer to associate the action and WAF policy. AS3 container returns a "Cannot read property 'replace' of undefined" failure message for my deploy request.

When I use the 'url' property of WAF_Policy to deploy the app, or use a 'bigip' pointer to input WAF policy file path in Policy_Action, AS3 can successfully process the request.

STEPS TO REPRODUCE

My application declaration

      "Application_355fae54cdc5": {
        "class": "Application",
        "label": "my_app",
        "remark": "my-app",
        "template": "generic",
        "Service_HTTP_e082d4b76d85": {
          "class": "Service_HTTP",
          "label": "my_service",
          "pool": "Pool_0a624e745174",
          "virtualAddresses": [
            "10.145.65.195"
          ],
          "virtualPort": 80,
          "policyEndpoint": [
            "Endpoint_Policy_1c30e12b9529"
          ]
        },
        "Pool_0a624e745174": {
          "class": "Pool",
          "label": "my_pool",
          "loadBalancingMode": "round-robin",
          "members": [
            {
              "servicePort": 80,
              "serverAddresses": [
                "10.145.65.185"
              ],
              "monitors": [
                {
                  "use": "Monitor_d693662efd4b"
                }
              ]
            }
          ],
          "monitors": [
            {
              "use": "Monitor_c1813d353223"
            }
          ]
        },
        "Endpoint_Policy_1c30e12b9529": {
          "class": "Endpoint_Policy",
          "label": "my-policy",
          "rules": [
            {
              "name": "my_rule",
              "conditions": [],
              "actions": [
                {
                  "policy": {
                    "use": "WAF_Policy_273f53ecb080"
                  },
                  "type": "waf"
                }
              ]
            }
          ]
        },
        "WAF_Policy_273f53ecb080": {
          "class": "WAF_Policy",
          "label": "my-waf-policy",
          "file": "/Common/asm_demo"
        },
        "Monitor_c1813d353223": {
          "class": "Monitor",
          "label": "monitor-1",
          "monitorType": "icmp"
        },
        "Monitor_d693662efd4b": {
          "class": "Monitor",
          "label": "monitor-2",
          "monitorType": "http"
        }
      }
EXPECTED RESULTS
HTTP 200
ACTUAL RESULTS
{
  "error": {
    "statusCode": 422,
    "name": "Error",
    "message": "{\"results\":[{\"message\":\"Cannot read property 'replace' of undefined\",\"host\":\"10.145.64.148\",\"tenant\":\"Tenant_12345678\",\"code\":500}],\"declaration\":{\"Tenant_12345678\":{\"class\":\"Tenant\",\"Application_9feeb8d92cb2\":{\"class\":\"Application\",\"label\":\"my_app\",\"remark\":\"my-app\",\"template\":\"generic\",\"Service_HTTP_b4d47ff5974f\":{\"class\":\"Service_HTTP\",\"label\":\"my_service\",\"pool\":\"Pool_334105fe5dfb\",\"virtualAddresses\":[\"10.145.65.195\"],\"virtualPort\":80,\"policyEndpoint\":[\"Endpoint_Policy_af4320cbb0bf\"]},\"Pool_334105fe5dfb\":{\"class\":\"Pool\",\"label\":\"my_pool\",\"loadBalancingMode\":\"round-robin\",\"members\":[{\"servicePort\":80,\"serverAddresses\":[\"10.145.65.185\"],\"monitors\":[{\"use\":\"Monitor_985f3b38a26e\"}]}],\"monitors\":[{\"use\":\"Monitor_09003c0a35c2\"}]},\"Endpoint_Policy_af4320cbb0bf\":{\"class\":\"Endpoint_Policy\",\"label\":\"my-policy\",\"rules\":[{\"name\":\"my_rule\",\"conditions\":[],\"actions\":[{\"insert\":{\"name\":\"abc\",\"value\":\"123\"},\"type\":\"httpHeader\"}]}]},\"Monitor_09003c0a35c2\":{\"class\":\"Monitor\",\"label\":\"monitor-1\",\"monitorType\":\"icmp\"},\"Monitor_985f3b38a26e\":{\"class\":\"Monitor\",\"label\":\"monitor-2\",\"monitorType\":\"http\"}}},\"class\":\"ADC\",\"schemaVersion\":\"3.0.0\",\"id\":\"19c91231-11e6-4f06-b2ba-817f46720052\",\"label\":\"my-adc\",\"updateMode\":\"selective\",\"controls\":{\"archiveTimestamp\":\"2019-04-12T05:51:11.130Z\"}},\"code\":422}"
  }
}

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions