/** * @param ProfileContext $context */ protected function doExecute(ProfileContext $context) { $response = MessageContextHelper::asStatusResponse($context->getInboundContext()); $inResponseTo = $response->getInResponseTo(); if ($inResponseTo) { $requestState = $this->requestStore->get($inResponseTo); if (null == $requestState) { $message = sprintf("Unknown InResponseTo '%s'", $inResponseTo); $this->logger->error($message, LogHelper::getActionErrorContext($context, $this, array('in_response_to' => $inResponseTo))); throw new LightSamlContextException($context, $message); } /** @var RequestStateContext $requestStateContext */ $requestStateContext = $context->getInboundContext()->getSubContext(ProfileContexts::REQUEST_STATE, RequestStateContext::class); $requestStateContext->setRequestState($requestState); } }
protected function doExecute(ProfileContext $context) { $statusResponse = MessageContextHelper::asStatusResponse($context->getInboundContext()); if ($statusResponse->getStatus() && $statusResponse->getStatus()->isSuccess()) { return; } if (null == $statusResponse->getStatus()) { $message = 'Status response does not have Status set'; $this->logger->error($message, LogHelper::getActionErrorContext($context, $this)); throw new LightSamlContextException($context, $message); } $status = $statusResponse->getStatus()->getStatusCode()->getValue(); $status .= "\n" . $statusResponse->getStatus()->getStatusMessage(); if ($statusResponse->getStatus()->getStatusCode()->getStatusCode()) { $status .= "\n" . $statusResponse->getStatus()->getStatusCode()->getStatusCode()->getValue(); } $message = 'Unsuccessful SAML response: ' . $status; $this->logger->error($message, LogHelper::getActionErrorContext($context, $this, ['status' => $status])); throw new LightSamlAuthenticationException($statusResponse, $message); }
/** * @param ProfileContext $context */ protected function doExecute(ProfileContext $context) { $response = MessageContextHelper::asStatusResponse($context->getInboundContext()); $inResponseTo = $response->getInResponseTo(); if ($inResponseTo) { $requestState = $this->requestStore->get($inResponseTo); if (null == $requestState) { $message = sprintf("Unknown InResponseTo '%s'", $inResponseTo); $this->logger->critical($message, LogHelper::getActionErrorContext($context, $this, array('in_response_to' => $inResponseTo))); throw new LightSamlContextException($context, $message); } $sentToParty = $requestState->getParameters()->get(RequestStateParameters::PARTY); if ($sentToParty && $response->getIssuer() && $response->getIssuer()->getValue() != $sentToParty) { $message = sprintf('AuthnRequest with id "%s" sent to party "%s" but StatusResponse for that request issued by party "%s"', $inResponseTo, $sentToParty, $response->getIssuer()->getValue()); $this->logger->critical($message, LogHelper::getActionErrorContext($context, $this, array('sent_to' => $sentToParty, 'received_from' => $response->getIssuer()->getValue()))); throw new LightSamlContextException($context, $message); } /** @var RequestStateContext $requestStateContext */ $requestStateContext = $context->getInboundContext()->getSubContext(ProfileContexts::REQUEST_STATE, RequestStateContext::class); $requestStateContext->setRequestState($requestState); } }
/** * @param ProfileContext $context */ protected function doExecute(ProfileContext $context) { $statusResponse = MessageContextHelper::asStatusResponse($context->getOutboundContext()); $statusResponse->setStatus(new Status(new StatusCode($this->statusCode), $this->statusCode)); }
/** * @param ProfileContext $context * * @return void */ protected function doExecute(ProfileContext $context) { if ($context->getInboundContext()->getMessage()) { MessageContextHelper::asStatusResponse($context->getOutboundContext())->setInResponseTo(MessageContextHelper::asSamlMessage($context->getInboundContext())->getID()); } }