[spring-extensions] branch master updated: JSE-17 - StringBooleanToPredicate converter should warn on bad input

Scott Cantor cantor.2 at osu.edu
Mon Aug 8 23:26:37 EDT 2016


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

scantor pushed a commit to branch master
in repository spring-extensions.

View the commit online:
http://git.shibboleth.net/view/?p=spring-extensions.git;a=commit;h=67159d23f4ec8d54899361491329034f227a11cf

The following commit(s) were added to refs/heads/master by this push:
       new  67159d2   JSE-17 - StringBooleanToPredicate converter should warn on bad input
67159d2 is described below

commit 67159d23f4ec8d54899361491329034f227a11cf
Author: Scott Cantor <cantor.2 at osu.edu>
AuthorDate: Mon Aug 8 23:26:22 2016 -0400

    JSE-17 - StringBooleanToPredicate converter should warn on bad input
    
    https://issues.shibboleth.net/jira/browse/JSE-17
---
 .../config/StringBooleanToPredicateConverter.java  | 22 +++++++++++++++++++++-
 1 file changed, 21 insertions(+), 1 deletion(-)

diff --git a/src/main/java/net/shibboleth/ext/spring/config/StringBooleanToPredicateConverter.java b/src/main/java/net/shibboleth/ext/spring/config/StringBooleanToPredicateConverter.java
index 793d314..aa4ea5d 100644
--- a/src/main/java/net/shibboleth/ext/spring/config/StringBooleanToPredicateConverter.java
+++ b/src/main/java/net/shibboleth/ext/spring/config/StringBooleanToPredicateConverter.java
@@ -19,6 +19,10 @@ package net.shibboleth.ext.spring.config;
 
 import net.shibboleth.utilities.java.support.primitive.StringSupport;
 
+import javax.annotation.Nonnull;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.springframework.core.convert.converter.Converter;
 
 import com.google.common.base.Predicate;
@@ -29,9 +33,25 @@ import com.google.common.base.Predicates;
  */
 public class StringBooleanToPredicateConverter implements Converter<String,Predicate> {
 
+    /** Logger. */
+    @Nonnull private final Logger log = LoggerFactory.getLogger(StringBooleanToPredicateConverter.class);
+
     /** {@inheritDoc} */
     public Predicate convert(String source) {
-        return Boolean.valueOf(StringSupport.trimOrNull(source)) ? Predicates.alwaysTrue() : Predicates.alwaysFalse();
+        
+        final String trimmed = StringSupport.trimOrNull(source);
+        if (Boolean.valueOf(trimmed)) {
+            return Predicates.alwaysTrue();
+        }
+        
+        if (trimmed != null) {
+            if ("1".equals(trimmed)) {
+                log.warn("The value '1' is not treated as 'true'; if intentional, explicitly use 'false'");
+            } else if (!"false".equalsIgnoreCase(trimmed) && !"0".equals(trimmed)) {
+                log.warn("Unrecognized value '{}' converted to false; if intentional, explicitly use 'false'", trimmed);
+            }
+        }
+        return Predicates.alwaysFalse();
     }
     
 }
\ No newline at end of file

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


More information about the commits mailing list