/**
  * @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);
     }
 }
示例#2
0
 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());
     }
 }