kopia lustrzana https://github.com/gaul/s3proxy
Validate methods against supported ones
rodzic
19c4b0a18d
commit
a82eb88f12
|
@ -26,6 +26,7 @@ import java.util.regex.Pattern;
|
|||
import com.google.common.base.Joiner;
|
||||
import com.google.common.base.Splitter;
|
||||
import com.google.common.base.Strings;
|
||||
import com.google.common.collect.ImmutableList;
|
||||
import com.google.common.collect.ImmutableSet;
|
||||
import com.google.common.collect.Lists;
|
||||
|
||||
|
@ -33,6 +34,9 @@ import org.slf4j.Logger;
|
|||
import org.slf4j.LoggerFactory;
|
||||
|
||||
final class CrossOriginResourceSharing {
|
||||
public static final Collection<String> SUPPORTED_METHODS =
|
||||
ImmutableList.of("GET", "PUT", "POST", "HEAD");
|
||||
|
||||
private static final String HEADER_VALUE_SEPARATOR = ", ";
|
||||
private static final String ALLOW_ANY_HEADER = "*";
|
||||
|
||||
|
@ -47,7 +51,7 @@ final class CrossOriginResourceSharing {
|
|||
|
||||
protected CrossOriginResourceSharing() {
|
||||
// CORS Allow all
|
||||
this(Lists.newArrayList(".*"), Lists.newArrayList("GET", "PUT", "POST"),
|
||||
this(Lists.newArrayList(".*"), SUPPORTED_METHODS,
|
||||
Lists.newArrayList(ALLOW_ANY_HEADER));
|
||||
}
|
||||
|
||||
|
|
|
@ -22,9 +22,11 @@ import static com.google.common.base.Preconditions.checkArgument;
|
|||
|
||||
import java.net.URI;
|
||||
import java.net.URISyntaxException;
|
||||
import java.util.Collection;
|
||||
import java.util.Objects;
|
||||
import java.util.Properties;
|
||||
|
||||
import com.google.common.base.Joiner;
|
||||
import com.google.common.base.Splitter;
|
||||
import com.google.common.base.Strings;
|
||||
import com.google.common.collect.Lists;
|
||||
|
@ -256,6 +258,18 @@ public final class S3Proxy {
|
|||
Splitter splitter = Splitter.on(" ").trimResults()
|
||||
.omitEmptyStrings();
|
||||
|
||||
//Validate configured methods
|
||||
Collection<String> allowedMethods = Lists.newArrayList(
|
||||
splitter.split(corsAllowMethods));
|
||||
allowedMethods.removeAll(
|
||||
CrossOriginResourceSharing.SUPPORTED_METHODS);
|
||||
if (!allowedMethods.isEmpty()) {
|
||||
throw new IllegalArgumentException(
|
||||
S3ProxyConstants.PROPERTY_CORS_ALLOW_METHODS +
|
||||
" contains not supported values: " + Joiner.on(" ")
|
||||
.join(allowedMethods));
|
||||
}
|
||||
|
||||
builder.corsRules(new CrossOriginResourceSharing(
|
||||
Lists.newArrayList(splitter.split(corsAllowOrigins)),
|
||||
Lists.newArrayList(splitter.split(corsAllowMethods)),
|
||||
|
|
Ładowanie…
Reference in New Issue