[java-identity-provider COMMIT] in /trunk/idp-profile-spring/src: main/java/net/shibboleth/idp/profile/spring/relying...

noreply at shibboleth.net noreply at shibboleth.net
Wed May 28 23:26:30 EDT 2014


Author: scantor
Date: Wed May 28 23:26:30 2014
New Revision: 5993

URL: http://svn.shibboleth.net/view/java-identity-provider?rev=5993&view=rev
Log:
Implement a default decryption configuration for legacy use.

Modified:
    trunk/idp-profile-spring/src/main/java/net/shibboleth/idp/profile/spring/relyingparty/saml/BaseSAMLProfileConfigurationParser.java
    trunk/idp-profile-spring/src/test/java/net/shibboleth/idp/profile/spring/relyingparty/saml/SAML2BrowserSSOProfileTest.java
    trunk/idp-profile-spring/src/test/resources/net/shibboleth/idp/profile/spring/relyingparty/beans.xml

Modified: trunk/idp-profile-spring/src/main/java/net/shibboleth/idp/profile/spring/relyingparty/saml/BaseSAMLProfileConfigurationParser.java
URL: http://svn.shibboleth.net/view/java-identity-provider/trunk/idp-profile-spring/src/main/java/net/shibboleth/idp/profile/spring/relyingparty/saml/BaseSAMLProfileConfigurationParser.java?rev=5993&r1=5992&r2=5993&view=diff
==============================================================================
--- trunk/idp-profile-spring/src/main/java/net/shibboleth/idp/profile/spring/relyingparty/saml/BaseSAMLProfileConfigurationParser.java (original)
+++ trunk/idp-profile-spring/src/main/java/net/shibboleth/idp/profile/spring/relyingparty/saml/BaseSAMLProfileConfigurationParser.java Wed May 28 23:26:30 2014
@@ -27,10 +27,13 @@
 import net.shibboleth.idp.saml.profile.config.logic.LegacyEncryptionRequirementPredicate;
 import net.shibboleth.idp.saml.profile.config.logic.LegacySigningRequirementPredicate;
 import net.shibboleth.idp.spring.SpringSupport;
+import net.shibboleth.utilities.java.support.annotation.constraint.NotEmpty;
 import net.shibboleth.utilities.java.support.primitive.StringSupport;
 import net.shibboleth.utilities.java.support.xml.ElementSupport;
 
+import org.opensaml.xmlsec.impl.BasicDecryptionConfiguration;
 import org.opensaml.xmlsec.impl.BasicSignatureSigningConfiguration;
+import org.opensaml.xmlsec.keyinfo.impl.StaticKeyInfoCredentialResolver;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.BeanFactory;
@@ -50,6 +53,9 @@
  */
 public abstract class BaseSAMLProfileConfigurationParser extends AbstractSingleBeanDefinitionParser {
 
+    /** Bean name of legacy EKR to load. */
+    @Nonnull @NotEmpty private static final String DEFAULT_EKR = "shibboleth.LegacyRelyingParty.EncryptedKeyResolver";
+    
     /** Class logger. */
     @Nonnull private Logger log = LoggerFactory.getLogger(BaseSAMLProfileConfigurationParser.class);
 
@@ -173,10 +179,11 @@
      * Setup the {@link SecurityConfiguration} for this profile. We look first at the embedded beans for a bean of the
      * correct type. Failing that we look for a defaultSigningCredential.
      * 
-     * @param element the element with the profile in it.
-     * @param builder the builder for the profile.
-     */
-    private void setSecurityConfiguration(Element element, BeanDefinitionBuilder builder) {
+     * @param element the element with the profile in it
+     * @param builder the builder for the profile
+     * @param parserContext the parser context
+     */
+    private void setSecurityConfiguration(Element element, BeanDefinitionBuilder builder, ParserContext parserContext) {
 
         if (null != getEmbeddedBeans()) {
             // Ask the embedded beans first
@@ -221,13 +228,25 @@
         final BeanDefinitionBuilder signingConfiguration =
                 BeanDefinitionBuilder.genericBeanDefinition(BasicSignatureSigningConfiguration.class);
         signingConfiguration.addPropertyReference("signingCredentials", credentialRef);
-
+        
+        final BeanDefinitionBuilder decryptionConfiguration =
+                BeanDefinitionBuilder.genericBeanDefinition(BasicDecryptionConfiguration.class);
+        
+        decryptionConfiguration.addPropertyReference("encryptedKeyResolver", DEFAULT_EKR);
+        
+        final BeanDefinitionBuilder staticKeyInfoCredentialResolver =
+                BeanDefinitionBuilder.genericBeanDefinition(StaticKeyInfoCredentialResolver.class);
+        staticKeyInfoCredentialResolver.addConstructorArgReference(credentialRef);
+        
+        decryptionConfiguration.addPropertyValue("KEKKeyInfoCredentialResolver",
+                staticKeyInfoCredentialResolver.getBeanDefinition());
+        
         final BeanDefinitionBuilder configuration =
                 BeanDefinitionBuilder.genericBeanDefinition(SecurityConfiguration.class);
         configuration.addPropertyValue("signatureSigningConfiguration", signingConfiguration.getBeanDefinition());
+        configuration.addPropertyValue("decryptionConfiguration", decryptionConfiguration.getBeanDefinition());
 
         builder.addPropertyValue("securityConfiguration", configuration.getBeanDefinition());
-
     }
 
     /** {@inheritDoc} */
@@ -242,7 +261,7 @@
             embeddedBeans = SpringSupport.createBeanFactory(springBeans.get(0));
         }
 
-        setSecurityConfiguration(element, builder);

[... 80 lines stripped ...]


More information about the commits mailing list