[java-support] branch master updated: Add activation condition to SameSite filter.
Scott Cantor
cantor.2 at osu.edu
Mon Dec 23 10:42:50 EST 2019
This is an automated email from the git hooks/post-receive script.
scantor pushed a commit to branch master
in repository java-support.
View the commit online:
http://git.shibboleth.net/view/?p=java-support.git;a=commit;h=552e63072e1169f573ebea437b8e28f3feb1009c
The following commit(s) were added to refs/heads/master by this push:
new 552e630 Add activation condition to SameSite filter.
552e630 is described below
commit 552e63072e1169f573ebea437b8e28f3feb1009c
Author: Scott Cantor <cantor.2 at osu.edu>
AuthorDate: Mon Dec 23 10:42:47 2019 -0500
Add activation condition to SameSite filter.
---
.../support/net/SameSiteCookieHeaderFilter.java | 23 ++++++++++++++++++++++
1 file changed, 23 insertions(+)
diff --git a/src/main/java/net/shibboleth/utilities/java/support/net/SameSiteCookieHeaderFilter.java b/src/main/java/net/shibboleth/utilities/java/support/net/SameSiteCookieHeaderFilter.java
index 2bf2738..57cecc7 100644
--- a/src/main/java/net/shibboleth/utilities/java/support/net/SameSiteCookieHeaderFilter.java
+++ b/src/main/java/net/shibboleth/utilities/java/support/net/SameSiteCookieHeaderFilter.java
@@ -25,6 +25,7 @@ import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
+import java.util.function.Predicate;
import javax.annotation.Nonnull;
import javax.annotation.Nullable;
@@ -41,6 +42,7 @@ import javax.servlet.http.HttpServletResponseWrapper;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import com.google.common.base.Predicates;
import com.google.common.net.HttpHeaders;
import net.shibboleth.utilities.java.support.annotation.constraint.NonnullElements;
@@ -116,6 +118,9 @@ public class SameSiteCookieHeaderFilter implements Filter {
}
}
+
+ /** Condition on filter running. */
+ @Nonnull private Predicate<ServletRequest> activationCondition;
/** Optional default value to apply. */
@Nullable private SameSiteValue defaultValue;
@@ -126,6 +131,18 @@ public class SameSiteCookieHeaderFilter implements Filter {
/** Constructor. */
public SameSiteCookieHeaderFilter() {
sameSiteCookies = Collections.emptyMap();
+ activationCondition = Predicates.alwaysTrue();
+ }
+
+ /**
+ * Set a condition on execution of the filter.
+ *
+ * <p>This is typically for conditional User-Agent detection to deal with the Apple bug.</p>
+ *
+ * @param condition condition to set
+ */
+ public void setActivationCondition(@Nonnull final Predicate<ServletRequest> condition) {
+ activationCondition = Constraint.isNotNull(condition, "Activation condition cannot be null");
}
/**
@@ -182,6 +199,12 @@ public class SameSiteCookieHeaderFilter implements Filter {
public void doFilter(final ServletRequest request, final ServletResponse response, final FilterChain chain)
throws IOException, ServletException {
+ if (!activationCondition.test(request)) {
+ log.trace("Filter not active for request");
+ chain.doFilter(request, response);
+ return;
+ }
+
if (!(response instanceof HttpServletResponse)) {
throw new ServletException("Response is not an instance of HttpServletResponse");
}
--
To stop receiving notification emails like this one, please contact
the administrator of this repository.
More information about the commits
mailing list