package org.atricore.idbus.capabilities.sso.main.idp.plans.actions; import oasis.names.tc.saml._2_0.protocol.*; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.atricore.idbus.capabilities.sso.main.common.plans.actions.AbstractSSOAction; import org.atricore.idbus.capabilities.sso.support.core.StatusCode; import org.atricore.idbus.kernel.planning.IdentityArtifact; import org.jbpm.graph.exe.ExecutionContext; /** * @author <a href=mailto:sgonzalez@atricore.org>Sebastian Gonzalez Oyuela</a> */ public class SetResponseStatusAction extends AbstractSSOAction { public static final Log logger = LogFactory.getLog(SetAuthnResponseStatusAction.class); protected void doExecute(IdentityArtifact in, IdentityArtifact out, ExecutionContext executionContext) throws Exception { StatusResponseType response = (StatusResponseType) out.getContent(); RequestAbstractType request = (RequestAbstractType) in.getContent(); if (logger.isDebugEnabled()) logger.debug("Setting SAMLR2 Status Code"); StatusCodeType statusCode = new StatusCodeType(); // TODO : Check error variable to provide different status codes! if (logger.isDebugEnabled()) logger.debug("Assertion found, authentication succeeded"); statusCode.setValue(StatusCode.TOP_SUCCESS.getValue()); StatusType status = new StatusType(); status.setStatusCode(statusCode); response.setStatus(status); } }