[java-opensaml COMMIT] in /trunk: opensaml-xmlsec-api/src/main/java/org/opensaml/xmlsec/criterion/EncryptionOptionalC...

noreply at shibboleth.net noreply at shibboleth.net
Mon Oct 24 17:12:05 EDT 2016


Author: putmanb
Date: Mon Oct 24 17:12:05 2016
New Revision: 4551

URL: http://svn.shibboleth.net/view/java-opensaml?rev=4551&view=rev
Log:
OSJ-156: Controllable logging level in EncryptionParametersResolver

Added:
    trunk/opensaml-xmlsec-api/src/main/java/org/opensaml/xmlsec/criterion/EncryptionOptionalCriterion.java   (with props)
Modified:
    trunk/opensaml-xmlsec-impl/src/main/java/org/opensaml/xmlsec/impl/BasicEncryptionParametersResolver.java

Modified: trunk/opensaml-xmlsec-impl/src/main/java/org/opensaml/xmlsec/impl/BasicEncryptionParametersResolver.java
URL: http://svn.shibboleth.net/view/java-opensaml/trunk/opensaml-xmlsec-impl/src/main/java/org/opensaml/xmlsec/impl/BasicEncryptionParametersResolver.java?rev=4551&r1=4550&r2=4551&view=diff
==============================================================================
--- trunk/opensaml-xmlsec-impl/src/main/java/org/opensaml/xmlsec/impl/BasicEncryptionParametersResolver.java	(original)
+++ trunk/opensaml-xmlsec-impl/src/main/java/org/opensaml/xmlsec/impl/BasicEncryptionParametersResolver.java	Mon Oct 24 17:12:05 2016
@@ -27,11 +27,6 @@
 import javax.annotation.Nonnull;
 import javax.annotation.Nullable;
 
-import net.shibboleth.utilities.java.support.annotation.constraint.NotEmpty;
-import net.shibboleth.utilities.java.support.logic.Constraint;
-import net.shibboleth.utilities.java.support.resolver.CriteriaSet;
-import net.shibboleth.utilities.java.support.resolver.ResolverException;
-
 import org.opensaml.security.credential.Credential;
 import org.opensaml.security.credential.CredentialSupport;
 import org.opensaml.xmlsec.EncryptionConfiguration;
@@ -41,6 +36,7 @@
 import org.opensaml.xmlsec.algorithm.AlgorithmRegistry;
 import org.opensaml.xmlsec.algorithm.AlgorithmSupport;
 import org.opensaml.xmlsec.criterion.EncryptionConfigurationCriterion;
+import org.opensaml.xmlsec.criterion.EncryptionOptionalCriterion;
 import org.opensaml.xmlsec.criterion.KeyInfoGenerationProfileCriterion;
 import org.opensaml.xmlsec.encryption.support.RSAOAEPParameters;
 import org.opensaml.xmlsec.keyinfo.KeyInfoGenerator;
@@ -50,6 +46,11 @@
 import com.google.common.base.Predicate;
 import com.google.common.base.Predicates;
 import com.google.common.collect.Collections2;
+
+import net.shibboleth.utilities.java.support.annotation.constraint.NotEmpty;
+import net.shibboleth.utilities.java.support.logic.Constraint;
+import net.shibboleth.utilities.java.support.resolver.CriteriaSet;
+import net.shibboleth.utilities.java.support.resolver.ResolverException;
 
 /**
  * Basic implementation of {@link EncryptionParametersResolver}.
@@ -59,6 +60,7 @@
  * <ul>
  * <li>{@link EncryptionConfigurationCriterion} - required</li> 
  * <li>{@link KeyInfoGenerationProfileCriterion} - optional</li> 
+ * <li>{@link EncryptionOptionalCriterion} - optional</li> 
  * </ul>
  * </p>
  */
@@ -155,7 +157,13 @@
                     params.getKeyTransportEncryptionCredential()));
         }
         
-        if (validate(params)) {
+        boolean encryptionOptional = false;
+        EncryptionOptionalCriterion encryptionOptionalCrit = criteria.get(EncryptionOptionalCriterion.class);
+        if (encryptionOptionalCrit != null) {
+            encryptionOptional = encryptionOptionalCrit.isEncryptionOptional();
+        }
+        
+        if (validate(params, encryptionOptional)) {
             logResult(params);
             return params;
         } else {
@@ -211,31 +219,66 @@
     /**
      * Validate that the {@link EncryptionParameters} instance has all the required properties populated.
      * 
+     * <p>Equivalent to: {@link #validate(EncryptionParameters, false)} </p>
+     * 
      * @param params the parameters instance to evaluate
      * 
      * @return true if parameters instance passes validation, false otherwise
+     * 
+     * @deprecated use {@link #validate(EncryptionParameters, boolean)}.
      */
     protected boolean validate(@Nonnull final EncryptionParameters params) {
+        return validate(params, false);
+    }
+    
+    /**
+     * Validate that the {@link EncryptionParameters} instance has all the required properties populated.
+     * 
+     * @param params the parameters instance to evaluate
+     * 
+     * @return true if parameters instance passes validation, false otherwise
+     */
+    protected boolean validate(@Nonnull final EncryptionParameters params, final boolean encryptionOptional) {
         if (params.getKeyTransportEncryptionCredential() == null 
                 && params.getDataEncryptionCredential() == null) {
-            log.warn("Validation failure: Failed to resolve both a data and a key encryption credential");
+            String msg = "Validation failure: Failed to resolve both a data and a key encryption credential";
+            if (encryptionOptional) {
+                log.debug(msg);
+            } else {
+                log.warn(msg);
+            }
             return false;
         }
         if (params.getKeyTransportEncryptionCredential() != null 
                 && params.getKeyTransportEncryptionAlgorithm() == null) {

[... 36 lines stripped ...]


More information about the commits mailing list