You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@knox.apache.org by su...@apache.org on 2016/10/17 16:03:52 UTC
knox git commit: KNOX-754 scope change to just the Location header
Repository: knox
Updated Branches:
refs/heads/master febf20c05 -> 2d77f09f8
KNOX-754 scope change to just the Location header
Project: http://git-wip-us.apache.org/repos/asf/knox/repo
Commit: http://git-wip-us.apache.org/repos/asf/knox/commit/2d77f09f
Tree: http://git-wip-us.apache.org/repos/asf/knox/tree/2d77f09f
Diff: http://git-wip-us.apache.org/repos/asf/knox/diff/2d77f09f
Branch: refs/heads/master
Commit: 2d77f09f86134f4b665a7bbae2d7c04461e114fc
Parents: febf20c
Author: Sumit Gupta <su...@apache.org>
Authored: Mon Oct 17 12:03:15 2016 -0400
Committer: Sumit Gupta <su...@apache.org>
Committed: Mon Oct 17 12:03:15 2016 -0400
----------------------------------------------------------------------
.../filter/rewrite/impl/UrlRewriteResponse.java | 19 +++++++++++++++----
1 file changed, 15 insertions(+), 4 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/knox/blob/2d77f09f/gateway-provider-rewrite/src/main/java/org/apache/hadoop/gateway/filter/rewrite/impl/UrlRewriteResponse.java
----------------------------------------------------------------------
diff --git a/gateway-provider-rewrite/src/main/java/org/apache/hadoop/gateway/filter/rewrite/impl/UrlRewriteResponse.java b/gateway-provider-rewrite/src/main/java/org/apache/hadoop/gateway/filter/rewrite/impl/UrlRewriteResponse.java
index 2c9c70d..182efda 100644
--- a/gateway-provider-rewrite/src/main/java/org/apache/hadoop/gateway/filter/rewrite/impl/UrlRewriteResponse.java
+++ b/gateway-provider-rewrite/src/main/java/org/apache/hadoop/gateway/filter/rewrite/impl/UrlRewriteResponse.java
@@ -112,12 +112,16 @@ public class UrlRewriteResponse extends GatewayResponseWrapper implements Params
return IGNORE_HEADER_NAMES.contains( name );
}
- private String rewriteValue( String value, String rule ) {
+ private String rewriteValue(String value, String rule, boolean encode ) {
try {
Template input = Parser.parseLiteral( value );
Template output = rewriter.rewrite( this, input, UrlRewriter.Direction.OUT, rule );
if( output != null ) {
- value = output.toEncodedString();
+ if (encode) {
+ value = output.toEncodedString();
+ } else {
+ value = output.getPattern();
+ }
}
} catch( URISyntaxException e ) {
LOG.failedToParseValueForUrlRewrite( value );
@@ -129,7 +133,7 @@ public class UrlRewriteResponse extends GatewayResponseWrapper implements Params
@Override
public void setHeader( String name, String value ) {
if( !ignoreHeader( name) ) {
- value = rewriteValue( value, pickFirstRuleWithEqualsIgnoreCasePathMatch( headersFilterConfig, name ) );
+ value = rewriteValue( value, pickFirstRuleWithEqualsIgnoreCasePathMatch( headersFilterConfig, name ), needsEncoding(name) );
super.setHeader( name, value );
}
}
@@ -139,11 +143,18 @@ public class UrlRewriteResponse extends GatewayResponseWrapper implements Params
public void addHeader( String name, String value ) {
if( !ignoreHeader( name ) ) {
String rule = pickFirstRuleWithEqualsIgnoreCasePathMatch( headersFilterConfig, name );
- value = rewriteValue( value, rule );
+ value = rewriteValue( value, rule, needsEncoding(name) );
super.addHeader( name, value );
}
}
+ private boolean needsEncoding( String name ) {
+ if ( name.equalsIgnoreCase("Location") ) {
+ return true;
+ }
+ return false;
+ }
+
@Override
public OutputStream getRawOutputStream() throws IOException {
return response.getOutputStream();