[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