[java-opensaml COMMIT] /trunk/opensaml-xmlsec-impl/src/main/java/org/opensaml/xmlsec/config/DefaultSecurityConfigurat...
noreply at shibboleth.net
noreply at shibboleth.net
Fri May 16 15:13:14 EDT 2014
Author: putmanb
Date: Fri May 16 15:13:14 2014
New Revision: 3881
URL: http://svn.shibboleth.net/view/java-opensaml?rev=3881&view=rev
Log:
Set up OpenSAML default security configuration algorithms.
Change bootstrap methods to return the Basic- impl, rather than interface, so that callers can then munge the config without casting.
Modified:
trunk/opensaml-xmlsec-impl/src/main/java/org/opensaml/xmlsec/config/DefaultSecurityConfigurationBootstrap.java
Modified: trunk/opensaml-xmlsec-impl/src/main/java/org/opensaml/xmlsec/config/DefaultSecurityConfigurationBootstrap.java
URL: http://svn.shibboleth.net/view/java-opensaml/trunk/opensaml-xmlsec-impl/src/main/java/org/opensaml/xmlsec/config/DefaultSecurityConfigurationBootstrap.java?rev=3881&r1=3880&r2=3881&view=diff
==============================================================================
--- trunk/opensaml-xmlsec-impl/src/main/java/org/opensaml/xmlsec/config/DefaultSecurityConfigurationBootstrap.java (original)
+++ trunk/opensaml-xmlsec-impl/src/main/java/org/opensaml/xmlsec/config/DefaultSecurityConfigurationBootstrap.java Fri May 16 15:13:14 2014
@@ -22,10 +22,6 @@
import javax.annotation.Nonnull;
-import org.opensaml.xmlsec.DecryptionConfiguration;
-import org.opensaml.xmlsec.EncryptionConfiguration;
-import org.opensaml.xmlsec.SignatureSigningConfiguration;
-import org.opensaml.xmlsec.SignatureValidationConfiguration;
import org.opensaml.xmlsec.encryption.support.ChainingEncryptedKeyResolver;
import org.opensaml.xmlsec.encryption.support.EncryptedKeyResolver;
import org.opensaml.xmlsec.encryption.support.EncryptionConstants;
@@ -49,10 +45,14 @@
import org.opensaml.xmlsec.keyinfo.impl.provider.RSAKeyValueProvider;
import org.opensaml.xmlsec.signature.support.SignatureConstants;
+import com.google.common.collect.Lists;
+import com.google.common.collect.Sets;
+
/**
- * A utility class which programatically builds an instance of {@link BasicSecurityConfiguration}
- * which has reasonable default values for the various configuration parameters.
+ * A utility class which programmatically builds basic instances of various components
+ * related to security configuration which have reasonable default values for their
+ * various configuration parameters.
*/
public class DefaultSecurityConfigurationBootstrap {
@@ -84,12 +84,30 @@
*
* @return a new basic configuration with reasonable default values
*/
- @Nonnull public static EncryptionConfiguration buildDefaultEncryptionConfiguration() {
+ @Nonnull public static BasicEncryptionConfiguration buildDefaultEncryptionConfiguration() {
BasicEncryptionConfiguration config = new BasicEncryptionConfiguration();
- //TODO blacklist anything by default?
- //TODO various data and key transport algo URI prefs, when API is stabilized
- //TODO auto-generated data enc URI prefs
+ config.setDataEncryptionAlgorithms(Lists.newArrayList(
+ // The order of these is significant.
+ EncryptionConstants.ALGO_ID_BLOCKCIPHER_AES128,
+ EncryptionConstants.ALGO_ID_BLOCKCIPHER_AES192,
+ EncryptionConstants.ALGO_ID_BLOCKCIPHER_AES256,
+ EncryptionConstants.ALGO_ID_BLOCKCIPHER_TRIPLEDES
+ ));
+
+ config.setKeyTransportEncryptionAlgorithms(Lists.newArrayList(
+ // The order of the RSA algos is significant.
+ EncryptionConstants.ALGO_ID_KEYTRANSPORT_RSAOAEP,
+ EncryptionConstants.ALGO_ID_KEYTRANSPORT_RSA15,
+
+ // The order of these is not significant.
+ // These aren't really "preferences" per se. They just need to be registered
+ // so that they can be used if a credential with a key of that type and size is seen.
+ EncryptionConstants.ALGO_ID_KEYWRAP_AES128,
+ EncryptionConstants.ALGO_ID_KEYWRAP_AES192,
+ EncryptionConstants.ALGO_ID_KEYWRAP_AES256,
+ EncryptionConstants.ALGO_ID_KEYWRAP_TRIPLEDES
+ ));
config.setDataKeyInfoGeneratorManager(buildDataEncryptionKeyInfoGeneratorManager());
config.setKeyTransportKeyInfoGeneratorManager(buildKeyTransportEncryptionKeyInfoGeneratorManager());
@@ -102,10 +120,8 @@
*
* @return a new basic configuration with reasonable default values
*/
- @Nonnull public static DecryptionConfiguration buildDefaultDecryptionConfiguration() {
+ @Nonnull public static BasicDecryptionConfiguration buildDefaultDecryptionConfiguration() {
BasicDecryptionConfiguration config = new BasicDecryptionConfiguration();
-
- //TODO blacklist anything by default?
config.setDataKeyInfoCredentialResolver(buildEncryptionDataKeyInfoCredentialResolver());
config.setKEKKeyInfoCredentialResolver(buildEncryptionKEKKeyInfoCredentialResolver());
@@ -119,15 +135,52 @@
*
* @return a new basic configuration with reasonable default values
*/
[... 83 lines stripped ...]
More information about the commits
mailing list