public SamlAuthenticationFailed(SamlResponse response)
 {
     Errors = response.Errors.Select(x => x.Message).ToArray();
     Name = response.Subject.Name.Value;
     Issuer = response.Issuer;
     SamlId = response.Id;
 }
Esempio n. 2
0
        public HtmlDocument get_failure_page(SamlResponse response)
        {
            var document = new HtmlDocument();
            document.Title = "Failure Page";

            document.Add("h1").Text("This is the failure page");

            document.Push("ul");

            response.Errors.Each(x => document.Add("li").Text(x.Message));

            return document;
        }
 public void Handle(ISamlDirector director, SamlResponse response)
 {
     validate(response);
     if (response.Errors.Any())
     {
         _logger.InfoMessage(() => new SamlAuthenticationFailed(response));
         director.FailedUser(failedContinuation(response)); // just let it go to the login page
     }
     else
     {
         _logger.InfoMessage(() => new SamlAuthenticationSucceeded(response));
         var persistedUsername = createLocalUser(response);
         director.SuccessfulUser(persistedUsername, successfulContinuation(response));
     }
 }
        protected override void beforeRunning()
        {
            var destination = Retrieve<SamlDestination>();


            _response = new SamlResponse
            {
                Id = Guid.NewGuid().ToString(),
                Status = SamlStatus.Success,
                Conditions = new ConditionGroup(),
                Authentication = new AuthenticationStatement(),
                Destination = (destination.DestinationUrl ?? Application.RootUrl).ToUri()
            };

            _now = Retrieve<ISystemTime>().UtcNow();
            _response.IssueInstant = new DateTimeOffset(_now);
        }
Esempio n. 5
0
        public HtmlDocument get_saml_poster()
        {
            var document = new HtmlDocument();
            document.Title = "Saml Poster";

            var form = new FormTag(_urls.UrlFor<SamlEndpoint>(x => x.post_test_saml()));

            document.Push(form);
            var textarea = form.Add("textarea").Attr("name", SamlAuthenticationStrategy.SamlResponseKey).Attr("rows", 20).Attr("cols", "100");
            if (SamlResponse != null)
            {
                var xml = _writer.Write(SamlResponse);
                textarea.Attr("value", xml);

                SamlResponse = null;
            }

            form.Add("input").Attr("type", "submit").Attr("value", "Submit").Id("saml-submit");

            return document;
        }
 protected virtual void validate(SamlResponse response)
 {
     // Nothing
 }
 protected abstract string createLocalUser(SamlResponse response);
 protected virtual FubuContinuation failedContinuation(SamlResponse response)
 {
     return null;
 }
 protected virtual FubuContinuation successfulContinuation(SamlResponse response)
 {
     return null;
 }
 public abstract bool CanHandle(SamlResponse response);
        public HtmlDocument WriteRedirectionHtml(SamlResponse response)
        {
            var responseString = _writer.Write(response);

            return new SamlResponseRedirectionDocument(responseString, response.Destination.ToString());
        } 
 protected override string createLocalUser(SamlResponse response)
 {
     return response.Subject.Name.Value;
 }
 public override bool CanHandle(SamlResponse response)
 {
     return response.AudienceRestrictions.SelectMany(x => x.Audiences).Any(x => _audiences.Contains(x));
 }
 public SamlAuthenticationSucceeded(SamlResponse response)
 {
     Name = response.Subject.Name.Value;
     Issuer = response.Issuer;
     SamlId = response.Id;
 }