public void BadFormatSamlResponseException_StringCtor() { var msg = "Message!"; var subject = new BadFormatSamlResponseException(msg); subject.Message.Should().Be(msg); }
public void BadFormatSamlResponseException_StringCtor() { var msg = "Message!"; var subject = new BadFormatSamlResponseException(msg); subject.Message.Should().Be(msg); }
public CommandResult Run(HttpRequestData request, IOptions options) { if (request == null) { throw new ArgumentNullException(nameof(request)); } if (options == null) { throw new ArgumentNullException(nameof(options)); } var binding = Saml2Binding.Get(request); if (binding != null) { UnbindResult unbindResult = null; try { unbindResult = binding.Unbind(request, options); var samlResponse = new Saml2Response(unbindResult.Data, request.StoredRequestState?.MessageId); var result = ProcessResponse(options, samlResponse, request.StoredRequestState); if (unbindResult.RelayState != null) { result.ClearCookieName = "Kentor." + unbindResult.RelayState; } return(result); } catch (FormatException ex) { throw new BadFormatSamlResponseException( "The SAML Response did not contain valid BASE64 encoded data.", ex); } catch (XmlException ex) { var newEx = new BadFormatSamlResponseException( "The SAML response contains incorrect XML", ex); // Add the payload to the exception if (unbindResult != null) { newEx.Data["Saml2Response"] = unbindResult.Data.OuterXml; } throw newEx; } catch (Exception ex) { if (unbindResult != null) { // Add the payload to the existing exception ex.Data["Saml2Response"] = unbindResult.Data.OuterXml; } throw; } } throw new NoSamlResponseFoundException(); }
public CommandResult Run(HttpRequestData request, IOptions options) { if(request == null) { throw new ArgumentNullException("request"); } if(options == null) { throw new ArgumentNullException("options"); } var binding = Saml2Binding.Get(request); if (binding != null) { string unpackedPayload = null; try { unpackedPayload = binding.Unbind(request); var samlResponse = Saml2Response.Read(unpackedPayload); var relayStates = request.Form.First(x => string.Compare(x.Key, "RelayState", StringComparison.OrdinalIgnoreCase) == 0); string returnURL = string.Empty; returnURL = relayStates.Value; /* foreach(var state in relayStates) { returnURL = state; break; } */ return ProcessResponse(options, samlResponse, returnURL); } catch (FormatException ex) { throw new BadFormatSamlResponseException( "The SAML Response did not contain valid BASE64 encoded data.", ex); } catch (XmlException ex) { var newEx = new BadFormatSamlResponseException( "The SAML response contains incorrect XML", ex); // Add the payload to the exception newEx.Data["Saml2Response"] = unpackedPayload; throw newEx; } catch (Exception ex) { // Add the payload to the existing exception ex.Data["Saml2Response"] = unpackedPayload; throw; } } throw new NoSamlResponseFoundException(); }
public CommandResult Run(HttpRequestData request, IOptions options) { if (request == null) { throw new ArgumentNullException("request"); } if (options == null) { throw new ArgumentNullException("options"); } var binding = Saml2Binding.Get(request); if (binding != null) { string unpackedPayload = null; try { unpackedPayload = binding.Unbind(request); var samlResponse = Saml2Response.Read(unpackedPayload); return(ProcessResponse(options, samlResponse)); } catch (FormatException ex) { throw new BadFormatSamlResponseException( "The SAML Response did not contain valid BASE64 encoded data.", ex); } catch (XmlException ex) { var newEx = new BadFormatSamlResponseException( "The SAML response contains incorrect XML", ex); // Add the payload to the exception newEx.Data.Add("Saml2Response", unpackedPayload); throw newEx; } catch (Exception ex) { // Add the payload to the existing exception ex.Data.Add("Saml2Response", unpackedPayload); throw; } } throw new NoSamlResponseFoundException(); }
public CommandResult Run(HttpRequestData request, IOptions options) { if(request == null) { throw new ArgumentNullException(nameof(request)); } if(options == null) { throw new ArgumentNullException(nameof(options)); } var binding = Saml2Binding.Get(request); if (binding != null) { string unpackedPayload = null; try { unpackedPayload = binding.Unbind(request); var samlResponse = Saml2Response.Read(unpackedPayload); return ProcessResponse(options, samlResponse); } catch (FormatException ex) { throw new BadFormatSamlResponseException( "The SAML Response did not contain valid BASE64 encoded data.", ex); } catch (XmlException ex) { var newEx = new BadFormatSamlResponseException( "The SAML response contains incorrect XML", ex); // Add the payload to the exception newEx.Data["Saml2Response"] = unpackedPayload; throw newEx; } catch (Exception ex) { // Add the payload to the existing exception ex.Data["Saml2Response"] = unpackedPayload; throw; } } throw new NoSamlResponseFoundException(); }
/// <summary> /// Run the command, initiating or handling the assertion consumer sequence. /// </summary> /// <param name="request">Request data.</param> /// <param name="options">Options</param> /// <returns>CommandResult</returns> public CommandResult Run(HttpRequestData request, IOptions options) { if (request == null) { throw new ArgumentNullException(nameof(request)); } if (options == null) { throw new ArgumentNullException(nameof(options)); } var binding = options.Notifications.GetBinding(request); if (binding != null) { UnbindResult unbindResult = null; try { unbindResult = binding.Unbind(request, options); options.Notifications.MessageUnbound(unbindResult); var samlResponse = new Saml2Response(unbindResult.Data, request.StoredRequestState?.MessageId, options); var idpContext = GetIdpContext(unbindResult.Data, request, options); var result = ProcessResponse(options, samlResponse, request.StoredRequestState, idpContext, unbindResult.RelayState); if (request.StoredRequestState != null) { var urls = new Saml2Urls(request, options); result.ClearCookieName = StoredRequestState.CookieNameBase + unbindResult.RelayState; result.SetCookieSecureFlag = urls.AssertionConsumerServiceUrl.IsHttps(); } options.Notifications.AcsCommandResultCreated(result, samlResponse); return(result); } catch (FormatException ex) { throw new BadFormatSamlResponseException( "The SAML Response did not contain valid BASE64 encoded data.", ex); } catch (XmlException ex) { var newEx = new BadFormatSamlResponseException( "The SAML response contains incorrect XML", ex); // Add the payload to the exception if (unbindResult != null) { newEx.Data["Saml2Response"] = unbindResult.Data.OuterXml; } throw newEx; } catch (Exception ex) { if (unbindResult != null) { // Add the payload to the existing exception ex.Data["Saml2Response"] = unbindResult.Data.OuterXml; } throw; } } throw new NoSamlResponseFoundException(); }