[Default]modify ajp-listener to allow specifying pattern for ajp request attributes

In  undertow
Tracked by https://github.com/wildfly/wildfly-proposals/issues/791
Promotes

Overview

Since UNDERTOW-1667 one can set additional AJP request attribute parsing permission via env variable. However there is no way to set it in WFLY config/model. This RFE’s goal is to make it possible. NOTE: this is promotion from Community to Default level.

User Stories

N/A

Issue Metadata

Affected Projects or Components

<List the projects or components that are affected by the feature. List them using their Git repositories.>

Other Interested Projects

Relevant Installation Types

  • Traditional standalone server (unzipped or provisioned by Galleon)

  • Managed domain

  • OpenShift Source-to-Image (S2I)

  • Bootable jar

Requirements

  • Being able to configure pattern via model/xml.

    <subsystem xmlns="urn:jboss:domain:undertow:14.0" default-server="some-server" default-servlet-container="myContainer" default-virtual-host="default-virtual-host" instance-id="some-id" statistics-enabled="true">
       ...
       <server default-host="other-host" name="some-server" servlet-container="myContainer">
          ...
          <ajp-listener ...  allowed_request_attr_pattern="(?:apple|banana)"  .../>
          ...
       </server>
       ...
    </subsystem>

Parameters will be present in undertow server element(for standalone: /subsystem=undertow/server=default-server/ajp-listener=myListener): * allowed_request_attr_pattern Default: null Type: String(regex - java.util.regex.Pattern)

Changed requirements

N/A

Non-Requirements

N/A

Future Work

None

Backwards Compatibility

Possibly. Subsystem transformers should be able to handle it.

Default Configuration

No change

Importing Existing Configuration

No steps should suffice, as it would mean defaulting to 'null', which is default value in undertow source.

Deployments

Not affected.

Interoperability

N/A

Implementation Plan

N/A

Admin Clients

HAL pick up those values and mark as stability dependent. CLI use model.

Security Considerations

Possibly. UNDERTOW-1667 is a CVE, so this RFE should be documented well, in order to warn users of potential exposure. However, by defualt undertow will ignore non-standard and not matching attributes, hence user is failure point.

Test Plan

Test Plan 752 Unit tests should cover new functionality(there is already test case covering AjpListener).

Community Documentation

Task for WFLY documentation already exist - WFLY-15453. HOwever, this is model change and there is model reference doc generated, so its unclear which approach is better?

Release Note Content

Allow configuration of AJP request attribute pattern with model entry, rather than only via system property.(promotion to default stability)