diff options
author | gjoranv <gv@yahoo-inc.com> | 2017-03-08 16:17:36 +0100 |
---|---|---|
committer | gjoranv <gv@yahoo-inc.com> | 2017-03-09 01:29:42 +0100 |
commit | 44ef733850e75905bd2a6b16485954d4b7b3f15a (patch) | |
tree | a9b58d87b1c3d46ba2d07f74315f8a305e63cb29 /jdisc_http_service/src/main/java/com/yahoo/jdisc/http/filter/SecurityResponseFilterChain.java | |
parent | 0b3c8ffaedd710f028e2e018f436f5b79b4fd633 (diff) |
Allow retrieving headers from response filters, via RequestView.
Diffstat (limited to 'jdisc_http_service/src/main/java/com/yahoo/jdisc/http/filter/SecurityResponseFilterChain.java')
-rw-r--r-- | jdisc_http_service/src/main/java/com/yahoo/jdisc/http/filter/SecurityResponseFilterChain.java | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/jdisc_http_service/src/main/java/com/yahoo/jdisc/http/filter/SecurityResponseFilterChain.java b/jdisc_http_service/src/main/java/com/yahoo/jdisc/http/filter/SecurityResponseFilterChain.java index ae4ea34e45c..ae03f5fcb59 100644 --- a/jdisc_http_service/src/main/java/com/yahoo/jdisc/http/filter/SecurityResponseFilterChain.java +++ b/jdisc_http_service/src/main/java/com/yahoo/jdisc/http/filter/SecurityResponseFilterChain.java @@ -14,6 +14,8 @@ import com.yahoo.jdisc.Response; import com.yahoo.jdisc.http.HttpRequest; import com.yahoo.jdisc.http.HttpResponse; +import javax.annotation.Nonnull; + /** * Implementation of TypedFilterChain for DiscFilterResponse * @author tejalk @@ -58,7 +60,7 @@ public class SecurityResponseFilterChain extends AbstractResource implements Res return Collections.unmodifiableList(filters); } - private static class RequestViewImpl implements RequestView { + static class RequestViewImpl implements RequestView { private final Request request; private final Optional<HttpRequest.Method> method; @@ -75,6 +77,17 @@ public class SecurityResponseFilterChain extends AbstractResource implements Res return request.context().get(name); } + @Nonnull @Override + public List<String> getHeaders(String name) { + List<String> headers = request.headers().get(name); + return headers == null ? Collections.emptyList() : Collections.unmodifiableList(headers); + } + + @Override + public Optional<String> getFirstHeader(String name) { + return getHeaders(name).stream().findFirst(); + } + @Override public Optional<HttpRequest.Method> getMethod() { return method; |