Skip to content

Commit cbcd1a6

Browse files
committed
Skip checking infinite redirect rules for Regex path values
1 parent 4ec1086 commit cbcd1a6

File tree

2 files changed

+36
-0
lines changed

2 files changed

+36
-0
lines changed

pkg/ingress/rule_optimizer.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -98,6 +98,10 @@ func isInfiniteRedirectRule(port int32, protocol elbv2model.Protocol, rule Rule)
9898
case condition.Field == elbv2model.RuleConditionFieldHostHeader && condition.HostHeaderConfig != nil:
9999
ruleHosts.Insert(condition.HostHeaderConfig.Values...)
100100
case condition.Field == elbv2model.RuleConditionFieldPathPattern && condition.PathPatternConfig != nil:
101+
// We dont check for infinite rules for regex paths
102+
if len(condition.PathPatternConfig.RegexValues) > 0 {
103+
return false
104+
}
101105
rulePaths.Insert(condition.PathPatternConfig.Values...)
102106
}
103107
}

pkg/ingress/rule_optimizer_test.go

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1285,6 +1285,38 @@ func Test_isInfiniteRedirectRule(t *testing.T) {
12851285
},
12861286
want: true,
12871287
},
1288+
{
1289+
name: "isnt infinite redirect rule when for regex paths",
1290+
args: args{
1291+
port: 443,
1292+
protocol: elbv2model.ProtocolHTTPS,
1293+
rule: Rule{
1294+
Conditions: []elbv2model.RuleCondition{
1295+
{
1296+
Field: elbv2model.RuleConditionFieldHostHeader,
1297+
HostHeaderConfig: &elbv2model.HostHeaderConditionConfig{
1298+
Values: []string{"www.example.com", "app.example.com"},
1299+
},
1300+
},
1301+
{
1302+
Field: elbv2model.RuleConditionFieldPathPattern,
1303+
PathPatternConfig: &elbv2model.PathPatternConditionConfig{
1304+
RegexValues: []string{"^/specific/path$"},
1305+
},
1306+
},
1307+
},
1308+
Actions: []elbv2model.Action{
1309+
{
1310+
Type: elbv2model.ActionTypeRedirect,
1311+
RedirectConfig: &elbv2model.RedirectActionConfig{
1312+
StatusCode: "HTTP_301",
1313+
},
1314+
},
1315+
},
1316+
},
1317+
},
1318+
want: false,
1319+
},
12881320
{
12891321
name: "is infinite redirect rule when all fields are set to default value",
12901322
args: args{

0 commit comments

Comments
 (0)