[java-opensaml COMMIT] in /trunk/opensaml-saml-impl/src/main/java/org/opensaml/saml: common/profile/impl/SignAssertio...

noreply at shibboleth.net noreply at shibboleth.net
Tue Jun 3 11:43:35 EDT 2014


Author: scantor
Date: Tue Jun  3 11:43:35 2014
New Revision: 3913

URL: http://svn.shibboleth.net/view/java-opensaml?rev=3913&view=rev
Log:
IDP-416 - Support ArtifactResponse messages in signing and encrypt actions.

Modified:
    trunk/opensaml-saml-impl/src/main/java/org/opensaml/saml/common/profile/impl/SignAssertions.java
    trunk/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/profile/impl/EncryptAssertions.java
    trunk/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/profile/impl/EncryptAttributes.java
    trunk/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/profile/impl/EncryptNameIDs.java

Modified: trunk/opensaml-saml-impl/src/main/java/org/opensaml/saml/common/profile/impl/SignAssertions.java
URL: http://svn.shibboleth.net/view/java-opensaml/trunk/opensaml-saml-impl/src/main/java/org/opensaml/saml/common/profile/impl/SignAssertions.java?rev=3913&r1=3912&r2=3913&view=diff
==============================================================================
--- trunk/opensaml-saml-impl/src/main/java/org/opensaml/saml/common/profile/impl/SignAssertions.java (original)
+++ trunk/opensaml-saml-impl/src/main/java/org/opensaml/saml/common/profile/impl/SignAssertions.java Tue Jun  3 11:43:35 2014
@@ -34,6 +34,7 @@
 import org.opensaml.profile.context.ProfileRequestContext;
 import org.opensaml.profile.context.navigate.OutboundMessageContextLookup;
 import org.opensaml.saml.common.SAMLObject;
+import org.opensaml.saml.saml2.core.ArtifactResponse;
 import org.opensaml.security.SecurityException;
 import org.opensaml.xmlsec.SignatureSigningParameters;
 import org.opensaml.xmlsec.context.SecurityParametersContext;
@@ -114,6 +115,11 @@
             log.debug("{} No SAML Response located in current profile request context", getLogPrefix());
             ActionSupport.buildEvent(profileRequestContext, EventIds.INVALID_MSG_CTX);
             return false;
+        }
+
+        // Step down into ArtifactResponses.
+        if (response instanceof ArtifactResponse) {
+            response = ((ArtifactResponse) response).getMessage();
         }
         
         if (response instanceof org.opensaml.saml.saml1.core.Response) {

Modified: trunk/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/profile/impl/EncryptAssertions.java
URL: http://svn.shibboleth.net/view/java-opensaml/trunk/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/profile/impl/EncryptAssertions.java?rev=3913&r1=3912&r2=3913&view=diff
==============================================================================
--- trunk/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/profile/impl/EncryptAssertions.java (original)
+++ trunk/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/profile/impl/EncryptAssertions.java Tue Jun  3 11:43:35 2014
@@ -33,9 +33,11 @@
 import org.opensaml.profile.action.EventIds;
 import org.opensaml.profile.context.ProfileRequestContext;
 import org.opensaml.profile.context.navigate.OutboundMessageContextLookup;
+import org.opensaml.saml.saml2.core.ArtifactResponse;
 import org.opensaml.saml.saml2.core.Assertion;
 import org.opensaml.saml.saml2.core.EncryptedAssertion;
 import org.opensaml.saml.saml2.core.Response;
+import org.opensaml.saml.saml2.core.StatusResponseType;
 import org.opensaml.saml.saml2.profile.context.EncryptionContext;
 import org.opensaml.xmlsec.EncryptionParameters;
 import org.opensaml.xmlsec.encryption.support.EncryptionException;
@@ -62,7 +64,7 @@
     @Nonnull private final Logger log = LoggerFactory.getLogger(EncryptAssertions.class);
     
     /** Strategy used to locate the {@link Response} to operate on. */
-    @Nonnull private Function<ProfileRequestContext,Response> responseLookupStrategy;
+    @Nonnull private Function<ProfileRequestContext,StatusResponseType> responseLookupStrategy;
     
     /** The message to operate on. */
     @Nullable private Response response;
@@ -71,7 +73,7 @@
 
     public EncryptAssertions() {
         responseLookupStrategy =
-                Functions.compose(new MessageLookup<>(Response.class), new OutboundMessageContextLookup());
+                Functions.compose(new MessageLookup<>(StatusResponseType.class), new OutboundMessageContextLookup());
     }
 
     /**
@@ -79,7 +81,7 @@
      * 
      * @param strategy strategy used to locate the {@link Response} to operate on
      */
-    public void setResponseLookupStrategy(@Nonnull final Function<ProfileRequestContext,Response> strategy) {
+    public void setResponseLookupStrategy(@Nonnull final Function<ProfileRequestContext,StatusResponseType> strategy) {
         ComponentSupport.ifInitializedThrowUnmodifiabledComponentException(this);
 
         responseLookupStrategy = Constraint.isNotNull(strategy, "Response lookup strategy cannot be null");
@@ -98,7 +100,16 @@
     @Override
     protected boolean doPreExecute(@Nonnull final ProfileRequestContext profileRequestContext) {
         
-        response = responseLookupStrategy.apply(profileRequestContext);
+        final StatusResponseType message = responseLookupStrategy.apply(profileRequestContext);

[... 114 lines stripped ...]


More information about the commits mailing list