|
|
|
@ -1,5 +1,5 @@ |
|
|
|
/* |
|
|
|
/* |
|
|
|
* Copyright 2012-2023 the original author or authors. |
|
|
|
* Copyright 2012-2024 the original author or authors. |
|
|
|
* |
|
|
|
* |
|
|
|
* Licensed under the Apache License, Version 2.0 (the "License"); |
|
|
|
* Licensed under the Apache License, Version 2.0 (the "License"); |
|
|
|
* you may not use this file except in compliance with the License. |
|
|
|
* you may not use this file except in compliance with the License. |
|
|
|
@ -130,9 +130,13 @@ public class StrictHttpFirewall implements HttpFirewall { |
|
|
|
private static final Predicate<String> ASSIGNED_AND_NOT_ISO_CONTROL_PREDICATE = ( |
|
|
|
private static final Predicate<String> ASSIGNED_AND_NOT_ISO_CONTROL_PREDICATE = ( |
|
|
|
s) -> ASSIGNED_AND_NOT_ISO_CONTROL_PATTERN.matcher(s).matches(); |
|
|
|
s) -> ASSIGNED_AND_NOT_ISO_CONTROL_PATTERN.matcher(s).matches(); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private static final Pattern HEADER_VALUE_PATTERN = Pattern.compile("[\\p{IsAssigned}&&[[^\\p{IsControl}]||\\t]]*"); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private static final Predicate<String> HEADER_VALUE_PREDICATE = (s) -> HEADER_VALUE_PATTERN.matcher(s).matches(); |
|
|
|
|
|
|
|
|
|
|
|
private Predicate<String> allowedHeaderNames = ASSIGNED_AND_NOT_ISO_CONTROL_PREDICATE; |
|
|
|
private Predicate<String> allowedHeaderNames = ASSIGNED_AND_NOT_ISO_CONTROL_PREDICATE; |
|
|
|
|
|
|
|
|
|
|
|
private Predicate<String> allowedHeaderValues = ASSIGNED_AND_NOT_ISO_CONTROL_PREDICATE; |
|
|
|
private Predicate<String> allowedHeaderValues = HEADER_VALUE_PREDICATE; |
|
|
|
|
|
|
|
|
|
|
|
private Predicate<String> allowedParameterNames = ASSIGNED_AND_NOT_ISO_CONTROL_PREDICATE; |
|
|
|
private Predicate<String> allowedParameterNames = ASSIGNED_AND_NOT_ISO_CONTROL_PREDICATE; |
|
|
|
|
|
|
|
|
|
|
|
|