Blame tests/regression/config/10-response-directives.t

Packit Service 384592
### Tests for directives altering how a response is handled
Packit Service 384592
Packit Service 384592
# SecResponseBodyMimeTypesClear
Packit Service 384592
{
Packit Service 384592
	type => "config",
Packit Service 384592
	comment => "SecResponseBodyMimeTypesClear",
Packit Service 384592
	conf => qq(
Packit Service 384592
		SecRuleEngine On
Packit Service 384592
		SecResponseBodyAccess On
Packit Service 384592
		SecResponseBodyMimeTypesClear
Packit Service 384592
		SecDebugLog $ENV{DEBUG_LOG}
Packit Service 384592
		SecDebugLogLevel 9
Packit Service 384592
		SecRule RESPONSE_BODY "TEST" "phase:4,deny,id:500237"
Packit Service 384592
	),
Packit Service 384592
	match_log => {
Packit Service 384592
		-error => [ qr/Access denied/, 1 ],
Packit Service 384592
		debug => [ qr/Not buffering response body for unconfigured MIME type/, 1 ],
Packit Service 384592
	},
Packit Service 384592
	match_response => {
Packit Service 384592
		status => qr/^200$/,
Packit Service 384592
	},
Packit Service 384592
	request => new HTTP::Request(
Packit Service 384592
		GET => "http://$ENV{SERVER_NAME}:$ENV{SERVER_PORT}/test.txt",
Packit Service 384592
	),
Packit Service 384592
},
Packit Service 384592
Packit Service 384592
# SecResponseBodyAccess & SecResponseBodyMimeType
Packit Service 384592
{
Packit Service 384592
	type => "config",
Packit Service 384592
	comment => "SecResponseBodyAccess On",
Packit Service 384592
	conf => qq(
Packit Service 384592
		SecRuleEngine On
Packit Service 384592
		SecDebugLog $ENV{DEBUG_LOG}
Packit Service 384592
		SecDebugLogLevel 9
Packit Service 384592
		SecResponseBodyAccess On
Packit Service 384592
		SecResponseBodyMimeType text/plain null
Packit Service 384592
		SecRule RESPONSE_BODY "TEST" "phase:4,deny,id:500238"
Packit Service 384592
	),
Packit Service 384592
	match_log => {
Packit Service 384592
		error => [ qr/Access denied with code 403 \(phase 4\)\. Pattern match "TEST" at RESPONSE_BODY\./, 1 ],
Packit Service 384592
	},
Packit Service 384592
	match_response => {
Packit Service 384592
		status => qr/^403$/,
Packit Service 384592
	},
Packit Service 384592
	request => new HTTP::Request(
Packit Service 384592
		GET => "http://$ENV{SERVER_NAME}:$ENV{SERVER_PORT}/test.txt",
Packit Service 384592
	),
Packit Service 384592
},
Packit Service 384592
{
Packit Service 384592
	type => "config",
Packit Service 384592
	comment => "SecResponseBodyAccess Off",
Packit Service 384592
	conf => qq(
Packit Service 384592
		SecRuleEngine On
Packit Service 384592
		SecDebugLog $ENV{DEBUG_LOG}
Packit Service 384592
		SecDebugLogLevel 9
Packit Service 384592
		SecResponseBodyAccess Off
Packit Service 384592
		SecResponseBodyMimeType text/plain null
Packit Service 384592
		SecRule RESPONSE_BODY "TEST" "phase:4,deny,id:500239"
Packit Service 384592
	),
Packit Service 384592
	match_log => {
Packit Service 384592
		-error => [ qr/Access denied/, 1 ],
Packit Service 384592
		debug => [ qr/Response body buffering is not enabled\./, 1 ],
Packit Service 384592
	},
Packit Service 384592
	match_response => {
Packit Service 384592
		status => qr/^200$/,
Packit Service 384592
	},
Packit Service 384592
	request => new HTTP::Request(
Packit Service 384592
		GET => "http://$ENV{SERVER_NAME}:$ENV{SERVER_PORT}/test.txt",
Packit Service 384592
	),
Packit Service 384592
},
Packit Service 384592
Packit Service 384592
# SecResponseBodyLimit
Packit Service 384592
{
Packit Service 384592
	type => "config",
Packit Service 384592
	comment => "SecResponseBodyLimit (equal)",
Packit Service 384592
	conf => qq(
Packit Service 384592
		SecRuleEngine On
Packit Service 384592
		SecResponseBodyAccess On
Packit Service 384592
		SecResponseBodyMimeType text/plain null
Packit Service 384592
		SecResponseBodyLimit 8192
Packit Service 384592
	),
Packit Service 384592
	match_log => {
Packit Service 384592
		-error => [ qr/Content-Length \(\d+\) over the limit/, 1 ],
Packit Service 384592
	},
Packit Service 384592
	match_response => {
Packit Service 384592
		status => qr/^200$/,
Packit Service 384592
	},
Packit Service 384592
	request => new HTTP::Request(
Packit Service 384592
		GET => "http://$ENV{SERVER_NAME}:$ENV{SERVER_PORT}/8k.txt",
Packit Service 384592
	),
Packit Service 384592
},
Packit Service 384592
{
Packit Service 384592
	type => "config",
Packit Service 384592
	comment => "SecResponseBodyLimit (less)",
Packit Service 384592
	conf => qq(
Packit Service 384592
		SecRuleEngine On
Packit Service 384592
		SecResponseBodyAccess On
Packit Service 384592
		SecResponseBodyMimeType text/plain null
Packit Service 384592
		SecResponseBodyLimit 9000
Packit Service 384592
	),
Packit Service 384592
	match_log => {
Packit Service 384592
		-error => [ qr/Content-Length \(\d+\) over the limit/, 1 ],
Packit Service 384592
	},
Packit Service 384592
	match_response => {
Packit Service 384592
		status => qr/^200$/,
Packit Service 384592
	},
Packit Service 384592
	request => new HTTP::Request(
Packit Service 384592
		GET => "http://$ENV{SERVER_NAME}:$ENV{SERVER_PORT}/8k.txt",
Packit Service 384592
	),
Packit Service 384592
},
Packit Service 384592
{
Packit Service 384592
	type => "config",
Packit Service 384592
	comment => "SecResponseBodyLimit (greater)",
Packit Service 384592
	conf => qq(
Packit Service 384592
		SecRuleEngine On
Packit Service 384592
		SecResponseBodyAccess On
Packit Service 384592
		SecResponseBodyMimeType text/plain null
Packit Service 384592
		SecResponseBodyLimit 8000
Packit Service 384592
	),
Packit Service 384592
	match_log => {
Packit Service 384592
		error => [ qr/Content-Length \(\d+\) over the limit \(8000\)\./, 1 ],
Packit Service 384592
	},
Packit Service 384592
	match_response => {
Packit Service 384592
		status => qr/^500$/,
Packit Service 384592
	},
Packit Service 384592
	request => new HTTP::Request(
Packit Service 384592
		GET => "http://$ENV{SERVER_NAME}:$ENV{SERVER_PORT}/8k.txt",
Packit Service 384592
	),
Packit Service 384592
},
Packit Service 384592
Packit Service 384592
# ResponseBodyLimitAction
Packit Service 384592
{
Packit Service 384592
	type => "config",
Packit Service 384592
	comment => "SecResponseBodyLimitAction Reject",
Packit Service 384592
	conf => qq(
Packit Service 384592
		SecRuleEngine On
Packit Service 384592
		SecResponseBodyAccess On
Packit Service 384592
		SecResponseBodyMimeType text/plain null
Packit Service 384592
		SecResponseBodyLimit 5
Packit Service 384592
		SecResponseBodyLimitAction Reject
Packit Service 384592
	),
Packit Service 384592
	match_log => {
Packit Service 384592
		error => [ qr/Content-Length \(\d+\) over the limit \(5\)\./, 1 ],
Packit Service 384592
	},
Packit Service 384592
	match_response => {
Packit Service 384592
		status => qr/^500$/,
Packit Service 384592
	},
Packit Service 384592
	request => new HTTP::Request(
Packit Service 384592
		GET => "http://$ENV{SERVER_NAME}:$ENV{SERVER_PORT}/8k.txt",
Packit Service 384592
	),
Packit Service 384592
},
Packit Service 384592
{
Packit Service 384592
	type => "config",
Packit Service 384592
	comment => "SecResponseBodyLimitAction ProcessPartial",
Packit Service 384592
	conf => qq(
Packit Service 384592
		SecRuleEngine On
Packit Service 384592
		SecResponseBodyAccess On
Packit Service 384592
		SecResponseBodyMimeType text/plain null
Packit Service 384592
		SecResponseBodyLimit 5
Packit Service 384592
		SecDebugLog $ENV{DEBUG_LOG}
Packit Service 384592
		SecDebugLogLevel 4
Packit Service 384592
		SecResponseBodyLimitAction ProcessPartial
Packit Service 384592
	),
Packit Service 384592
	match_log => {
Packit Service 384592
		-error => [ qr/Content-Length \(\d+\) over the limit/, 1 ],
Packit Service 384592
		debug => [ qr/Processing partial response body \(limit 5\)/, 1 ],
Packit Service 384592
	},
Packit Service 384592
	match_response => {
Packit Service 384592
		status => qr/^200$/,
Packit Service 384592
	},
Packit Service 384592
	request => new HTTP::Request(
Packit Service 384592
		GET => "http://$ENV{SERVER_NAME}:$ENV{SERVER_PORT}/8k.txt",
Packit Service 384592
	),
Packit Service 384592
},