[java-identity-provider] 06/10: IDP-1429 Deprecate ignoreCase for StringPolicyRule

Rod Widdowson rdw at steadingsoftware.com
Thu Apr 11 08:59:58 EDT 2019


This is an automated email from the git hooks/post-receive script.

rdw pushed a commit to branch master
in repository java-identity-provider.

View the commit online:
http://git.shibboleth.net/view/?p=java-identity-provider.git;a=commit;h=c6972312190e6e5a97af803910d48ff8e2847c13

commit c6972312190e6e5a97af803910d48ff8e2847c13
Author: Rod Widdowson <rdw at steadingsoftware.com>
AuthorDate: Wed Apr 10 11:17:38 2019 +0100

    IDP-1429 Deprecate ignoreCase for StringPolicyRule
    
    https://issues.shibboleth.net/jira/browse/IDP-1429
    
    replacement is caseSensitive
---
 .../impl/ProxiedRequesterPolicyRule.java           |  8 ++--
 .../policyrule/impl/AbstractStringPolicyRule.java  | 46 ++++++++++++++++------
 .../impl/AttributeIssuerPolicyRuleTest.java        | 14 ++++++-
 .../impl/AttributeRequesterPolicyRuleTest.java     |  4 +-
 .../impl/PrincipalNamePolicyRuleTest.java          |  4 +-
 .../impl/ProxiedRequesterPolicyRuleTest.java       |  4 +-
 6 files changed, 57 insertions(+), 23 deletions(-)

diff --git a/idp-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/filtercontext/impl/ProxiedRequesterPolicyRule.java b/idp-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/filtercontext/impl/ProxiedRequesterPolicyRule.java
index da7ada5..f69636c 100644
--- a/idp-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/filtercontext/impl/ProxiedRequesterPolicyRule.java
+++ b/idp-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/filtercontext/impl/ProxiedRequesterPolicyRule.java
@@ -53,16 +53,16 @@ public class ProxiedRequesterPolicyRule extends AbstractStringPolicyRule {
             return Tristate.FALSE;
         }
 
-        if (isIgnoreCase()) {
+        if (isCaseSensitive()) {
+            return ctx.getRequesters().contains(getMatchString()) ? Tristate.TRUE : Tristate.FALSE;
+        } else { 
             for (final String requester : ctx.getRequesters()) {
                 if (stringCompare(requester) == Tristate.TRUE) {
                     return Tristate.TRUE;
                 }
             }
             return Tristate.FALSE;
-        } else {
-            return ctx.getRequesters().contains(getMatchString()) ? Tristate.TRUE : Tristate.FALSE;
-        }
+        } 
     }
 
 }
\ No newline at end of file
diff --git a/idp-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/impl/AbstractStringPolicyRule.java b/idp-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/impl/AbstractStringPolicyRule.java
index 1ea2cd8..fa403ec 100644
--- a/idp-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/impl/AbstractStringPolicyRule.java
+++ b/idp-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/impl/AbstractStringPolicyRule.java
@@ -21,6 +21,8 @@ import javax.annotation.Nullable;
 
 import net.shibboleth.idp.attribute.filter.PolicyRequirementRule;
 import net.shibboleth.utilities.java.support.component.ComponentSupport;
+import net.shibboleth.utilities.java.support.primitive.DeprecationSupport;
+import net.shibboleth.utilities.java.support.primitive.DeprecationSupport.ObjectType;
 
 /**
  * General {@link PolicyRequirementRule} for {@link String} comparison of strings in Attribute Filters.   
@@ -31,7 +33,7 @@ public abstract class AbstractStringPolicyRule extends AbstractPolicyRule implem
     private String matchString;
 
     /** Whether the match evaluation is case sensitive. */
