[java-idp-testbed COMMIT] in /trunk/src/main: java/idp/BuildMockSaml2Response.java resources/system/flows/saml2/sso-a...

noreply at shibboleth.net noreply at shibboleth.net
Tue Nov 5 14:51:51 EST 2013


Author: scantor
Date: Tue Nov  5 14:51:51 2013
New Revision: 38

URL: http://svn.shibboleth.net/view/java-idp-testbed?rev=38&view=rev
Log:
Propagate last web flow event as status message in mock response.

Modified:
    trunk/src/main/java/idp/BuildMockSaml2Response.java
    trunk/src/main/resources/system/flows/saml2/sso-abstract-flow.xml

Modified: trunk/src/main/java/idp/BuildMockSaml2Response.java
URL: http://svn.shibboleth.net/view/java-idp-testbed/trunk/src/main/java/idp/BuildMockSaml2Response.java?rev=38&r1=37&r2=38&view=diff
==============================================================================
--- trunk/src/main/java/idp/BuildMockSaml2Response.java (original)
+++ trunk/src/main/java/idp/BuildMockSaml2Response.java Tue Nov  5 14:51:51 2013
@@ -10,12 +10,14 @@
 import org.opensaml.core.xml.XMLObjectBuilderFactory;
 import org.opensaml.messaging.context.MessageContext;
 import org.opensaml.profile.ProfileException;
+import org.opensaml.profile.action.EventIds;
 import org.opensaml.profile.context.ProfileRequestContext;
 import org.opensaml.saml.common.SAMLObject;
 import org.opensaml.saml.saml2.core.Issuer;
 import org.opensaml.saml.saml2.core.Response;
 import org.opensaml.saml.saml2.core.Status;
 import org.opensaml.saml.saml2.core.StatusCode;
+import org.opensaml.saml.saml2.core.StatusMessage;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -41,7 +43,7 @@
 		
 		log.debug("Building mock SAML 2 Response");
 		
-		Response response = buildResponse(profileRequestContext);
+		Response response = buildResponse(springRequestContext, profileRequestContext);
 		
 		MessageContext<SAMLObject> outboundMessageContext = buildOutboundMessageContext(response);
 		
@@ -57,7 +59,7 @@
 		return messageContext;
 	}
 
-	private Response buildResponse(ProfileRequestContext<SAMLObject, SAMLObject> profileRequestContext) {
+	private Response buildResponse(RequestContext springRequestContext, ProfileRequestContext<SAMLObject, SAMLObject> profileRequestContext) {
 		Response response = (Response) builderFactory.getBuilder(Response.DEFAULT_ELEMENT_NAME).buildObject(Response.DEFAULT_ELEMENT_NAME);
 		
 		response.setID(idGenerator.generateIdentifier());
@@ -69,8 +71,17 @@
 		
 		Status status = (Status) builderFactory.getBuilder(Status.DEFAULT_ELEMENT_NAME).buildObject(Status.DEFAULT_ELEMENT_NAME);
 		StatusCode statusCode = (StatusCode) builderFactory.getBuilder(StatusCode.DEFAULT_ELEMENT_NAME).buildObject(StatusCode.DEFAULT_ELEMENT_NAME);
-		statusCode.setValue(StatusCode.SUCCESS_URI);
-		status.setStatusCode(statusCode);
+        status.setStatusCode(statusCode);
+		
+		if (springRequestContext.getCurrentEvent().getId().equals(EventIds.PROCEED_EVENT_ID)) {
+		    statusCode.setValue(StatusCode.SUCCESS_URI);
+		} else {
+		    statusCode.setValue(StatusCode.RESPONDER_URI);
+		    StatusMessage msg = (StatusMessage) builderFactory.getBuilder(StatusMessage.DEFAULT_ELEMENT_NAME).buildObject(StatusMessage.DEFAULT_ELEMENT_NAME);
+		    msg.setMessage(springRequestContext.getCurrentEvent().getId());
+		    status.setStatusMessage(msg);
+		}
+		
 		response.setStatus(status);
 		
 		return response;

Modified: trunk/src/main/resources/system/flows/saml2/sso-abstract-flow.xml
URL: http://svn.shibboleth.net/view/java-idp-testbed/trunk/src/main/resources/system/flows/saml2/sso-abstract-flow.xml?rev=38&r1=37&r2=38&view=diff
==============================================================================
--- trunk/src/main/resources/system/flows/saml2/sso-abstract-flow.xml (original)
+++ trunk/src/main/resources/system/flows/saml2/sso-abstract-flow.xml Tue Nov  5 14:51:51 2013
@@ -31,7 +31,7 @@
     </action-state>
     
     <subflow-state id="DoAuthenticationSubflow" subflow="Authentication">
-        <transition on="proceed" to="BuildResponse" />
+        <transition on="#{true}" to="BuildResponse" />
     </subflow-state>
     
     <action-state id="BuildResponse">



More information about the commits mailing list