You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@struts.apache.org by lu...@apache.org on 2014/05/14 08:27:53 UTC
[42/50] [abbrv] git commit: Uses newly defined Struts bean instead
duplicating logic
Uses newly defined Struts bean instead duplicating logic
Project: http://git-wip-us.apache.org/repos/asf/struts/repo
Commit: http://git-wip-us.apache.org/repos/asf/struts/commit/735fd961
Tree: http://git-wip-us.apache.org/repos/asf/struts/tree/735fd961
Diff: http://git-wip-us.apache.org/repos/asf/struts/diff/735fd961
Branch: refs/heads/feature/exclude-object-class
Commit: 735fd96114413181defb17cd49aa75da232a7040
Parents: 9884c49
Author: Lukasz Lenart <lu...@apache.org>
Authored: Mon May 12 08:27:30 2014 +0200
Committer: Lukasz Lenart <lu...@apache.org>
Committed: Mon May 12 08:27:30 2014 +0200
----------------------------------------------------------------------
.../struts2/interceptor/CookieInterceptor.java | 49 ++++++++------------
.../interceptor/CookieInterceptorTest.java | 11 +++++
2 files changed, 30 insertions(+), 30 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/struts/blob/735fd961/core/src/main/java/org/apache/struts2/interceptor/CookieInterceptor.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/struts2/interceptor/CookieInterceptor.java b/core/src/main/java/org/apache/struts2/interceptor/CookieInterceptor.java
index 340b57f..8998c5c 100644
--- a/core/src/main/java/org/apache/struts2/interceptor/CookieInterceptor.java
+++ b/core/src/main/java/org/apache/struts2/interceptor/CookieInterceptor.java
@@ -23,17 +23,18 @@ package org.apache.struts2.interceptor;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionInvocation;
+import com.opensymphony.xwork2.inject.Inject;
import com.opensymphony.xwork2.interceptor.AbstractInterceptor;
-import com.opensymphony.xwork2.ExcludedPatterns;
+import com.opensymphony.xwork2.ExcludedPatternsChecker;
import com.opensymphony.xwork2.util.TextParseUtil;
import com.opensymphony.xwork2.util.ValueStack;
import com.opensymphony.xwork2.util.logging.Logger;
import com.opensymphony.xwork2.util.logging.LoggerFactory;
import org.apache.struts2.ServletActionContext;
+import org.apache.struts2.StrutsConstants;
import javax.servlet.http.Cookie;
import java.util.Collections;
-import java.util.HashSet;
import java.util.LinkedHashMap;
import java.util.Map;
import java.util.Set;
@@ -176,12 +177,12 @@ public class CookieInterceptor extends AbstractInterceptor {
// Allowed names of cookies
private Pattern acceptedPattern = Pattern.compile(ACCEPTED_PATTERN, Pattern.CASE_INSENSITIVE);
- private Set<Pattern> excludedPatterns = new HashSet<Pattern>();
- public CookieInterceptor() {
- for (String pattern : ExcludedPatterns.EXCLUDED_PATTERNS) {
- excludedPatterns.add(Pattern.compile(pattern, Pattern.CASE_INSENSITIVE));
- }
+ private ExcludedPatternsChecker excludedPatternsChecker;
+
+ @Inject(StrutsConstants.STRUTS_EXCLUDED_PATTERNS_CHECKER)
+ public void setExcludedPatternsChecker(ExcludedPatternsChecker excludedPatternsChecker) {
+ this.excludedPatternsChecker = excludedPatternsChecker;
}
/**
@@ -260,16 +261,7 @@ public class CookieInterceptor extends AbstractInterceptor {
* @return true|false
*/
protected boolean isAcceptableValue(String value) {
- for (Pattern excludedPattern : excludedPatterns) {
- boolean matches = !excludedPattern.matcher(value).matches();
- if (!matches) {
- if (LOG.isTraceEnabled()) {
- LOG.trace("Cookie value [#0] matches excludedPattern [#1]", value, excludedPattern.toString());
- }
- return false;
- }
- }
- return true;
+ return !isExcluded(value) && isAccepted(value);
}
/**
@@ -283,7 +275,7 @@ public class CookieInterceptor extends AbstractInterceptor {
}
/**
- * Checks if name of Cookie match {@link #acceptedPattern}
+ * Checks if name/value of Cookie is acceptable
*
* @param name of Cookie
* @return true|false
@@ -303,24 +295,21 @@ public class CookieInterceptor extends AbstractInterceptor {
}
/**
- * Checks if name of Cookie match {@link #excludedPatterns}
+ * Checks if name/value of Cookie is excluded
*
* @param name of Cookie
* @return true|false
*/
protected boolean isExcluded(String name) {
- for (Pattern excludedPattern : excludedPatterns) {
- boolean matches = excludedPattern.matcher(name).matches();
- if (matches) {
- if (LOG.isTraceEnabled()) {
- LOG.trace("Cookie [#0] matches excludedPattern [#1]", name, excludedPattern.toString());
- }
- return true;
- } else {
- if (LOG.isTraceEnabled()) {
- LOG.trace("Cookie [#0] doesn't match excludedPattern [#1]", name, excludedPattern.toString());
- }
+ ExcludedPatternsChecker.IsExcluded excluded = excludedPatternsChecker.isExcluded(name);
+ if (excluded.isExcluded()) {
+ if (LOG.isTraceEnabled()) {
+ LOG.trace("Cookie [#0] matches excludedPattern [#1]", name, excluded.getExcludedPattern());
}
+ return true;
+ }
+ if (LOG.isTraceEnabled()) {
+ LOG.trace("Cookie [#0] doesn't match excludedPattern [#1]", name, excluded.getExcludedPattern());
}
return false;
}
http://git-wip-us.apache.org/repos/asf/struts/blob/735fd961/core/src/test/java/org/apache/struts2/interceptor/CookieInterceptorTest.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/org/apache/struts2/interceptor/CookieInterceptorTest.java b/core/src/test/java/org/apache/struts2/interceptor/CookieInterceptorTest.java
index 99ba151..2bbaef9 100644
--- a/core/src/test/java/org/apache/struts2/interceptor/CookieInterceptorTest.java
+++ b/core/src/test/java/org/apache/struts2/interceptor/CookieInterceptorTest.java
@@ -27,6 +27,7 @@ import java.util.Map;
import javax.servlet.http.Cookie;
+import com.opensymphony.xwork2.ExcludedPatternsChecker;
import com.opensymphony.xwork2.mock.MockActionInvocation;
import org.easymock.MockControl;
import org.springframework.mock.web.MockHttpServletRequest;
@@ -65,6 +66,8 @@ public class CookieInterceptorTest extends StrutsInternalTestCase {
// by default the interceptor doesn't accept any cookies
CookieInterceptor interceptor = new CookieInterceptor();
+ interceptor.setExcludedPatternsChecker(new ExcludedPatternsChecker());
+
interceptor.intercept(invocation);
assertTrue(action.getCookiesMap().isEmpty());
@@ -99,6 +102,7 @@ public class CookieInterceptorTest extends StrutsInternalTestCase {
actionInvocationControl.replay();
CookieInterceptor interceptor = new CookieInterceptor();
+ interceptor.setExcludedPatternsChecker(new ExcludedPatternsChecker());
interceptor.setCookiesName("*");
interceptor.setCookiesValue("*");
interceptor.intercept(invocation);
@@ -140,6 +144,7 @@ public class CookieInterceptorTest extends StrutsInternalTestCase {
actionInvocationControl.replay();
CookieInterceptor interceptor = new CookieInterceptor();
+ interceptor.setExcludedPatternsChecker(new ExcludedPatternsChecker());
interceptor.setCookiesName("cookie1, cookie2, cookie3");
interceptor.setCookiesValue("cookie1value, cookie2value, cookie3value");
interceptor.intercept(invocation);
@@ -180,6 +185,7 @@ public class CookieInterceptorTest extends StrutsInternalTestCase {
actionInvocationControl.replay();
CookieInterceptor interceptor = new CookieInterceptor();
+ interceptor.setExcludedPatternsChecker(new ExcludedPatternsChecker());
interceptor.setCookiesName("cookie1, cookie3");
interceptor.setCookiesValue("cookie1value, cookie2value, cookie3value");
interceptor.intercept(invocation);
@@ -220,6 +226,7 @@ public class CookieInterceptorTest extends StrutsInternalTestCase {
actionInvocationControl.replay();
CookieInterceptor interceptor = new CookieInterceptor();
+ interceptor.setExcludedPatternsChecker(new ExcludedPatternsChecker());
interceptor.setCookiesName("cookie1, cookie3");
interceptor.setCookiesValue("*");
interceptor.intercept(invocation);
@@ -260,6 +267,7 @@ public class CookieInterceptorTest extends StrutsInternalTestCase {
actionInvocationControl.replay();
CookieInterceptor interceptor = new CookieInterceptor();
+ interceptor.setExcludedPatternsChecker(new ExcludedPatternsChecker());
interceptor.setCookiesName("cookie1, cookie3");
interceptor.setCookiesValue("");
interceptor.intercept(invocation);
@@ -301,6 +309,7 @@ public class CookieInterceptorTest extends StrutsInternalTestCase {
actionInvocationControl.replay();
CookieInterceptor interceptor = new CookieInterceptor();
+ interceptor.setExcludedPatternsChecker(new ExcludedPatternsChecker());
interceptor.setCookiesName("cookie1, cookie3");
interceptor.setCookiesValue("cookie1value");
interceptor.intercept(invocation);
@@ -361,6 +370,7 @@ public class CookieInterceptorTest extends StrutsInternalTestCase {
return accepted;
}
};
+ interceptor.setExcludedPatternsChecker(new ExcludedPatternsChecker());
interceptor.setCookiesName("*");
MockActionInvocation invocation = new MockActionInvocation();
@@ -420,6 +430,7 @@ public class CookieInterceptorTest extends StrutsInternalTestCase {
return accepted;
}
};
+ interceptor.setExcludedPatternsChecker(new ExcludedPatternsChecker());
interceptor.setCookiesName("*");
MockActionInvocation invocation = new MockActionInvocation();