-    private boolean ignoreCase;
+    private boolean caseSensitive = true;
 
     /**
      * Gets the string to match for a positive evaluation.
@@ -52,21 +54,43 @@ public abstract class AbstractStringPolicyRule extends AbstractPolicyRule implem
     }
 
     /**
-     * Gets whether the match evaluation is case insensitive.
+     * Gets whether the policy evaluation is case insensitive.
      * 
-     * @return whether the match evaluation is case insensitive
+     * @return whether the policy evaluation is case insensitive
+     * @deprecated in V4: Use isCaseSensitive
      */
     public boolean isIgnoreCase() {
-        return ignoreCase;
+        DeprecationSupport.warnOnce(ObjectType.METHOD, "isIgnoreCase", null, "isCaseSensitive");
+        return !isCaseSensitive();
     }
 
     /**
-     * Sets whether the match evaluation is case sensitive.
+     * Sets whether the policy evaluation is case insensitive.
      * 
-     * @param isIgnoreCase whether the match evaluation is case sensitive
+     * @param isCaseInsensitive whether the policy evaluation is case insensitive
+     * @deprecated in V4: Use setCaseSensitive
      */
-    public void setIgnoreCase(final boolean isIgnoreCase) {
-        ignoreCase = isIgnoreCase;
+    public void setIgnoreCase(final boolean isCaseInsensitive) {
+        DeprecationSupport.warnOnce(ObjectType.METHOD, "setIgnoreCase", null, "setCaseSensitive");
+        setCaseSensitive(!isCaseInsensitive);
+    }
+    
+    /**
+     * Gets whether the policy evaluation is case sensitive.
+     * 
+     * @return whether the policy evaluation is case sensitive
+     */
+    public boolean isCaseSensitive() {
+        return caseSensitive;
+    }
+
+    /**
+     * Sets whether the policy evaluation is case sensitive.
+     * 
+     * @param isCaseSensitive whether the policy evaluation is case sensitive
+     */
+    public void setCaseSensitive(final boolean isCaseSensitive) {
+        caseSensitive = isCaseSensitive;
     }
 
     /**
@@ -82,10 +106,10 @@ public abstract class AbstractStringPolicyRule extends AbstractPolicyRule implem
         final boolean result;
         if (value == null) {
             result = matchString == null;
-        } else if (ignoreCase) {
-            result = value.equalsIgnoreCase(matchString);
+        } else if (isCaseSensitive()) {
+            result = value.equals(matchString);            
         } else {
-            result = value.equals(matchString);
+            result = value.equalsIgnoreCase(matchString);
         }
         if (result) {
             return Tristate.TRUE;
diff --git a/idp-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/policyrule/filtercontext/impl/AttributeIssuerPolicyRuleTest.java b/idp-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/policyrule/filtercontext/impl/AttributeIssuerPolicyRuleTest.java
index 8fae726..e81a94b 100644
--- a/idp-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/policyrule/filtercontext/impl/AttributeIssuerPolicyRuleTest.java
+++ b/idp-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/policyrule/filtercontext/impl/AttributeIssuerPolicyRuleTest.java
@@ -18,6 +18,8 @@
 package net.shibboleth.idp.attribute.filter.policyrule.filtercontext.impl;
 
 import static org.testng.Assert.assertEquals;
+import static org.testng.Assert.assertFalse;
+import static org.testng.Assert.assertTrue;
 import static org.testng.Assert.fail;
 
 import org.testng.annotations.Test;
@@ -36,10 +38,10 @@ public class AttributeIssuerPolicyRuleTest {
         return getMatcher(true);
     }
 
-    private AttributeIssuerPolicyRule getMatcher(boolean caseSensitive) throws ComponentInitializationException {
+    private AttributeIssuerPolicyRule getMatcher(final boolean caseSensitive) throws ComponentInitializationException {
         final AttributeIssuerPolicyRule matcher = new AttributeIssuerPolicyRule();
         matcher.setMatchString("issuer");
-        matcher.setIgnoreCase(!caseSensitive);
+        matcher.setCaseSensitive(caseSensitive);
         matcher.setId("Test");
         matcher.initialize();
         return matcher;
@@ -59,6 +61,13 @@ public class AttributeIssuerPolicyRuleTest {
             throws ComponentInitializationException {
         assertEquals(getMatcher().matches(DataSources.unPopulatedFilterContext()), Tristate.FAIL);
     }
+    
+    @SuppressWarnings("deprecation")
+    @Test public void testDefault() {
+        final AttributeIssuerPolicyRule matcher = new AttributeIssuerPolicyRule();
+        assertFalse(matcher.isIgnoreCase());
+        assertTrue(matcher.isCaseSensitive());
+    }
 
     @Test public void testNoIssuer()
             throws ComponentInitializationException {
@@ -68,6 +77,7 @@ public class AttributeIssuerPolicyRuleTest {
     @Test public void testCaseSensitive() throws ComponentInitializationException {
 
         final AttributeIssuerPolicyRule matcher = getMatcher();
+        assertTrue(matcher.isCaseSensitive());
 
         assertEquals(matcher.matches(DataSources.populatedFilterContext(null, "wibble", null)), Tristate.FALSE);
         assertEquals(matcher.matches(DataSources.populatedFilterContext(null, "ISSUER", null)), Tristate.FALSE);
diff --git a/idp-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/policyrule/filtercontext/impl/AttributeRequesterPolicyRuleTest.java b/idp-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/policyrule/filtercontext/impl/AttributeRequesterPolicyRuleTest.java
index 7f17eb5..3b548d3 100644
--- a/idp-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/policyrule/filtercontext/impl/AttributeRequesterPolicyRuleTest.java
+++ b/idp-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/policyrule/filtercontext/impl/AttributeRequesterPolicyRuleTest.java
@@ -32,10 +32,10 @@ import net.shibboleth.utilities.java.support.component.UninitializedComponentExc
  */
 public class AttributeRequesterPolicyRuleTest {
 
-    private AttributeRequesterPolicyRule getMatcher(boolean caseSensitive) throws ComponentInitializationException {
+    private AttributeRequesterPolicyRule getMatcher(final boolean caseSensitive) throws ComponentInitializationException {
         AttributeRequesterPolicyRule matcher = new AttributeRequesterPolicyRule();
         matcher.setMatchString("requester");
-        matcher.setIgnoreCase(!caseSensitive);
+        matcher.setCaseSensitive(caseSensitive);
         matcher.setId("Test");
         matcher.initialize();
         return matcher;
diff --git a/idp-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/policyrule/filtercontext/impl/PrincipalNamePolicyRuleTest.java b/idp-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/policyrule/filtercontext/impl/PrincipalNamePolicyRuleTest.java
index 026681d..8c4319f 100644
--- a/idp-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/policyrule/filtercontext/impl/PrincipalNamePolicyRuleTest.java
+++ b/idp-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/policyrule/filtercontext/impl/PrincipalNamePolicyRuleTest.java
@@ -33,10 +33,10 @@ import net.shibboleth.utilities.java.support.component.UninitializedComponentExc
  */
 public class PrincipalNamePolicyRuleTest {
     
-    private PrincipalNamePolicyRule getMatcher(boolean b) throws ComponentInitializationException {
+    private PrincipalNamePolicyRule getMatcher(final boolean caseSensitive) throws ComponentInitializationException {
         PrincipalNamePolicyRule matcher = new PrincipalNamePolicyRule();
         matcher.setMatchString("principal");
-        matcher.setIgnoreCase(!b);
+        matcher.setCaseSensitive(caseSensitive);
         matcher.setId("Test");
         matcher.initialize();
         return matcher;
diff --git a/idp-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/policyrule/filtercontext/impl/ProxiedRequesterPolicyRuleTest.java b/idp-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/policyrule/filtercontext/impl/ProxiedRequesterPolicyRuleTest.java
index e0251b3..4488dca 100644
--- a/idp-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/policyrule/filtercontext/impl/ProxiedRequesterPolicyRuleTest.java
+++ b/idp-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/policyrule/filtercontext/impl/ProxiedRequesterPolicyRuleTest.java
@@ -37,10 +37,10 @@ import net.shibboleth.utilities.java.support.component.UninitializedComponentExc
  */
 public class ProxiedRequesterPolicyRuleTest {
 
-    private ProxiedRequesterPolicyRule getMatcher(boolean caseSensitive) throws ComponentInitializationException {
+    private ProxiedRequesterPolicyRule getMatcher(final boolean caseSensitive) throws ComponentInitializationException {
         final ProxiedRequesterPolicyRule matcher = new ProxiedRequesterPolicyRule();
         matcher.setMatchString("requester");
-        matcher.setIgnoreCase(!caseSensitive);
+        matcher.setCaseSensitive(caseSensitive);
         matcher.setId("Test");
         matcher.initialize();
         return matcher;

-- 
To stop receiving notification emails like this one, please contact
the administrator of this repository.


More information about the commits mailing list