Skip to content

Commit

Permalink
Pass through CORS response headers from proxy target when stub CORS i…
Browse files Browse the repository at this point in the history
…s disabled (wiremock#1543)
  • Loading branch information
jakovrr committed Feb 25, 2022
1 parent 66dfbb4 commit 2d10f94
Show file tree
Hide file tree
Showing 3 changed files with 10 additions and 5 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -175,7 +175,8 @@ public StubRequestHandler buildStubRequestHandler() {
options.proxyHostHeader(),
globalSettingsHolder,
browserProxySettings.trustAllProxyTargets(),
browserProxySettings.trustedProxyTargets()),
browserProxySettings.trustedProxyTargets(),
options.getStubCorsEnabled()),
ImmutableList.copyOf(options.extensionsOfType(ResponseTransformer.class).values())),
this,
postServeActions,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -62,6 +62,7 @@ public class ProxyResponseRenderer implements ResponseRenderer {
private final boolean preserveHostHeader;
private final String hostHeaderValue;
private final GlobalSettingsHolder globalSettingsHolder;
private final boolean stubCorsEnabled;

public ProxyResponseRenderer(
ProxySettings proxySettings,
Expand All @@ -70,7 +71,8 @@ public ProxyResponseRenderer(
String hostHeaderValue,
GlobalSettingsHolder globalSettingsHolder,
boolean trustAllProxyTargets,
List<String> trustedProxyTargets) {
List<String> trustedProxyTargets,
boolean stubCorsEnabled) {
this.globalSettingsHolder = globalSettingsHolder;
reverseProxyClient =
HttpClientFactory.createClient(
Expand All @@ -93,6 +95,7 @@ public ProxyResponseRenderer(

this.preserveHostHeader = preserveHostHeader;
this.hostHeaderValue = hostHeaderValue;
this.stubCorsEnabled = stubCorsEnabled;
}

@Override
Expand Down Expand Up @@ -204,10 +207,10 @@ private static boolean requestHeaderShouldBeTransferred(String key) {
return !FORBIDDEN_REQUEST_HEADERS.contains(key.toLowerCase());
}

private static boolean responseHeaderShouldBeTransferred(String key) {
private boolean responseHeaderShouldBeTransferred(String key) {
final String lowerCaseKey = key.toLowerCase();
return !FORBIDDEN_RESPONSE_HEADERS.contains(lowerCaseKey)
&& !lowerCaseKey.startsWith("access-control");
&& !(stubCorsEnabled && lowerCaseKey.startsWith("access-control"));
}

private static void addBodyIfPostPutOrPatch(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -174,7 +174,8 @@ private ProxyResponseRenderer buildProxyResponseRenderer(boolean trustAllProxyTa
/* hostHeaderValue = */ null,
new GlobalSettingsHolder(),
trustAllProxyTargets,
Collections.<String>emptyList());
Collections.<String>emptyList(),
false);
}

// Just exists to make the compiler happy by having the throws clause
Expand Down

0 comments on commit 2d10f94

Please sign in to comment.