{"id":322,"name":null,"description":"SAML SSO for Ruby","url":"https://github.com/saml-toolkits/ruby-saml","last_synced_at":"2026-04-30T19:30:27.454Z","repository":{"id":893163,"uuid":"644899","full_name":"SAML-Toolkits/ruby-saml","owner":"SAML-Toolkits","description":"SAML SSO for Ruby","archived":false,"fork":false,"pushed_at":"2026-04-15T08:02:24.000Z","size":3204,"stargazers_count":980,"open_issues_count":20,"forks_count":589,"subscribers_count":108,"default_branch":"master","last_synced_at":"2026-04-25T14:09:37.695Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/SAML-Toolkits.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"github":["SAML-Toolkits"]}},"created_at":"2010-05-03T18:39:04.000Z","updated_at":"2026-04-21T09:37:06.000Z","dependencies_parsed_at":"2023-09-11T17:11:15.740Z","dependency_job_id":"69948a06-f508-4e2a-8b4d-a178b2b0a6ed","html_url":"https://github.com/SAML-Toolkits/ruby-saml","commit_stats":{"total_commits":842,"total_committers":179,"mean_commits":4.70391061452514,"dds":0.7173396674584323,"last_synced_commit":"21b676bdf55452750d8ee5facd2f6e3c51927315"},"previous_names":["onelogin/ruby-saml"],"tags_count":69,"template":false,"template_full_name":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/SAML-Toolkits","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32269463,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-25T09:15:33.318Z","status":"ssl_error","status_checked_at":"2026-04-25T09:15:31.997Z","response_time":59,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"owner":{"login":"SAML-Toolkits","name":"SAML-Toolkits","uuid":"116213842","kind":"organization","description":"SAML-Toolkits maintained by Sixto Martin @ IAM Digital Services SL","email":"contact@iamdigitalservices.com","website":null,"location":"Spain","twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/116213842?v=4","repositories_count":6,"last_synced_at":"2026-01-18T06:45:44.194Z","metadata":{"has_sponsors_listing":true},"html_url":"https://github.com/SAML-Toolkits","funding_links":["https://github.com/sponsors/SAML-Toolkits"],"total_stars":null,"followers":46,"following":0,"created_at":"2023-02-26T02:35:00.158Z","updated_at":"2026-01-18T06:45:44.194Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/SAML-Toolkits","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/SAML-Toolkits/repositories"},"packages":[{"id":11699471,"name":"github.com/saml-toolkits/ruby-saml","ecosystem":"go","description":null,"homepage":null,"licenses":"mit","normalized_licenses":["MIT"],"repository_url":"https://github.com/saml-toolkits/ruby-saml","keywords_array":[],"namespace":null,"versions_count":57,"first_release_published_at":"2010-12-02T01:15:30.000Z","latest_release_published_at":"2025-07-29T18:51:00.000Z","latest_release_number":"v1.18.1","last_synced_at":"2026-04-25T17:04:11.227Z","created_at":"2025-05-28T10:02:10.058Z","updated_at":"2026-04-25T17:04:11.227Z","registry_url":"https://pkg.go.dev/github.com/saml-toolkits/ruby-saml","install_command":"go get github.com/saml-toolkits/ruby-saml","documentation_url":"https://pkg.go.dev/github.com/saml-toolkits/ruby-saml#section-documentation","metadata":{},"repo_metadata":{"id":893163,"uuid":"644899","full_name":"SAML-Toolkits/ruby-saml","owner":"SAML-Toolkits","description":"SAML SSO for Ruby","archived":false,"fork":false,"pushed_at":"2025-07-30T08:08:37.000Z","size":2950,"stargazers_count":965,"open_issues_count":20,"forks_count":592,"subscribers_count":109,"default_branch":"master","last_synced_at":"2025-09-28T10:35:10.984Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/SAML-Toolkits.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null},"funding":{"github":["SAML-Toolkits"]}},"created_at":"2010-05-03T18:39:04.000Z","updated_at":"2025-09-24T09:39:36.000Z","dependencies_parsed_at":"2023-09-11T17:11:15.740Z","dependency_job_id":"69948a06-f508-4e2a-8b4d-a178b2b0a6ed","html_url":"https://github.com/SAML-Toolkits/ruby-saml","commit_stats":{"total_commits":842,"total_committers":179,"mean_commits":4.70391061452514,"dds":0.7173396674584323,"last_synced_commit":"21b676bdf55452750d8ee5facd2f6e3c51927315"},"previous_names":["onelogin/ruby-saml"],"tags_count":69,"template":false,"template_full_name":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/SAML-Toolkits","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":277503540,"owners_count":25829216,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-29T02:00:09.175Z","response_time":84,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"},"owner_record":{"login":"SAML-Toolkits","name":"SAML-Toolkits","uuid":"116213842","kind":"organization","description":"SAML-Toolkits maintained by Sixto Martin @ IAM Digital Services SL","email":"contact@iamdigitalservices.com","website":null,"location":"Spain","twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/116213842?v=4","repositories_count":6,"last_synced_at":"2025-09-21T15:58:35.053Z","metadata":{"has_sponsors_listing":true},"html_url":"https://github.com/SAML-Toolkits","funding_links":["https://github.com/sponsors/SAML-Toolkits"],"total_stars":null,"followers":34,"following":0,"created_at":"2023-02-26T02:35:00.158Z","updated_at":"2025-09-21T15:58:35.054Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/SAML-Toolkits","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/SAML-Toolkits/repositories"},"tags":[{"name":"v1.18.1","sha":"8c395b5d75a2c4cd5516a705171b16a80cf19c35","kind":"commit","published_at":"2025-07-29T18:51:00.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/v1.18.1","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v1.18.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@v1.18.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v1.18.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v1.18.1/manifests"},{"name":"v1.12.4","sha":"48cc5b92e1dde8637a013dfd48cdf8ceadd499b2","kind":"commit","published_at":"2025-03-12T19:40:08.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/v1.12.4","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v1.12.4","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@v1.12.4","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v1.12.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v1.12.4/manifests"},{"name":"v1.18.0","sha":"6a7c040049babe748ee1bb4ca13898c47189114c","kind":"commit","published_at":"2025-03-12T18:32:16.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/v1.18.0","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v1.18.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@v1.18.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v1.18.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v1.18.0/manifests"},{"name":"v1.12.3","sha":"1ec5392bc506fe43a02dbb66b68741051c5ffeae","kind":"commit","published_at":"2024-09-10T17:17:25.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/v1.12.3","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v1.12.3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@v1.12.3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v1.12.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v1.12.3/manifests"},{"name":"v1.17.0","sha":"1bc447f297b769d1a9abeb619ce074bd9c410a72","kind":"commit","published_at":"2024-09-10T17:15:42.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/v1.17.0","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v1.17.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@v1.17.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v1.17.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v1.17.0/manifests"},{"name":"v1.16.0","sha":"148a4c2de713a98c58c28bbc7785c05698216a4d","kind":"commit","published_at":"2023-10-09T15:30:09.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/v1.16.0","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v1.16.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@v1.16.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v1.16.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v1.16.0/manifests"},{"name":"v1.15.0","sha":"f48a98139b4482b997f133399996c5c3c1e9d72d","kind":"commit","published_at":"2023-01-04T11:40:55.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/v1.15.0","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v1.15.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@v1.15.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v1.15.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v1.15.0/manifests"},{"name":"v1.14.0","sha":"c38d72425b11aee5b2be595d44b407f8dfd92d6a","kind":"commit","published_at":"2022-02-01T17:16:51.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/v1.14.0","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v1.14.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@v1.14.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v1.14.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v1.14.0/manifests"},{"name":"v1.13.0","sha":"5da850c36bbf678674f9321032df428139d7e434","kind":"commit","published_at":"2021-09-06T17:49:29.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/v1.13.0","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v1.13.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@v1.13.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v1.13.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v1.13.0/manifests"},{"name":"v1.12.2","sha":"bbb4fb6c483ade203b0cfde32a0843416b771491","kind":"commit","published_at":"2021-04-12T23:21:17.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/v1.12.2","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v1.12.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@v1.12.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v1.12.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v1.12.2/manifests"},{"name":"v1.12.1","sha":"79fc1d772d84ae4f80a4f5b747b00d830839657e","kind":"commit","published_at":"2021-04-05T21:22:59.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/v1.12.1","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v1.12.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@v1.12.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v1.12.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v1.12.1/manifests"},{"name":"v1.12.0","sha":"bbd954b87c08e5e202dbaae9070f7e4aab8b45f8","kind":"commit","published_at":"2021-02-18T19:19:49.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/v1.12.0","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v1.12.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@v1.12.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v1.12.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v1.12.0/manifests"},{"name":"v1.11.0","sha":"eae81404d8661046aa053d0f4b4fa80f569f9f17","kind":"commit","published_at":"2019-07-24T16:22:43.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/v1.11.0","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v1.11.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@v1.11.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v1.11.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v1.11.0/manifests"},{"name":"v1.10.2","sha":"688d9e927d8b2d22a8b4daa870740d234b7b76c8","kind":"commit","published_at":"2019-04-29T16:34:21.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/v1.10.2","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v1.10.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@v1.10.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v1.10.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v1.10.2/manifests"},{"name":"v1.10.1","sha":"ad9f76d3f91dd45646aeab4430a81ad4797b81e9","kind":"commit","published_at":"2019-04-08T12:49:11.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/v1.10.1","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v1.10.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@v1.10.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v1.10.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v1.10.1/manifests"},{"name":"v1.10.0","sha":"65827d3df4dd63a3f1a7979bcbba0fd4d5f9b007","kind":"commit","published_at":"2019-03-21T13:43:35.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/v1.10.0","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v1.10.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@v1.10.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v1.10.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v1.10.0/manifests"},{"name":"v1.9.0","sha":"16f36c176cb93846a71db2928bd0198fc417887f","kind":"commit","published_at":"2018-10-14T21:44:36.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/v1.9.0","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v1.9.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@v1.9.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v1.9.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v1.9.0/manifests"},{"name":"v1.8.0","sha":"51ebceee5ef6e529159f88e18bcbd3f3ae6c53b5","kind":"commit","published_at":"2018-04-23T14:47:50.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/v1.8.0","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v1.8.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@v1.8.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v1.8.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v1.8.0/manifests"},{"name":"v1.7.2","sha":"630a15600608217f35f45c4402de44cbfd72f618","kind":"commit","published_at":"2018-02-28T22:03:05.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/v1.7.2","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v1.7.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@v1.7.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v1.7.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v1.7.2/manifests"},{"name":"v1.7.1","sha":"0a7d012a8cab3cb016c81e7962bf7a3393944f92","kind":"commit","published_at":"2018-02-28T19:23:27.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/v1.7.1","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v1.7.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@v1.7.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v1.7.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v1.7.1/manifests"},{"name":"v1.6.2","sha":"082249efe498841e0747d2b3452f4ef5e867b025","kind":"commit","published_at":"2018-02-27T12:44:29.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/v1.6.2","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v1.6.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@v1.6.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v1.6.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v1.6.2/manifests"},{"name":"v1.7.0","sha":"082249efe498841e0747d2b3452f4ef5e867b025","kind":"commit","published_at":"2018-02-27T12:44:29.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/v1.7.0","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v1.7.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@v1.7.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v1.7.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v1.7.0/manifests"},{"name":"v0.9.3","sha":"04f1975a835ec47486fbe0caac1c71ac0ecdf3f4","kind":"commit","published_at":"2018-02-27T10:51:42.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/v0.9.3","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v0.9.3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@v0.9.3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v0.9.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v0.9.3/manifests"},{"name":"0.8.3","sha":"a2de8c13de8c08e0a15ba02f565099fbbee19813","kind":"commit","published_at":"2018-02-27T10:29:08.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/0.8.3","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/0.8.3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@0.8.3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/0.8.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/0.8.3/manifests"},{"name":"v1.6.1","sha":"414d144419fbb4473fb5135bbef401e4584c3d38","kind":"commit","published_at":"2018-01-15T12:46:07.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/v1.6.1","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v1.6.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@v1.6.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v1.6.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v1.6.1/manifests"},{"name":"v1.6.0","sha":"5bb3a7315b92f413921d2523c8bed174d4f1aa9d","kind":"commit","published_at":"2017-11-27T11:19:59.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/v1.6.0","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v1.6.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@v1.6.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v1.6.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v1.6.0/manifests"},{"name":"1.5.0","sha":"5dbc69a23a55e17f5550fb8f90af29200705a8e1","kind":"commit","published_at":"2017-08-31T10:40:41.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/1.5.0","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/1.5.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@1.5.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/1.5.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/1.5.0/manifests"},{"name":"1.4.3","sha":"debcf2328a7f670fe954f07f177068375fa73f2d","kind":"commit","published_at":"2017-05-18T18:57:22.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/1.4.3","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/1.4.3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@1.4.3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/1.4.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/1.4.3/manifests"},{"name":"1.4.2","sha":"b67e3599b308f8755c47d64dc3d61ab40a9525e3","kind":"commit","published_at":"2017-01-11T10:18:13.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/1.4.2","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/1.4.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@1.4.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/1.4.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/1.4.2/manifests"},{"name":"1.4.1","sha":"d4c8cff74e889411b8ed395b2ba5b30753843c0e","kind":"commit","published_at":"2016-10-19T12:56:08.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/1.4.1","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/1.4.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@1.4.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/1.4.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/1.4.1/manifests"},{"name":"1.4.0","sha":"3a9d1fe7052db1d0f16a268fecd5d5f4f7926aca","kind":"commit","published_at":"2016-10-13T21:18:17.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/1.4.0","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/1.4.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@1.4.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/1.4.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/1.4.0/manifests"},{"name":"1.3.1","sha":"55359e2276d35834679d4840e3c0286d542a9e21","kind":"commit","published_at":"2016-07-14T20:56:28.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/1.3.1","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/1.3.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@1.3.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/1.3.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/1.3.1/manifests"},{"name":"v1.3.0","sha":"171a41e8a1159005ca4beb888f1d97555f4621a9","kind":"commit","published_at":"2016-06-24T17:03:23.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/v1.3.0","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v1.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@v1.3.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v1.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v1.3.0/manifests"},{"name":"v1.2.0","sha":"5cfca6756514ae9efd3e0e16cfefcd5a09faefd3","kind":"commit","published_at":"2016-04-29T21:49:36.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/v1.2.0","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v1.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@v1.2.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v1.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v1.2.0/manifests"},{"name":"v1.1.2","sha":"c47dc02b12a40989b0b6665d63906b66849026ec","kind":"commit","published_at":"2016-02-15T20:31:27.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/v1.1.2","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v1.1.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@v1.1.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v1.1.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v1.1.2/manifests"},{"name":"v1.1.1","sha":"cce82eee39c4afbf826463251530ebbd7822178c","kind":"commit","published_at":"2015-11-10T12:13:27.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/v1.1.1","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v1.1.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@v1.1.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v1.1.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v1.1.1/manifests"},{"name":"v1.1.0","sha":"12c9f9caf2578060f6d97d10ec76cbe718d16ec0","kind":"commit","published_at":"2015-10-27T11:41:55.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/v1.1.0","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v1.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@v1.1.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v1.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v1.1.0/manifests"},{"name":"v1.0.0","sha":"05c82d9e74b1ef8f2e0ba0c3e341da0202a3c1d6","kind":"commit","published_at":"2015-07-01T17:44:23.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/v1.0.0","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v1.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@v1.0.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v1.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v1.0.0/manifests"},{"name":"v0.9.2","sha":"54c634917ef85a8b6730901dda20351493e15bb2","kind":"commit","published_at":"2015-04-28T23:08:20.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/v0.9.2","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v0.9.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@v0.9.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v0.9.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v0.9.2/manifests"},{"name":"v0.9.1","sha":"06e33122e993348d64bb2174bc426a87c10fe32b","kind":"commit","published_at":"2015-02-10T22:15:23.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/v0.9.1","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v0.9.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@v0.9.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v0.9.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v0.9.1/manifests"},{"name":"v0.9","sha":"854931db4f06ab3973cfe45fba68e68eab4c55a4","kind":"commit","published_at":"2015-01-26T22:36:06.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/v0.9","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v0.9","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@v0.9","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v0.9","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v0.9/manifests"},{"name":"0.8.2","sha":"c0b5ca42dd62251afc8f8b4fc5b340458ae3aed0","kind":"commit","published_at":"2015-01-26T18:45:49.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/0.8.2","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/0.8.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@0.8.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/0.8.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/0.8.2/manifests"},{"name":"0.8.1","sha":"84c3a6fad1008bda4848b0602dbba5a32e18d932","kind":"commit","published_at":"2014-02-25T18:45:13.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/0.8.1","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/0.8.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@0.8.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/0.8.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/0.8.1/manifests"},{"name":"0.8.0","sha":"e9a91c102498722ffbb136a248d039f4b3566884","kind":"commit","published_at":"2014-02-24T19:27:12.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/0.8.0","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/0.8.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@0.8.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/0.8.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/0.8.0/manifests"},{"name":"0.7.3","sha":"adb7aa4d2c8251a0957c31ae5ed80130aac0f4cc","kind":"commit","published_at":"2014-02-21T01:28:51.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/0.7.3","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/0.7.3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@0.7.3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/0.7.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/0.7.3/manifests"},{"name":"v0.7.1","sha":"7dcb127ca99ca18178b61220d0c6715a6decfc21","kind":"commit","published_at":"2013-01-24T00:09:13.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/v0.7.1","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v0.7.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@v0.7.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v0.7.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v0.7.1/manifests"},{"name":"v0.7.0","sha":"e9908511651007990168ebf3bdab94f2ec3b3db2","kind":"commit","published_at":"2013-01-24T00:07:55.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/v0.7.0","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v0.7.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@v0.7.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v0.7.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v0.7.0/manifests"},{"name":"v0.6.0","sha":"9c5d012ebc168595eb91f86f82ec2d9a29638a01","kind":"commit","published_at":"2012-11-02T18:45:06.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/v0.6.0","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v0.6.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@v0.6.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v0.6.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v0.6.0/manifests"},{"name":"v0.5.3","sha":"386b94d8cb931b449dca8380be610e0146228425","kind":"commit","published_at":"2012-04-18T17:13:49.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/v0.5.3","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v0.5.3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@v0.5.3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v0.5.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v0.5.3/manifests"},{"name":"v0.5.2","sha":"620cbed12c22015426280b1d4d3927bfb570252c","kind":"commit","published_at":"2012-04-14T16:50:11.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/v0.5.2","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v0.5.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@v0.5.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v0.5.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v0.5.2/manifests"},{"name":"v0.5.1","sha":"2202b9ecd78788f7401c68ff738517288de569bb","kind":"commit","published_at":"2012-04-13T22:27:43.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/v0.5.1","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v0.5.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@v0.5.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v0.5.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v0.5.1/manifests"},{"name":"v0.5.0","sha":"201807517740d452bb404314cea514600f303ac6","kind":"commit","published_at":"2012-04-13T22:22:22.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/v0.5.0","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v0.5.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@v0.5.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v0.5.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v0.5.0/manifests"},{"name":"v0.4.7","sha":"cd25bcbb76138ec3027d3c43322c0805c7b6d2cd","kind":"commit","published_at":"2011-06-29T22:29:15.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/v0.4.7","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v0.4.7","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@v0.4.7","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v0.4.7","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v0.4.7/manifests"},{"name":"v0.4.6","sha":"e9fcaf6286d59387be224cac1a1cfcfcc5b3c0ee","kind":"commit","published_at":"2011-06-28T19:51:09.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/v0.4.6","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v0.4.6","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@v0.4.6","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v0.4.6","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v0.4.6/manifests"},{"name":"v0.4.5","sha":"51ab54d0e52ecd21b16177a49d2a9a3829cd44b5","kind":"commit","published_at":"2011-06-17T19:25:25.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/v0.4.5","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v0.4.5","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@v0.4.5","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v0.4.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v0.4.5/manifests"},{"name":"v0.4.4","sha":"23e6250c97deadd1d637ce43c6562826d08e6e91","kind":"commit","published_at":"2011-06-10T19:47:42.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/v0.4.4","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v0.4.4","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@v0.4.4","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v0.4.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v0.4.4/manifests"},{"name":"v0.4.3","sha":"93093da7e70cd6ac91bcd2b382ea9daf5b9e80e8","kind":"commit","published_at":"2011-06-04T21:10:29.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/v0.4.3","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v0.4.3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@v0.4.3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v0.4.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v0.4.3/manifests"},{"name":"v0.4.2","sha":"ad3c4a19c90b17937643e5486a1954da1468bd99","kind":"commit","published_at":"2011-06-04T21:02:18.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/v0.4.2","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v0.4.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@v0.4.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v0.4.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v0.4.2/manifests"},{"name":"v0.4.1","sha":"874e2cf9d299108a017503a84fba4dbcd50f4ba7","kind":"commit","published_at":"2011-06-04T02:40:29.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/v0.4.1","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v0.4.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@v0.4.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v0.4.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v0.4.1/manifests"},{"name":"v0.4.0","sha":"ecd8b66c277c5581b37859b88c34ca14da7bf0d5","kind":"commit","published_at":"2011-05-03T21:07:18.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/v0.4.0","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v0.4.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@v0.4.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v0.4.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v0.4.0/manifests"},{"name":"v0.3.4","sha":"3cc39528e64e42df9162799ac9b8f1f5a3dccf2a","kind":"commit","published_at":"2011-04-28T15:02:45.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/v0.3.4","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v0.3.4","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@v0.3.4","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v0.3.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v0.3.4/manifests"},{"name":"v0.3.3","sha":"3785ff8928eca9767f709e906927a0e11607a533","kind":"commit","published_at":"2011-04-18T21:31:51.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/v0.3.3","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v0.3.3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@v0.3.3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v0.3.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v0.3.3/manifests"},{"name":"v0.3.2","sha":"74287b89b3d642d4cd8005f7f4ecb315ee8f331e","kind":"commit","published_at":"2011-03-08T08:55:03.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/v0.3.2","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v0.3.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@v0.3.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v0.3.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v0.3.2/manifests"},{"name":"v0.3.1","sha":"057c5ce3fd06a9706255e2612e4c3767d38659b7","kind":"commit","published_at":"2011-03-07T08:06:32.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/v0.3.1","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v0.3.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@v0.3.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v0.3.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v0.3.1/manifests"},{"name":"v0.3.0","sha":"0c33f973b145be11bf73448971d503e4f2d3af70","kind":"commit","published_at":"2011-03-03T11:45:53.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/v0.3.0","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v0.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@v0.3.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v0.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v0.3.0/manifests"},{"name":"v0.2.3","sha":"a199d3b1905cacd7652d62d1dba766598a16ca42","kind":"commit","published_at":"2011-02-21T20:08:03.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/v0.2.3","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v0.2.3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@v0.2.3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v0.2.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v0.2.3/manifests"},{"name":"v0.2.2","sha":"2e83ef4ceff6b275e0c5983061a8327325e6f955","kind":"commit","published_at":"2011-01-31T23:32:38.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/v0.2.2","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v0.2.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@v0.2.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v0.2.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v0.2.2/manifests"},{"name":"v0.2.1","sha":"aac25b608bc458bf9882a57136883ac721fe20fd","kind":"commit","published_at":"2010-12-02T01:33:24.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/v0.2.1","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v0.2.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@v0.2.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v0.2.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v0.2.1/manifests"},{"name":"v0.2.0","sha":"5b9797ab43f7e3cfe47ca2190bd05e76c489a0dd","kind":"commit","published_at":"2010-12-02T01:15:30.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/v0.2.0","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v0.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@v0.2.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v0.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v0.2.0/manifests"}]},"repo_metadata_updated_at":"2025-10-21T17:52:22.278Z","dependent_packages_count":0,"downloads":null,"downloads_period":null,"dependent_repos_count":0,"rankings":{"downloads":null,"dependent_repos_count":5.796978855198666,"dependent_packages_count":5.432117933329229,"stargazers_count":null,"forks_count":null,"docker_downloads_count":null,"average":5.614548394263947},"purl":"pkg:golang/github.com/saml-toolkits/ruby-saml","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/go/github.com/saml-toolkits/ruby-saml","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/go/github.com/saml-toolkits/ruby-saml","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/go/github.com/saml-toolkits/ruby-saml/dependencies","status":null,"funding_links":["https://github.com/sponsors/SAML-Toolkits"],"critical":null,"issue_metadata":{"last_synced_at":"2025-10-03T22:49:49.150Z","issues_count":75,"pull_requests_count":201,"avg_time_to_close_issue":45334184.9661017,"avg_time_to_close_pull_request":6963240.383233533,"issues_closed_count":59,"pull_requests_closed_count":167,"pull_request_authors_count":47,"issue_authors_count":50,"avg_comments_per_issue":2.973333333333333,"avg_comments_per_pull_request":1.880597014925373,"merged_pull_requests_count":123,"bot_issues_count":0,"bot_pull_requests_count":1,"past_year_issues_count":9,"past_year_pull_requests_count":69,"past_year_avg_time_to_close_issue":347955.6,"past_year_avg_time_to_close_pull_request":701086.804347826,"past_year_issues_closed_count":5,"past_year_pull_requests_closed_count":46,"past_year_pull_request_authors_count":9,"past_year_issue_authors_count":8,"past_year_avg_comments_per_issue":1.222222222222222,"past_year_avg_comments_per_pull_request":1.2753623188405796,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":0,"past_year_merged_pull_requests_count":36,"issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/issues","maintainers":[{"login":"johnnyshields","count":128,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/johnnyshields"},{"login":"pitbulk","count":27,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/pitbulk"}],"active_maintainers":[{"login":"johnnyshields","count":44,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/johnnyshields"},{"login":"pitbulk","count":11,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/pitbulk"}]},"versions_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages/github.com%2Fsaml-toolkits%2Fruby-saml/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages/github.com%2Fsaml-toolkits%2Fruby-saml/version_numbers","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages/github.com%2Fsaml-toolkits%2Fruby-saml/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages/github.com%2Fsaml-toolkits%2Fruby-saml/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages/github.com%2Fsaml-toolkits%2Fruby-saml/codemeta","maintainers":[],"registry":{"name":"proxy.golang.org","url":"https://proxy.golang.org","ecosystem":"go","default":true,"packages_count":2118892,"maintainers_count":0,"namespaces_count":782439,"keywords_count":112823,"github":"golang","metadata":{"funded_packages_count":53495},"icon_url":"https://github.com/golang.png","created_at":"2022-04-04T15:19:22.939Z","updated_at":"2026-04-19T05:14:45.920Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages","maintainers_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/maintainers","namespaces_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/namespaces"}},{"id":12317138,"name":"ruby-saml","ecosystem":"rubygems","description":"SAML Ruby toolkit. Add SAML support to your Ruby software using this library","homepage":"https://github.com/saml-toolkits/ruby-saml","licenses":"MIT","normalized_licenses":["MIT"],"repository_url":"https://github.com/saml-toolkits/ruby-saml","keywords_array":[],"namespace":null,"versions_count":89,"first_release_published_at":"2010-08-11T19:07:57.131Z","latest_release_published_at":"2025-07-29T18:57:13.891Z","latest_release_number":"1.18.1","last_synced_at":"2026-04-28T19:01:11.544Z","created_at":"2025-10-07T05:41:19.966Z","updated_at":"2026-04-28T19:08:09.322Z","registry_url":"https://gem.coop/gems/ruby-saml","install_command":"gem install ruby-saml -s https://gem.coop","documentation_url":"http://www.rubydoc.info/gems/ruby-saml/","metadata":{"funding":null},"repo_metadata":{"id":893163,"uuid":"644899","full_name":"SAML-Toolkits/ruby-saml","owner":"SAML-Toolkits","description":"SAML SSO for Ruby","archived":false,"fork":false,"pushed_at":"2026-04-15T08:02:24.000Z","size":3204,"stargazers_count":980,"open_issues_count":20,"forks_count":589,"subscribers_count":108,"default_branch":"master","last_synced_at":"2026-04-25T14:09:37.695Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/SAML-Toolkits.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"github":["SAML-Toolkits"]}},"created_at":"2010-05-03T18:39:04.000Z","updated_at":"2026-04-21T09:37:06.000Z","dependencies_parsed_at":"2023-09-11T17:11:15.740Z","dependency_job_id":"69948a06-f508-4e2a-8b4d-a178b2b0a6ed","html_url":"https://github.com/SAML-Toolkits/ruby-saml","commit_stats":{"total_commits":842,"total_committers":179,"mean_commits":4.70391061452514,"dds":0.7173396674584323,"last_synced_commit":"21b676bdf55452750d8ee5facd2f6e3c51927315"},"previous_names":["onelogin/ruby-saml"],"tags_count":69,"template":false,"template_full_name":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/SAML-Toolkits","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32269463,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-25T09:15:33.318Z","status":"ssl_error","status_checked_at":"2026-04-25T09:15:31.997Z","response_time":59,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"},"owner_record":{"login":"SAML-Toolkits","name":"SAML-Toolkits","uuid":"116213842","kind":"organization","description":"SAML-Toolkits maintained by Sixto Martin @ IAM Digital Services SL","email":"contact@iamdigitalservices.com","website":null,"location":"Spain","twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/116213842?v=4","repositories_count":6,"last_synced_at":"2026-01-18T06:45:44.194Z","metadata":{"has_sponsors_listing":true},"html_url":"https://github.com/SAML-Toolkits","funding_links":["https://github.com/sponsors/SAML-Toolkits"],"total_stars":null,"followers":46,"following":0,"created_at":"2023-02-26T02:35:00.158Z","updated_at":"2026-01-18T06:45:44.194Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/SAML-Toolkits","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/SAML-Toolkits/repositories"},"tags":[{"name":"v1.18.1","sha":"8c395b5d75a2c4cd5516a705171b16a80cf19c35","kind":"commit","published_at":"2025-07-29T18:51:00.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/v1.18.1","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v1.18.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@v1.18.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v1.18.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v1.18.1/manifests"},{"name":"v1.12.4","sha":"48cc5b92e1dde8637a013dfd48cdf8ceadd499b2","kind":"commit","published_at":"2025-03-12T19:40:08.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/v1.12.4","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v1.12.4","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@v1.12.4","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v1.12.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v1.12.4/manifests"},{"name":"v1.18.0","sha":"6a7c040049babe748ee1bb4ca13898c47189114c","kind":"commit","published_at":"2025-03-12T18:32:16.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/v1.18.0","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v1.18.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@v1.18.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v1.18.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v1.18.0/manifests"},{"name":"v1.12.3","sha":"1ec5392bc506fe43a02dbb66b68741051c5ffeae","kind":"commit","published_at":"2024-09-10T17:17:25.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/v1.12.3","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v1.12.3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@v1.12.3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v1.12.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v1.12.3/manifests"},{"name":"v1.17.0","sha":"1bc447f297b769d1a9abeb619ce074bd9c410a72","kind":"commit","published_at":"2024-09-10T17:15:42.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/v1.17.0","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v1.17.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@v1.17.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v1.17.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v1.17.0/manifests"},{"name":"v1.16.0","sha":"148a4c2de713a98c58c28bbc7785c05698216a4d","kind":"commit","published_at":"2023-10-09T15:30:09.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/v1.16.0","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v1.16.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@v1.16.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v1.16.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v1.16.0/manifests"},{"name":"v1.15.0","sha":"f48a98139b4482b997f133399996c5c3c1e9d72d","kind":"commit","published_at":"2023-01-04T11:40:55.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/v1.15.0","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v1.15.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@v1.15.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v1.15.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v1.15.0/manifests"},{"name":"v1.14.0","sha":"c38d72425b11aee5b2be595d44b407f8dfd92d6a","kind":"commit","published_at":"2022-02-01T17:16:51.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/v1.14.0","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v1.14.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@v1.14.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v1.14.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v1.14.0/manifests"},{"name":"v1.13.0","sha":"5da850c36bbf678674f9321032df428139d7e434","kind":"commit","published_at":"2021-09-06T17:49:29.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/v1.13.0","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v1.13.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@v1.13.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v1.13.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v1.13.0/manifests"},{"name":"v1.12.2","sha":"bbb4fb6c483ade203b0cfde32a0843416b771491","kind":"commit","published_at":"2021-04-12T23:21:17.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/v1.12.2","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v1.12.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@v1.12.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v1.12.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v1.12.2/manifests"},{"name":"v1.12.1","sha":"79fc1d772d84ae4f80a4f5b747b00d830839657e","kind":"commit","published_at":"2021-04-05T21:22:59.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/v1.12.1","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v1.12.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@v1.12.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v1.12.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v1.12.1/manifests"},{"name":"v1.12.0","sha":"bbd954b87c08e5e202dbaae9070f7e4aab8b45f8","kind":"commit","published_at":"2021-02-18T19:19:49.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/v1.12.0","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v1.12.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@v1.12.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v1.12.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v1.12.0/manifests"},{"name":"v1.11.0","sha":"eae81404d8661046aa053d0f4b4fa80f569f9f17","kind":"commit","published_at":"2019-07-24T16:22:43.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/v1.11.0","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v1.11.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@v1.11.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v1.11.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v1.11.0/manifests"},{"name":"v1.10.2","sha":"688d9e927d8b2d22a8b4daa870740d234b7b76c8","kind":"commit","published_at":"2019-04-29T16:34:21.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/v1.10.2","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v1.10.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@v1.10.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v1.10.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v1.10.2/manifests"},{"name":"v1.10.1","sha":"ad9f76d3f91dd45646aeab4430a81ad4797b81e9","kind":"commit","published_at":"2019-04-08T12:49:11.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/v1.10.1","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v1.10.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@v1.10.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v1.10.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v1.10.1/manifests"},{"name":"v1.10.0","sha":"65827d3df4dd63a3f1a7979bcbba0fd4d5f9b007","kind":"commit","published_at":"2019-03-21T13:43:35.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/v1.10.0","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v1.10.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@v1.10.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v1.10.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v1.10.0/manifests"},{"name":"v1.9.0","sha":"16f36c176cb93846a71db2928bd0198fc417887f","kind":"commit","published_at":"2018-10-14T21:44:36.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/v1.9.0","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v1.9.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@v1.9.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v1.9.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v1.9.0/manifests"},{"name":"v1.8.0","sha":"51ebceee5ef6e529159f88e18bcbd3f3ae6c53b5","kind":"commit","published_at":"2018-04-23T14:47:50.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/v1.8.0","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v1.8.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@v1.8.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v1.8.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v1.8.0/manifests"},{"name":"v1.7.2","sha":"630a15600608217f35f45c4402de44cbfd72f618","kind":"commit","published_at":"2018-02-28T22:03:05.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/v1.7.2","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v1.7.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@v1.7.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v1.7.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v1.7.2/manifests"},{"name":"v1.7.1","sha":"0a7d012a8cab3cb016c81e7962bf7a3393944f92","kind":"commit","published_at":"2018-02-28T19:23:27.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/v1.7.1","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v1.7.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@v1.7.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v1.7.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v1.7.1/manifests"},{"name":"v1.7.0","sha":"082249efe498841e0747d2b3452f4ef5e867b025","kind":"commit","published_at":"2018-02-27T12:44:29.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/v1.7.0","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v1.7.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@v1.7.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v1.7.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v1.7.0/manifests"},{"name":"v1.6.2","sha":"082249efe498841e0747d2b3452f4ef5e867b025","kind":"commit","published_at":"2018-02-27T12:44:29.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/v1.6.2","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v1.6.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@v1.6.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v1.6.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v1.6.2/manifests"},{"name":"v0.9.3","sha":"04f1975a835ec47486fbe0caac1c71ac0ecdf3f4","kind":"commit","published_at":"2018-02-27T10:51:42.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/v0.9.3","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v0.9.3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@v0.9.3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v0.9.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v0.9.3/manifests"},{"name":"0.8.3","sha":"a2de8c13de8c08e0a15ba02f565099fbbee19813","kind":"commit","published_at":"2018-02-27T10:29:08.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/0.8.3","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/0.8.3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@0.8.3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/0.8.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/0.8.3/manifests"},{"name":"v1.6.1","sha":"414d144419fbb4473fb5135bbef401e4584c3d38","kind":"commit","published_at":"2018-01-15T12:46:07.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/v1.6.1","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v1.6.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@v1.6.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v1.6.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v1.6.1/manifests"},{"name":"v1.6.0","sha":"5bb3a7315b92f413921d2523c8bed174d4f1aa9d","kind":"commit","published_at":"2017-11-27T11:19:59.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/v1.6.0","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v1.6.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@v1.6.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v1.6.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v1.6.0/manifests"},{"name":"1.5.0","sha":"5dbc69a23a55e17f5550fb8f90af29200705a8e1","kind":"commit","published_at":"2017-08-31T10:40:41.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/1.5.0","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/1.5.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@1.5.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/1.5.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/1.5.0/manifests"},{"name":"1.4.3","sha":"debcf2328a7f670fe954f07f177068375fa73f2d","kind":"commit","published_at":"2017-05-18T18:57:22.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/1.4.3","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/1.4.3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@1.4.3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/1.4.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/1.4.3/manifests"},{"name":"1.4.2","sha":"b67e3599b308f8755c47d64dc3d61ab40a9525e3","kind":"commit","published_at":"2017-01-11T10:18:13.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/1.4.2","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/1.4.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@1.4.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/1.4.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/1.4.2/manifests"},{"name":"1.4.1","sha":"d4c8cff74e889411b8ed395b2ba5b30753843c0e","kind":"commit","published_at":"2016-10-19T12:56:08.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/1.4.1","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/1.4.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@1.4.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/1.4.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/1.4.1/manifests"},{"name":"1.4.0","sha":"3a9d1fe7052db1d0f16a268fecd5d5f4f7926aca","kind":"commit","published_at":"2016-10-13T21:18:17.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/1.4.0","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/1.4.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@1.4.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/1.4.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/1.4.0/manifests"},{"name":"1.3.1","sha":"55359e2276d35834679d4840e3c0286d542a9e21","kind":"commit","published_at":"2016-07-14T20:56:28.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/1.3.1","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/1.3.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@1.3.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/1.3.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/1.3.1/manifests"},{"name":"v1.3.0","sha":"171a41e8a1159005ca4beb888f1d97555f4621a9","kind":"commit","published_at":"2016-06-24T17:03:23.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/v1.3.0","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v1.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@v1.3.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v1.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v1.3.0/manifests"},{"name":"v1.2.0","sha":"5cfca6756514ae9efd3e0e16cfefcd5a09faefd3","kind":"commit","published_at":"2016-04-29T21:49:36.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/v1.2.0","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v1.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@v1.2.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v1.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v1.2.0/manifests"},{"name":"v1.1.2","sha":"c47dc02b12a40989b0b6665d63906b66849026ec","kind":"commit","published_at":"2016-02-15T20:31:27.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/v1.1.2","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v1.1.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@v1.1.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v1.1.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v1.1.2/manifests"},{"name":"v1.1.1","sha":"cce82eee39c4afbf826463251530ebbd7822178c","kind":"commit","published_at":"2015-11-10T12:13:27.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/v1.1.1","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v1.1.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@v1.1.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v1.1.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v1.1.1/manifests"},{"name":"v1.1.0","sha":"12c9f9caf2578060f6d97d10ec76cbe718d16ec0","kind":"commit","published_at":"2015-10-27T11:41:55.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/v1.1.0","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v1.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@v1.1.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v1.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v1.1.0/manifests"},{"name":"v1.0.0","sha":"05c82d9e74b1ef8f2e0ba0c3e341da0202a3c1d6","kind":"commit","published_at":"2015-07-01T17:44:23.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/v1.0.0","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v1.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@v1.0.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v1.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v1.0.0/manifests"},{"name":"v0.9.2","sha":"54c634917ef85a8b6730901dda20351493e15bb2","kind":"commit","published_at":"2015-04-28T23:08:20.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/v0.9.2","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v0.9.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@v0.9.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v0.9.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v0.9.2/manifests"},{"name":"v0.9.1","sha":"06e33122e993348d64bb2174bc426a87c10fe32b","kind":"commit","published_at":"2015-02-10T22:15:23.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/v0.9.1","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v0.9.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@v0.9.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v0.9.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v0.9.1/manifests"},{"name":"v0.9","sha":"854931db4f06ab3973cfe45fba68e68eab4c55a4","kind":"commit","published_at":"2015-01-26T22:36:06.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/v0.9","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v0.9","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@v0.9","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v0.9","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v0.9/manifests"},{"name":"0.8.2","sha":"c0b5ca42dd62251afc8f8b4fc5b340458ae3aed0","kind":"commit","published_at":"2015-01-26T18:45:49.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/0.8.2","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/0.8.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@0.8.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/0.8.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/0.8.2/manifests"},{"name":"0.8.1","sha":"84c3a6fad1008bda4848b0602dbba5a32e18d932","kind":"commit","published_at":"2014-02-25T18:45:13.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/0.8.1","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/0.8.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@0.8.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/0.8.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/0.8.1/manifests"},{"name":"0.8.0","sha":"e9a91c102498722ffbb136a248d039f4b3566884","kind":"commit","published_at":"2014-02-24T19:27:12.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/0.8.0","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/0.8.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@0.8.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/0.8.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/0.8.0/manifests"},{"name":"0.7.3","sha":"adb7aa4d2c8251a0957c31ae5ed80130aac0f4cc","kind":"commit","published_at":"2014-02-21T01:28:51.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/0.7.3","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/0.7.3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@0.7.3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/0.7.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/0.7.3/manifests"},{"name":"v0.7.1","sha":"7dcb127ca99ca18178b61220d0c6715a6decfc21","kind":"commit","published_at":"2013-01-24T00:09:13.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/v0.7.1","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v0.7.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@v0.7.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v0.7.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v0.7.1/manifests"},{"name":"v0.7.0","sha":"e9908511651007990168ebf3bdab94f2ec3b3db2","kind":"commit","published_at":"2013-01-24T00:07:55.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/v0.7.0","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v0.7.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@v0.7.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v0.7.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v0.7.0/manifests"},{"name":"v0.6.0","sha":"9c5d012ebc168595eb91f86f82ec2d9a29638a01","kind":"commit","published_at":"2012-11-02T18:45:06.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/v0.6.0","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v0.6.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@v0.6.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v0.6.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v0.6.0/manifests"},{"name":"v0.5.3","sha":"386b94d8cb931b449dca8380be610e0146228425","kind":"commit","published_at":"2012-04-18T17:13:49.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/v0.5.3","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v0.5.3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@v0.5.3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v0.5.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v0.5.3/manifests"},{"name":"v0.5.2","sha":"620cbed12c22015426280b1d4d3927bfb570252c","kind":"commit","published_at":"2012-04-14T16:50:11.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/v0.5.2","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v0.5.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@v0.5.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v0.5.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v0.5.2/manifests"},{"name":"v0.5.1","sha":"2202b9ecd78788f7401c68ff738517288de569bb","kind":"commit","published_at":"2012-04-13T22:27:43.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/v0.5.1","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v0.5.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@v0.5.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v0.5.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v0.5.1/manifests"},{"name":"v0.5.0","sha":"201807517740d452bb404314cea514600f303ac6","kind":"commit","published_at":"2012-04-13T22:22:22.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/v0.5.0","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v0.5.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@v0.5.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v0.5.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v0.5.0/manifests"},{"name":"v0.4.7","sha":"cd25bcbb76138ec3027d3c43322c0805c7b6d2cd","kind":"commit","published_at":"2011-06-29T22:29:15.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/v0.4.7","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v0.4.7","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@v0.4.7","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v0.4.7","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v0.4.7/manifests"},{"name":"v0.4.6","sha":"e9fcaf6286d59387be224cac1a1cfcfcc5b3c0ee","kind":"commit","published_at":"2011-06-28T19:51:09.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/v0.4.6","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v0.4.6","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@v0.4.6","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v0.4.6","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v0.4.6/manifests"},{"name":"v0.4.5","sha":"51ab54d0e52ecd21b16177a49d2a9a3829cd44b5","kind":"commit","published_at":"2011-06-17T19:25:25.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/v0.4.5","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v0.4.5","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@v0.4.5","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v0.4.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v0.4.5/manifests"},{"name":"v0.4.4","sha":"23e6250c97deadd1d637ce43c6562826d08e6e91","kind":"commit","published_at":"2011-06-10T19:47:42.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/v0.4.4","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v0.4.4","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@v0.4.4","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v0.4.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v0.4.4/manifests"},{"name":"v0.4.3","sha":"93093da7e70cd6ac91bcd2b382ea9daf5b9e80e8","kind":"commit","published_at":"2011-06-04T21:10:29.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/v0.4.3","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v0.4.3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@v0.4.3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v0.4.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v0.4.3/manifests"},{"name":"v0.4.2","sha":"ad3c4a19c90b17937643e5486a1954da1468bd99","kind":"commit","published_at":"2011-06-04T21:02:18.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/v0.4.2","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v0.4.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@v0.4.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v0.4.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v0.4.2/manifests"},{"name":"v0.4.1","sha":"874e2cf9d299108a017503a84fba4dbcd50f4ba7","kind":"commit","published_at":"2011-06-04T02:40:29.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/v0.4.1","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v0.4.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@v0.4.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v0.4.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v0.4.1/manifests"},{"name":"v0.4.0","sha":"ecd8b66c277c5581b37859b88c34ca14da7bf0d5","kind":"commit","published_at":"2011-05-03T21:07:18.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/v0.4.0","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v0.4.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@v0.4.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v0.4.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v0.4.0/manifests"},{"name":"v0.3.4","sha":"3cc39528e64e42df9162799ac9b8f1f5a3dccf2a","kind":"commit","published_at":"2011-04-28T15:02:45.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/v0.3.4","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v0.3.4","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@v0.3.4","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v0.3.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v0.3.4/manifests"},{"name":"v0.3.3","sha":"3785ff8928eca9767f709e906927a0e11607a533","kind":"commit","published_at":"2011-04-18T21:31:51.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/v0.3.3","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v0.3.3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@v0.3.3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v0.3.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v0.3.3/manifests"},{"name":"v0.3.2","sha":"74287b89b3d642d4cd8005f7f4ecb315ee8f331e","kind":"commit","published_at":"2011-03-08T08:55:03.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/v0.3.2","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v0.3.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@v0.3.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v0.3.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v0.3.2/manifests"},{"name":"v0.3.1","sha":"057c5ce3fd06a9706255e2612e4c3767d38659b7","kind":"commit","published_at":"2011-03-07T08:06:32.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/v0.3.1","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v0.3.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@v0.3.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v0.3.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v0.3.1/manifests"},{"name":"v0.3.0","sha":"0c33f973b145be11bf73448971d503e4f2d3af70","kind":"commit","published_at":"2011-03-03T11:45:53.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/v0.3.0","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v0.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@v0.3.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v0.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v0.3.0/manifests"},{"name":"v0.2.3","sha":"a199d3b1905cacd7652d62d1dba766598a16ca42","kind":"commit","published_at":"2011-02-21T20:08:03.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/v0.2.3","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v0.2.3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@v0.2.3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v0.2.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v0.2.3/manifests"},{"name":"v0.2.2","sha":"2e83ef4ceff6b275e0c5983061a8327325e6f955","kind":"commit","published_at":"2011-01-31T23:32:38.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/v0.2.2","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v0.2.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@v0.2.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v0.2.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v0.2.2/manifests"},{"name":"v0.2.1","sha":"aac25b608bc458bf9882a57136883ac721fe20fd","kind":"commit","published_at":"2010-12-02T01:33:24.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/v0.2.1","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v0.2.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@v0.2.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v0.2.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v0.2.1/manifests"},{"name":"v0.2.0","sha":"5b9797ab43f7e3cfe47ca2190bd05e76c489a0dd","kind":"commit","published_at":"2010-12-02T01:15:30.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/v0.2.0","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v0.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@v0.2.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v0.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v0.2.0/manifests"}]},"repo_metadata_updated_at":"2026-04-28T19:08:09.322Z","dependent_packages_count":0,"downloads":128381479,"downloads_period":"total","dependent_repos_count":0,"rankings":{"downloads":0.20328170194361095,"dependent_repos_count":0.0,"dependent_packages_count":0.0,"stargazers_count":null,"forks_count":null,"docker_downloads_count":0.1594896331738437,"average":0.09069283377936366},"purl":"pkg:gem/ruby-saml?repository_url=https://gem.coop","advisories":[{"uuid":"GSA_kwCzR0hTQS14NGg5LWd3djMtcjRtNM4ABPUR","url":"https://github.com/advisories/GHSA-x4h9-gwv3-r4m4","title":"Ruby-saml allows a Libxml2 Canonicalization error to bypass Digest/Signature validation","description":"### Summary\nRuby-saml up to and including 1.12.4, there is an authentication bypass vulnerability because of an issue at libxml2 canonicalization process used by Nokogiri for document transformation. That allows an attacker to be able to execute a Signature Wrapping attack. The vulnerability does not affect the version 1.18.0.\n\n### Details\nWhen libxml2’s canonicalization is invoked on an invalid XML input, it may return an empty string rather than a canonicalized node. ruby-saml then proceeds to compute the DigestValue over this empty string, treating it as if canonicalization succeeded.\n\n### Impact\n1. Digest bypass: By crafting input that causes canonicalization to yield an empty string, the attacker can manipulate validation to pass incorrectly.\n\n2. Signature replay on empty canonical form: If an empty string has been signed once (e.g., in a prior interaction or via a misconfigured flow), that signature can potentially be replayed to bypass authentication.","origin":"UNSPECIFIED","severity":"CRITICAL","published_at":"2025-12-08T22:03:19.000Z","withdrawn_at":null,"classification":"GENERAL","cvss_score":9.3,"cvss_vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N","references":["https://github.com/SAML-Toolkits/ruby-saml/security/advisories/GHSA-x4h9-gwv3-r4m4","https://github.com/SAML-Toolkits/ruby-saml/commit/acac9e9cc0b9a507882c614f25d41f8b47be349a","https://nvd.nist.gov/vuln/detail/CVE-2025-66568","https://github.com/rubysec/ruby-advisory-db/blob/master/gems/ruby-saml/CVE-2025-66568.yml","https://github.com/advisories/GHSA-x4h9-gwv3-r4m4"],"source_kind":"github","identifiers":["GHSA-x4h9-gwv3-r4m4","CVE-2025-66568"],"repository_url":null,"blast_radius":0.0,"created_at":"2025-12-08T23:00:07.273Z","updated_at":"2026-01-04T01:00:16.788Z","epss_percentage":0.00036,"epss_percentile":0.10424,"packages":[{"ecosystem":"rubygems","package_name":"ruby-saml","versions":[{"first_patched_version":"1.18.0","vulnerable_version_range":"\u003c 1.18.0"}],"purl":"pkg:gem/ruby-saml","statistics":{"dependent_packages_count":20,"dependent_repos_count":2297,"downloads":121429812,"downloads_period":"total"},"affected_versions":["0.0.5","0.0.6","0.0.7","0.0.8","0.2.1","0.2.2","0.2.3","0.3.0","0.3.1","0.3.2","0.3.3","0.3.4","0.4.0","0.4.1","0.4.2","0.4.3","0.4.4","0.4.5","0.4.6","0.4.7","0.5.0","0.5.1","0.5.2","0.5.3","0.6.0","0.7.0","0.7.1","0.7.2","0.7.3","0.8.0","0.8.1","0.8.2","0.8.3","0.8.4","0.8.5","0.8.6","0.8.7","0.8.8","0.8.9","0.8.10","0.8.11","0.8.12","0.8.13","0.8.14","0.8.15","0.8.16","0.8.17","0.8.18","0.9.1","0.9.2","0.9.3","0.9.4","1.0.0","1.1.0","1.1.1","1.1.2","1.2.0","1.3.0","1.3.1","1.4.0","1.4.1","1.4.2","1.4.3","1.5.0","1.6.0","1.6.1","1.6.2","1.7.0","1.7.1","1.7.2","1.8.0","1.9.0","1.10.0","1.10.1","1.10.2","1.11.0","1.12.0","1.12.1","1.12.2","1.12.3","1.12.4","1.13.0","1.14.0","1.15.0","1.16.0","1.17.0"],"unaffected_versions":["1.18.0","1.18.1"]}]},{"uuid":"GSA_kwCzR0hTQS05djhqLXg1MzQtMmZ4M84ABPUQ","url":"https://github.com/advisories/GHSA-9v8j-x534-2fx3","title":"Ruby-saml has a SAML authentication bypass due to namespace handling (parser differential)","description":"### Summary\n\nRuby-saml up to and including 1.12.4, there is an authentication bypass vulnerability because of an incomplete fix for CVE-2025-25292. ReXML and Nokogiri parse XML differently, the parsers can generate entirely different document structures from the same XML input. That allows an attacker to be able to execute a Signature Wrapping attack. The vulnerability does not affect the version 1.18.0.\n\n### Impact\nThat allows an attacker to be able to execute a Signature Wrapping attack and bypass the authentication","origin":"UNSPECIFIED","severity":"CRITICAL","published_at":"2025-12-08T21:30:56.000Z","withdrawn_at":null,"classification":"GENERAL","cvss_score":9.3,"cvss_vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N","references":["https://github.com/SAML-Toolkits/ruby-saml/security/advisories/GHSA-9v8j-x534-2fx3","https://github.com/SAML-Toolkits/ruby-saml/commit/e9c1cdbd0f9afa467b585de279db0cbd0fb8ae97","https://github.com/advisories/GHSA-754f-8gm6-c4r2","https://nvd.nist.gov/vuln/detail/CVE-2025-66567","https://github.com/rubysec/ruby-advisory-db/blob/master/gems/ruby-saml/CVE-2025-66567.yml","https://github.com/advisories/GHSA-9v8j-x534-2fx3"],"source_kind":"github","identifiers":["GHSA-9v8j-x534-2fx3","CVE-2025-66567"],"repository_url":null,"blast_radius":0.0,"created_at":"2025-12-08T22:00:08.305Z","updated_at":"2026-01-04T01:00:16.789Z","epss_percentage":0.00037,"epss_percentile":0.11033,"packages":[{"ecosystem":"rubygems","package_name":"ruby-saml","versions":[{"first_patched_version":"1.18.0","vulnerable_version_range":"\u003c 1.18.0"}],"purl":"pkg:gem/ruby-saml","statistics":{"dependent_packages_count":20,"dependent_repos_count":2297,"downloads":121429812,"downloads_period":"total"},"affected_versions":["0.0.5","0.0.6","0.0.7","0.0.8","0.2.1","0.2.2","0.2.3","0.3.0","0.3.1","0.3.2","0.3.3","0.3.4","0.4.0","0.4.1","0.4.2","0.4.3","0.4.4","0.4.5","0.4.6","0.4.7","0.5.0","0.5.1","0.5.2","0.5.3","0.6.0","0.7.0","0.7.1","0.7.2","0.7.3","0.8.0","0.8.1","0.8.2","0.8.3","0.8.4","0.8.5","0.8.6","0.8.7","0.8.8","0.8.9","0.8.10","0.8.11","0.8.12","0.8.13","0.8.14","0.8.15","0.8.16","0.8.17","0.8.18","0.9.1","0.9.2","0.9.3","0.9.4","1.0.0","1.1.0","1.1.1","1.1.2","1.2.0","1.3.0","1.3.1","1.4.0","1.4.1","1.4.2","1.4.3","1.5.0","1.6.0","1.6.1","1.6.2","1.7.0","1.7.1","1.7.2","1.8.0","1.9.0","1.10.0","1.10.1","1.10.2","1.11.0","1.12.0","1.12.1","1.12.2","1.12.3","1.12.4","1.13.0","1.14.0","1.15.0","1.16.0","1.17.0"],"unaffected_versions":["1.18.0","1.18.1"]}]},{"uuid":"GSA_kwCzR0hTQS1ycnFoLTkzYzgtajk2Ns4ABKp9","url":"https://github.com/advisories/GHSA-rrqh-93c8-j966","title":"Ruby SAML DOS vulnerability with large SAML response","description":"### Summary\nA denial-of-service vulnerability exists in ruby-saml even with the message_max_bytesize setting configured. The vulnerability occurs because the SAML response is validated for Base64 format prior to checking the message size, leading to potential resource exhaustion.\n\n### Details\n`ruby-saml` includes a `message_max_bytesize` setting intended to prevent DOS attacks and decompression bombs. However, this protection is ineffective in some cases due to the order of operations in the code:\n\nhttps://github.com/SAML-Toolkits/ruby-saml/blob/fbbedc978300deb9355a8e505849666974ef2e67/lib/onelogin/ruby-saml/saml_message.rb\n\n```ruby\n      def decode_raw_saml(saml, settings = nil)\n        return saml unless base64_encoded?(saml) # \u003c--- Issue here. Should be moved after next code block.\n\n        settings = OneLogin::RubySaml::Settings.new if settings.nil?\n        if saml.bytesize \u003e settings.message_max_bytesize\n          raise ValidationError.new(\"Encoded SAML Message exceeds \" + settings.message_max_bytesize.to_s + \" bytes, so was rejected\")\n        end\n\n        decoded = decode(saml)\n        ...\n      end\n```\n\nThe vulnerability is in the execution order. Prior to checking bytesize the `base64_encoded?` function performs regex matching on the entire input string:\n\n```ruby\n!!string.gsub(/[\\r\\n]|\\\\r|\\\\n|\\s/, \"\").match(BASE64_FORMAT)\n```\n\n### Impact\n_What kind of vulnerability is it? Who is impacted?_\n\nWhen successfully exploited, this vulnerability can lead to:\n\n- Excessive memory consumption\n- High CPU utilization\n- Application slowdown or unresponsiveness\n- Complete application crash in severe cases\n- Potential denial of service for legitimate users\n\nAll applications using `ruby-saml` with SAML configured and enabled are vulnerable.\n\n### Potential Solution\n\nReorder the validation steps to ensure max bytesize is checked first\n\n```ruby\ndef decode_raw_saml(saml, settings = nil)\n  settings = OneLogin::RubySaml::Settings.new if settings.nil?\n\n  if saml.bytesize \u003e settings.message_max_bytesize\n    raise ValidationError.new(\"Encoded SAML Message exceeds \" + settings.message_max_bytesize.to_s + \" bytes, so was rejected\")\n  end\n  \n  return saml unless base64_encoded?(saml)\n  decoded = decode(saml)\n  ...\nend\n```","origin":"UNSPECIFIED","severity":"MODERATE","published_at":"2025-07-30T13:20:05.000Z","withdrawn_at":null,"classification":"GENERAL","cvss_score":6.9,"cvss_vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:L/SC:N/SI:N/SA:N","references":["https://github.com/SAML-Toolkits/ruby-saml/security/advisories/GHSA-rrqh-93c8-j966","https://github.com/SAML-Toolkits/ruby-saml/pull/770","https://github.com/SAML-Toolkits/ruby-saml/commit/38ef5dd1ce17514e202431f569c4f5633e6c2709","https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v1.18.1","https://nvd.nist.gov/vuln/detail/CVE-2025-54572","https://github.com/rubysec/ruby-advisory-db/blob/master/gems/ruby-saml/CVE-2025-54572.yml","https://lists.debian.org/debian-lts-announce/2025/09/msg00001.html","https://github.com/advisories/GHSA-rrqh-93c8-j966"],"source_kind":"github","identifiers":["GHSA-rrqh-93c8-j966","CVE-2025-54572"],"repository_url":"https://github.com/SAML-Toolkits/ruby-saml","blast_radius":23.19201086684568,"created_at":"2025-07-30T15:10:00.321Z","updated_at":"2025-12-28T01:01:01.607Z","epss_percentage":0.00062,"epss_percentile":0.19754,"packages":[{"ecosystem":"rubygems","package_name":"ruby-saml","versions":[{"first_patched_version":"1.18.1","vulnerable_version_range":"\u003c 1.18.1"}],"purl":"pkg:gem/ruby-saml","statistics":{"dependent_packages_count":20,"dependent_repos_count":2297,"downloads":121311340,"downloads_period":"total"},"affected_versions":["0.0.5","0.0.6","0.0.7","0.0.8","0.2.1","0.2.2","0.2.3","0.3.0","0.3.1","0.3.2","0.3.3","0.3.4","0.4.0","0.4.1","0.4.2","0.4.3","0.4.4","0.4.5","0.4.6","0.4.7","0.5.0","0.5.1","0.5.2","0.5.3","0.6.0","0.7.0","0.7.1","0.7.2","0.7.3","0.8.0","0.8.1","0.8.2","0.8.3","0.8.4","0.8.5","0.8.6","0.8.7","0.8.8","0.8.9","0.8.10","0.8.11","0.8.12","0.8.13","0.8.14","0.8.15","0.8.16","0.8.17","0.8.18","0.9.1","0.9.2","0.9.3","0.9.4","1.0.0","1.1.0","1.1.1","1.1.2","1.2.0","1.3.0","1.3.1","1.4.0","1.4.1","1.4.2","1.4.3","1.5.0","1.6.0","1.6.1","1.6.2","1.7.0","1.7.1","1.7.2","1.8.0","1.9.0","1.10.0","1.10.1","1.10.2","1.11.0","1.12.0","1.12.1","1.12.2","1.12.3","1.12.4","1.13.0","1.14.0","1.15.0","1.16.0","1.17.0","1.18.0"],"unaffected_versions":["1.18.1"]}]},{"uuid":"GSA_kwCzR0hTQS03NTRmLThnbTYtYzRyMs4ABFaL","url":"https://github.com/advisories/GHSA-754f-8gm6-c4r2","title":"Ruby SAML allows a SAML authentication bypass due to namespace handling (parser differential)","description":"### Summary\nAn authentication bypass vulnerability was found in ruby-saml due to a parser differential.\nReXML and Nokogiri parse XML differently, the parsers can generate entirely different document structures from the same XML input. That allows an attacker to be able to execute a Signature Wrapping attack.\n\n### Impact\nThis issue may lead to authentication bypass.","origin":"UNSPECIFIED","severity":"CRITICAL","published_at":"2025-03-12T20:54:42.000Z","withdrawn_at":null,"classification":"GENERAL","cvss_score":9.3,"cvss_vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N","references":["https://github.com/SAML-Toolkits/ruby-saml/security/advisories/GHSA-754f-8gm6-c4r2","https://github.com/omniauth/omniauth-saml/security/advisories/GHSA-hw46-3hmr-x9xv","https://github.com/SAML-Toolkits/ruby-saml/commit/e76c5b36bac40aedbf1ba7ffaaf495be63328cd9","https://github.com/SAML-Toolkits/ruby-saml/commit/e9c1cdbd0f9afa467b585de279db0cbd0fb8ae97","https://about.gitlab.com/releases/2025/03/12/patch-release-gitlab-17-9-2-released","https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v1.12.4","https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v1.18.0","https://nvd.nist.gov/vuln/detail/CVE-2025-25292","https://github.blog/security/sign-in-as-anyone-bypassing-saml-sso-authentication-with-parser-differentials","https://github.com/rubysec/ruby-advisory-db/blob/master/gems/ruby-saml/CVE-2025-25292.yml","https://security.netapp.com/advisory/ntap-20250314-0009","https://news.ycombinator.com/item?id=43374519","https://portswigger.net/research/saml-roulette-the-hacker-always-wins","https://securitylab.github.com/advisories/GHSL-2024-329_GHSL-2024-330_ruby-saml","https://lists.debian.org/debian-lts-announce/2025/04/msg00011.html","https://github.com/advisories/GHSA-754f-8gm6-c4r2"],"source_kind":"github","identifiers":["GHSA-754f-8gm6-c4r2","CVE-2025-25292"],"repository_url":"https://github.com/SAML-Toolkits/ruby-saml","blast_radius":31.25879725531374,"created_at":"2025-03-12T21:08:07.176Z","updated_at":"2025-12-28T01:01:39.543Z","epss_percentage":0.04013,"epss_percentile":0.88149,"packages":[{"ecosystem":"rubygems","package_name":"ruby-saml","versions":[{"first_patched_version":"1.12.4","vulnerable_version_range":"\u003c 1.12.4"},{"first_patched_version":"1.18.0","vulnerable_version_range":"\u003e= 1.13.0, \u003c 1.18.0"}],"purl":"pkg:gem/ruby-saml","statistics":{"dependent_packages_count":20,"dependent_repos_count":2297,"downloads":121311340,"downloads_period":"total"},"affected_versions":["0.0.5","0.0.6","0.0.7","0.0.8","0.2.1","0.2.2","0.2.3","0.3.0","0.3.1","0.3.2","0.3.3","0.3.4","0.4.0","0.4.1","0.4.2","0.4.3","0.4.4","0.4.5","0.4.6","0.4.7","0.5.0","0.5.1","0.5.2","0.5.3","0.6.0","0.7.0","0.7.1","0.7.2","0.7.3","0.8.0","0.8.1","0.8.2","0.8.3","0.8.4","0.8.5","0.8.6","0.8.7","0.8.8","0.8.9","0.8.10","0.8.11","0.8.12","0.8.13","0.8.14","0.8.15","0.8.16","0.8.17","0.8.18","0.9.1","0.9.2","0.9.3","0.9.4","1.0.0","1.1.0","1.1.1","1.1.2","1.2.0","1.3.0","1.3.1","1.4.0","1.4.1","1.4.2","1.4.3","1.5.0","1.6.0","1.6.1","1.6.2","1.7.0","1.7.1","1.7.2","1.8.0","1.9.0","1.10.0","1.10.1","1.10.2","1.11.0","1.12.0","1.12.1","1.12.2","1.12.3","1.13.0","1.14.0","1.15.0","1.16.0","1.17.0"],"unaffected_versions":["1.12.4","1.18.0","1.18.1"]}]},{"uuid":"GSA_kwCzR0hTQS00dmM0LW04cWgtZzhqbc4ABFZ_","url":"https://github.com/advisories/GHSA-4vc4-m8qh-g8jm","title":"Ruby SAML allows a SAML authentication bypass due to DOCTYPE handling (parser differential)","description":"### Summary\nAn authentication bypass vulnerability was found in ruby-saml due to a parser differential.\nReXML and Nokogiri parse XML differently, the parsers can generate entirely different document structures from the same XML input. That allows an attacker to be able to execute a Signature Wrapping attack.\n\n### Impact\nThis issue may lead to authentication bypass.","origin":"UNSPECIFIED","severity":"CRITICAL","published_at":"2025-03-12T20:20:24.000Z","withdrawn_at":null,"classification":"GENERAL","cvss_score":9.3,"cvss_vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N","references":["https://github.com/SAML-Toolkits/ruby-saml/security/advisories/GHSA-4vc4-m8qh-g8jm","https://github.com/SAML-Toolkits/ruby-saml/commit/e9c1cdbd0f9afa467b585de279db0cbd0fb8ae97","https://github.com/omniauth/omniauth-saml/security/advisories/GHSA-hw46-3hmr-x9xv","https://nvd.nist.gov/vuln/detail/CVE-2025-25291","https://github.com/SAML-Toolkits/ruby-saml/commit/e76c5b36bac40aedbf1ba7ffaaf495be63328cd9","https://about.gitlab.com/releases/2025/03/12/patch-release-gitlab-17-9-2-released","https://github.blog/security/sign-in-as-anyone-bypassing-saml-sso-authentication-with-parser-differentials","https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v1.12.4","https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v1.18.0","https://github.com/rubysec/ruby-advisory-db/blob/master/gems/ruby-saml/CVE-2025-25291.yml","https://security.netapp.com/advisory/ntap-20250314-0010","https://news.ycombinator.com/item?id=43374519","https://portswigger.net/research/saml-roulette-the-hacker-always-wins","https://securitylab.github.com/advisories/GHSL-2024-329_GHSL-2024-330_ruby-saml","https://lists.debian.org/debian-lts-announce/2025/04/msg00011.html","https://github.com/advisories/GHSA-4vc4-m8qh-g8jm"],"source_kind":"github","identifiers":["GHSA-4vc4-m8qh-g8jm","CVE-2025-25291"],"repository_url":"https://github.com/SAML-Toolkits/ruby-saml","blast_radius":31.25879725531374,"created_at":"2025-03-12T21:08:07.230Z","updated_at":"2025-12-28T01:01:39.543Z","epss_percentage":0.17714,"epss_percentile":0.94921,"packages":[{"ecosystem":"rubygems","package_name":"ruby-saml","versions":[{"first_patched_version":"1.18.0","vulnerable_version_range":"\u003e= 1.13.0, \u003c 1.18.0"},{"first_patched_version":"1.12.4","vulnerable_version_range":"\u003c 1.12.4"}],"purl":"pkg:gem/ruby-saml","statistics":{"dependent_packages_count":20,"dependent_repos_count":2297,"downloads":121311340,"downloads_period":"total"},"affected_versions":["0.0.5","0.0.6","0.0.7","0.0.8","0.2.1","0.2.2","0.2.3","0.3.0","0.3.1","0.3.2","0.3.3","0.3.4","0.4.0","0.4.1","0.4.2","0.4.3","0.4.4","0.4.5","0.4.6","0.4.7","0.5.0","0.5.1","0.5.2","0.5.3","0.6.0","0.7.0","0.7.1","0.7.2","0.7.3","0.8.0","0.8.1","0.8.2","0.8.3","0.8.4","0.8.5","0.8.6","0.8.7","0.8.8","0.8.9","0.8.10","0.8.11","0.8.12","0.8.13","0.8.14","0.8.15","0.8.16","0.8.17","0.8.18","0.9.1","0.9.2","0.9.3","0.9.4","1.0.0","1.1.0","1.1.1","1.1.2","1.2.0","1.3.0","1.3.1","1.4.0","1.4.1","1.4.2","1.4.3","1.5.0","1.6.0","1.6.1","1.6.2","1.7.0","1.7.1","1.7.2","1.8.0","1.9.0","1.10.0","1.10.1","1.10.2","1.11.0","1.12.0","1.12.1","1.12.2","1.12.3","1.13.0","1.14.0","1.15.0","1.16.0","1.17.0"],"unaffected_versions":["1.12.4","1.18.0","1.18.1"]}]},{"uuid":"GSA_kwCzR0hTQS05MnJxLWM4Y2YtcHJycc4ABFZ-","url":"https://github.com/advisories/GHSA-92rq-c8cf-prrq","title":"Ruby SAML allows remote Denial of Service (DoS) with compressed SAML responses","description":"### Summary\nruby-saml is susceptible to remote Denial of Service (DoS) with compressed SAML responses.\n\nRuby-saml uses zlib to decompress SAML responses in case they're compressed. It is possible to bypass the message size check with a compressed assertion since the message size is checked before inflation and not after.\n\n### Impact\nThis issue may lead to remote Denial of Service (DoS).","origin":"UNSPECIFIED","severity":"HIGH","published_at":"2025-03-12T20:16:50.000Z","withdrawn_at":null,"classification":"GENERAL","cvss_score":7.7,"cvss_vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N/E:P","references":["https://github.com/SAML-Toolkits/ruby-saml/security/advisories/GHSA-92rq-c8cf-prrq","https://github.com/SAML-Toolkits/ruby-saml/commit/acac9e9cc0b9a507882c614f25d41f8b47be349a","https://github.com/omniauth/omniauth-saml/security/advisories/GHSA-hw46-3hmr-x9xv","https://nvd.nist.gov/vuln/detail/CVE-2025-25293","https://github.com/SAML-Toolkits/ruby-saml/commit/e2da4c6dae7dc01a4d9cd221395140a67e2b3eb1","https://about.gitlab.com/releases/2025/03/12/patch-release-gitlab-17-9-2-released","https://github.blog/security/sign-in-as-anyone-bypassing-saml-sso-authentication-with-parser-differentials","https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v1.12.4","https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v1.18.0","https://github.com/rubysec/ruby-advisory-db/blob/master/gems/ruby-saml/CVE-2025-25293.yml","https://security.netapp.com/advisory/ntap-20250314-0008","https://securitylab.github.com/advisories/GHSL-2024-355_ruby-saml","https://lists.debian.org/debian-lts-announce/2025/04/msg00011.html","https://github.com/advisories/GHSA-92rq-c8cf-prrq"],"source_kind":"github","identifiers":["GHSA-92rq-c8cf-prrq","CVE-2025-25293"],"repository_url":"https://github.com/SAML-Toolkits/ruby-saml","blast_radius":25.8809396630017,"created_at":"2025-03-12T21:08:08.000Z","updated_at":"2025-12-15T20:01:49.965Z","epss_percentage":0.02562,"epss_percentile":0.85006,"packages":[{"ecosystem":"rubygems","package_name":"ruby-saml","versions":[{"first_patched_version":"1.18.0","vulnerable_version_range":"\u003e= 1.13.0, \u003c 1.18.0"},{"first_patched_version":"1.12.4","vulnerable_version_range":"\u003c 1.12.4"}],"purl":"pkg:gem/ruby-saml","statistics":{"dependent_packages_count":20,"dependent_repos_count":2297,"downloads":120827014,"downloads_period":"total"},"affected_versions":["0.0.5","0.0.6","0.0.7","0.0.8","0.2.1","0.2.2","0.2.3","0.3.0","0.3.1","0.3.2","0.3.3","0.3.4","0.4.0","0.4.1","0.4.2","0.4.3","0.4.4","0.4.5","0.4.6","0.4.7","0.5.0","0.5.1","0.5.2","0.5.3","0.6.0","0.7.0","0.7.1","0.7.2","0.7.3","0.8.0","0.8.1","0.8.2","0.8.3","0.8.4","0.8.5","0.8.6","0.8.7","0.8.8","0.8.9","0.8.10","0.8.11","0.8.12","0.8.13","0.8.14","0.8.15","0.8.16","0.8.17","0.8.18","0.9.1","0.9.2","0.9.3","0.9.4","1.0.0","1.1.0","1.1.1","1.1.2","1.2.0","1.3.0","1.3.1","1.4.0","1.4.1","1.4.2","1.4.3","1.5.0","1.6.0","1.6.1","1.6.2","1.7.0","1.7.1","1.7.2","1.8.0","1.9.0","1.10.0","1.10.1","1.10.2","1.11.0","1.12.0","1.12.1","1.12.2","1.12.3","1.13.0","1.14.0","1.15.0","1.16.0","1.17.0"],"unaffected_versions":["1.12.4","1.18.0","1.18.1"]}]},{"uuid":"GSA_kwCzR0hTQS1qdzljLW1mZzctOXJ4Ms4AA_cX","url":"https://github.com/advisories/GHSA-jw9c-mfg7-9rx2","title":"SAML authentication bypass via Incorrect XPath selector","description":"Ruby-SAML in \u003c= 12.2 and 1.13.0 \u003c= 1.16.0 does not properly verify the signature of the SAML Response. An unauthenticated attacker with access to any signed saml document (by the IdP) can thus forge a SAML Response/Assertion with arbitrary contents. This would allow the attacker to log in as arbitrary user within the vulnerable system.\n\nThis vulnerability was reported by ahacker1 of SecureSAML (ahacker1@securesaml.com)","origin":"UNSPECIFIED","severity":"CRITICAL","published_at":"2024-09-10T19:42:03.000Z","withdrawn_at":null,"classification":"GENERAL","cvss_score":9.9,"cvss_vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:N/SC:H/SI:H/SA:N","references":["https://github.com/SAML-Toolkits/ruby-saml/security/advisories/GHSA-jw9c-mfg7-9rx2","https://github.com/SAML-Toolkits/ruby-saml/commit/1ec5392bc506fe43a02dbb66b68741051c5ffeae","https://github.com/SAML-Toolkits/ruby-saml/commit/4865d030cae9705ee5cdb12415c654c634093ae7","https://nvd.nist.gov/vuln/detail/CVE-2024-45409","https://github.com/omniauth/omniauth-saml/security/advisories/GHSA-cvp8-5r8g-fhvq","https://github.com/omniauth/omniauth-saml/commit/4274e9d57e65f2dcaae4aa3b2accf831494f2ddd","https://github.com/rubysec/ruby-advisory-db/blob/master/gems/omniauth-saml/CVE-2024-45409.yml","https://github.com/rubysec/ruby-advisory-db/blob/master/gems/ruby-saml/CVE-2024-45409.yml","https://github.com/rubysec/ruby-advisory-db/blob/master/gems/omniauth-saml/GHSA-cvp8-5r8g-fhvq.yml","https://github.com/advisories/GHSA-jw9c-mfg7-9rx2"],"source_kind":"github","identifiers":["GHSA-jw9c-mfg7-9rx2","CVE-2024-45409"],"repository_url":"https://github.com/SAML-Toolkits/ruby-saml","blast_radius":33.275493852430756,"created_at":"2024-09-10T20:06:11.283Z","updated_at":"2026-01-02T02:02:47.084Z","epss_percentage":0.41768,"epss_percentile":0.97313,"packages":[{"ecosystem":"rubygems","package_name":"ruby-saml","versions":[{"first_patched_version":"1.17.0","vulnerable_version_range":"\u003e= 1.13.0, \u003c 1.17.0"},{"first_patched_version":"1.12.3","vulnerable_version_range":"\u003c 1.12.3"}],"purl":"pkg:gem/ruby-saml","statistics":{"dependent_packages_count":20,"dependent_repos_count":2297,"downloads":121429812,"downloads_period":"total"},"affected_versions":["0.0.5","0.0.6","0.0.7","0.0.8","0.2.1","0.2.2","0.2.3","0.3.0","0.3.1","0.3.2","0.3.3","0.3.4","0.4.0","0.4.1","0.4.2","0.4.3","0.4.4","0.4.5","0.4.6","0.4.7","0.5.0","0.5.1","0.5.2","0.5.3","0.6.0","0.7.0","0.7.1","0.7.2","0.7.3","0.8.0","0.8.1","0.8.2","0.8.3","0.8.4","0.8.5","0.8.6","0.8.7","0.8.8","0.8.9","0.8.10","0.8.11","0.8.12","0.8.13","0.8.14","0.8.15","0.8.16","0.8.17","0.8.18","0.9.1","0.9.2","0.9.3","0.9.4","1.0.0","1.1.0","1.1.1","1.1.2","1.2.0","1.3.0","1.3.1","1.4.0","1.4.1","1.4.2","1.4.3","1.5.0","1.6.0","1.6.1","1.6.2","1.7.0","1.7.1","1.7.2","1.8.0","1.9.0","1.10.0","1.10.1","1.10.2","1.11.0","1.12.0","1.12.1","1.12.2","1.13.0","1.14.0","1.15.0","1.16.0"],"unaffected_versions":["1.12.3","1.12.4","1.17.0","1.18.0","1.18.1"]}]},{"uuid":"GSA_kwCzR0hTQS1yMzY0LTJwajQtcGY3Zs4AAzf1","url":"https://github.com/advisories/GHSA-r364-2pj4-pf7f","title":"ruby-saml vulnerable to XPath injection","description":"`xml_security.rb` in the ruby-saml gem before 1.0.0 for Ruby allows XPath injection and code execution because prepared statements are not used.","origin":"UNSPECIFIED","severity":"CRITICAL","published_at":"2023-05-27T21:30:15.000Z","withdrawn_at":null,"classification":"GENERAL","cvss_score":0.0,"cvss_vector":null,"references":["https://nvd.nist.gov/vuln/detail/CVE-2015-20108","https://github.com/SAML-Toolkits/ruby-saml/pull/225","https://github.com/SAML-Toolkits/ruby-saml/commit/9853651b96b99653ea8627d757d46bfe62ab6448","https://github.com/SAML-Toolkits/ruby-saml/compare/v0.9.2...v1.0.0","https://github.com/rubysec/ruby-advisory-db/blob/master/gems/ruby-saml/OSVDB-124991.yml","https://github.com/rubysec/ruby-advisory-db/blob/master/gems/ruby-saml/CVE-2015-20108.yml","https://security.snyk.io/vuln/SNYK-RUBY-RUBYSAML-20217","https://security.netapp.com/advisory/ntap-20230703-0003","https://github.com/advisories/GHSA-r364-2pj4-pf7f"],"source_kind":"github","identifiers":["GHSA-r364-2pj4-pf7f","CVE-2015-20108"],"repository_url":"https://github.com/SAML-Toolkits/ruby-saml","blast_radius":0.0,"created_at":"2023-06-06T01:03:18.112Z","updated_at":"2025-12-19T01:06:52.490Z","epss_percentage":0.004,"epss_percentile":0.60072,"packages":[{"ecosystem":"rubygems","package_name":"ruby-saml","versions":[{"first_patched_version":"1.0.0","vulnerable_version_range":"\u003c 1.0.0"}],"purl":"pkg:gem/ruby-saml","statistics":{"dependent_packages_count":20,"dependent_repos_count":2297,"downloads":121085121,"downloads_period":"total"},"affected_versions":["0.0.5","0.0.6","0.0.7","0.0.8","0.2.1","0.2.2","0.2.3","0.3.0","0.3.1","0.3.2","0.3.3","0.3.4","0.4.0","0.4.1","0.4.2","0.4.3","0.4.4","0.4.5","0.4.6","0.4.7","0.5.0","0.5.1","0.5.2","0.5.3","0.6.0","0.7.0","0.7.1","0.7.2","0.7.3","0.8.0","0.8.1","0.8.2","0.8.3","0.8.4","0.8.5","0.8.6","0.8.7","0.8.8","0.8.9","0.8.10","0.8.11","0.8.12","0.8.13","0.8.14","0.8.15","0.8.16","0.8.17","0.8.18","0.9.1","0.9.2","0.9.3","0.9.4"],"unaffected_versions":["1.0.0","1.1.0","1.1.1","1.1.2","1.2.0","1.3.0","1.3.1","1.4.0","1.4.1","1.4.2","1.4.3","1.5.0","1.6.0","1.6.1","1.6.2","1.7.0","1.7.1","1.7.2","1.8.0","1.9.0","1.10.0","1.10.1","1.10.2","1.11.0","1.12.0","1.12.1","1.12.2","1.12.3","1.12.4","1.13.0","1.14.0","1.15.0","1.16.0","1.17.0","1.18.0","1.18.1"]}]},{"uuid":"MDE2OlNlY3VyaXR5QWR2aXNvcnlHSFNBLXgyZnItdjh3Zi04d3d2","url":"https://github.com/advisories/GHSA-x2fr-v8wf-8wwv","title":"Ruby-SAML Improper Authentication vulnerability","description":"OneLogin Ruby-SAML 1.6.0 and earlier may incorrectly utilize the results of XML DOM traversal and canonicalization APIs in such a way that an attacker may be able to manipulate the SAML data without invalidating the cryptographic signature, allowing the attack to potentially bypass authentication to SAML service providers.","origin":"UNSPECIFIED","severity":"HIGH","published_at":"2019-07-05T21:11:35.000Z","withdrawn_at":null,"classification":"GENERAL","cvss_score":0.0,"cvss_vector":null,"references":["https://nvd.nist.gov/vuln/detail/CVE-2017-11428","https://duo.com/blog/duo-finds-saml-vulnerabilities-affecting-multiple-implementations","https://www.kb.cert.org/vuls/id/475445","https://github.com/advisories/GHSA-x2fr-v8wf-8wwv"],"source_kind":"github","identifiers":["GHSA-x2fr-v8wf-8wwv","CVE-2017-11428"],"repository_url":null,"blast_radius":0.0,"created_at":"2022-12-21T16:13:28.948Z","updated_at":"2026-01-05T01:09:36.222Z","epss_percentage":0.00436,"epss_percentile":0.62456,"packages":[{"ecosystem":"rubygems","package_name":"ruby-saml","versions":[{"first_patched_version":"1.7.0","vulnerable_version_range":"\u003c 1.7.0"}],"purl":"pkg:gem/ruby-saml","statistics":{"dependent_packages_count":20,"dependent_repos_count":2297,"downloads":121459068,"downloads_period":"total"},"affected_versions":["0.0.5","0.0.6","0.0.7","0.0.8","0.2.1","0.2.2","0.2.3","0.3.0","0.3.1","0.3.2","0.3.3","0.3.4","0.4.0","0.4.1","0.4.2","0.4.3","0.4.4","0.4.5","0.4.6","0.4.7","0.5.0","0.5.1","0.5.2","0.5.3","0.6.0","0.7.0","0.7.1","0.7.2","0.7.3","0.8.0","0.8.1","0.8.2","0.8.3","0.8.4","0.8.5","0.8.6","0.8.7","0.8.8","0.8.9","0.8.10","0.8.11","0.8.12","0.8.13","0.8.14","0.8.15","0.8.16","0.8.17","0.8.18","0.9.1","0.9.2","0.9.3","0.9.4","1.0.0","1.1.0","1.1.1","1.1.2","1.2.0","1.3.0","1.3.1","1.4.0","1.4.1","1.4.2","1.4.3","1.5.0","1.6.0","1.6.1","1.6.2"],"unaffected_versions":["1.7.0","1.7.1","1.7.2","1.8.0","1.9.0","1.10.0","1.10.1","1.10.2","1.11.0","1.12.0","1.12.1","1.12.2","1.12.3","1.12.4","1.13.0","1.14.0","1.15.0","1.16.0","1.17.0","1.18.0","1.18.1"]}]},{"uuid":"MDE2OlNlY3VyaXR5QWR2aXNvcnlHSFNBLTM2cDcteGp3OC1oNmYy","url":"https://github.com/advisories/GHSA-36p7-xjw8-h6f2","title":"Ruby-saml allows attackers to perform XML signature wrapping attacks ","description":"ruby-saml prior to version 1.3.0 is vulnerable to an XML signature wrapping attack in the specific scenario where there was a signature that referenced at the same time 2 elements (but past the scheme validator process since 1 of the element was inside the encrypted assertion).\nruby-saml users must update to 1.3.0, which implements 3 extra validations to mitigate this kind of attack.","origin":"UNSPECIFIED","severity":"HIGH","published_at":"2018-08-21T17:08:30.000Z","withdrawn_at":null,"classification":"GENERAL","cvss_score":0.0,"cvss_vector":null,"references":["https://nvd.nist.gov/vuln/detail/CVE-2016-5697","http://www.openwall.com/lists/oss-security/2016/06/24/3","https://github.com/onelogin/ruby-saml/commit/a571f52171e6bfd87db59822d1d9e8c38fb3b995","https://github.com/rubysec/ruby-advisory-db/blob/master/gems/ruby-saml/CVE-2016-5697.yml","https://github.com/advisories/GHSA-36p7-xjw8-h6f2"],"source_kind":"github","identifiers":["GHSA-36p7-xjw8-h6f2","CVE-2016-5697"],"repository_url":"https://github.com/onelogin/ruby-saml","blast_radius":0.0,"created_at":"2022-12-21T16:13:36.508Z","updated_at":"2026-01-05T01:06:09.371Z","epss_percentage":0.00131,"epss_percentile":0.33423,"packages":[{"ecosystem":"rubygems","package_name":"ruby-saml","versions":[{"first_patched_version":"1.3.0","vulnerable_version_range":"\u003c 1.3.0"}],"purl":"pkg:gem/ruby-saml","statistics":{"dependent_packages_count":20,"dependent_repos_count":2297,"downloads":121459068,"downloads_period":"total"},"affected_versions":["0.0.5","0.0.6","0.0.7","0.0.8","0.2.1","0.2.2","0.2.3","0.3.0","0.3.1","0.3.2","0.3.3","0.3.4","0.4.0","0.4.1","0.4.2","0.4.3","0.4.4","0.4.5","0.4.6","0.4.7","0.5.0","0.5.1","0.5.2","0.5.3","0.6.0","0.7.0","0.7.1","0.7.2","0.7.3","0.8.0","0.8.1","0.8.2","0.8.3","0.8.4","0.8.5","0.8.6","0.8.7","0.8.8","0.8.9","0.8.10","0.8.11","0.8.12","0.8.13","0.8.14","0.8.15","0.8.16","0.8.17","0.8.18","0.9.1","0.9.2","0.9.3","0.9.4","1.0.0","1.1.0","1.1.1","1.1.2","1.2.0"],"unaffected_versions":["1.3.0","1.3.1","1.4.0","1.4.1","1.4.2","1.4.3","1.5.0","1.6.0","1.6.1","1.6.2","1.7.0","1.7.1","1.7.2","1.8.0","1.9.0","1.10.0","1.10.1","1.10.2","1.11.0","1.12.0","1.12.1","1.12.2","1.12.3","1.12.4","1.13.0","1.14.0","1.15.0","1.16.0","1.17.0","1.18.0","1.18.1"]}]}],"docker_usage_url":"https://docker.ecosyste.ms/usage/rubygems/ruby-saml","docker_dependents_count":222,"docker_downloads_count":580512530,"usage_url":"https://repos.ecosyste.ms/usage/rubygems/ruby-saml","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/rubygems/ruby-saml/dependencies","status":null,"funding_links":["https://github.com/sponsors/SAML-Toolkits"],"critical":null,"issue_metadata":{"last_synced_at":"2026-04-27T14:00:58.083Z","issues_count":78,"pull_requests_count":207,"avg_time_to_close_issue":44199800.79032258,"avg_time_to_close_pull_request":7191089.529411765,"issues_closed_count":62,"pull_requests_closed_count":170,"pull_request_authors_count":48,"issue_authors_count":51,"avg_comments_per_issue":3.371794871794872,"avg_comments_per_pull_request":1.8985507246376812,"merged_pull_requests_count":125,"bot_issues_count":0,"bot_pull_requests_count":1,"past_year_issues_count":7,"past_year_pull_requests_count":16,"past_year_avg_time_to_close_issue":421418.0,"past_year_avg_time_to_close_pull_request":6039.333333333333,"past_year_issues_closed_count":4,"past_year_pull_requests_closed_count":3,"past_year_pull_request_authors_count":6,"past_year_issue_authors_count":6,"past_year_avg_comments_per_issue":3.5714285714285716,"past_year_avg_comments_per_pull_request":0.625,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":0,"past_year_merged_pull_requests_count":3,"issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/issues","maintainers":[{"login":"johnnyshields","count":131,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/johnnyshields"},{"login":"pitbulk","count":30,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/pitbulk"}],"active_maintainers":[{"login":"pitbulk","count":7,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/pitbulk"},{"login":"johnnyshields","count":3,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/johnnyshields"}]},"versions_url":"https://packages.ecosyste.ms/api/v1/registries/gem.coop/packages/ruby-saml/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/gem.coop/packages/ruby-saml/version_numbers","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/gem.coop/packages/ruby-saml/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/gem.coop/packages/ruby-saml/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/gem.coop/packages/ruby-saml/codemeta","maintainers":[{"uuid":"91700","login":"sixtomartin","name":null,"email":null,"url":null,"packages_count":1,"html_url":"https://gem.coop/profiles/sixtomartin","role":null,"created_at":"2025-10-08T05:26:58.134Z","updated_at":"2025-10-08T05:26:58.134Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/gem.coop/maintainers/sixtomartin/packages"}],"registry":{"name":"gem.coop","url":"https://gem.coop","ecosystem":"rubygems","default":false,"packages_count":190394,"maintainers_count":67477,"namespaces_count":0,"keywords_count":0,"github":"gem-coop","metadata":{"funded_packages_count":6507},"icon_url":"https://github.com/gem-coop.png","created_at":"2025-10-06T17:24:20.932Z","updated_at":"2026-04-03T06:45:05.763Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/gem.coop/packages","maintainers_url":"https://packages.ecosyste.ms/api/v1/registries/gem.coop/maintainers","namespaces_url":"https://packages.ecosyste.ms/api/v1/registries/gem.coop/namespaces"}},{"id":293754,"name":"ruby-saml","ecosystem":"rubygems","description":"SAML Ruby toolkit. Add SAML support to your Ruby software using this library","homepage":"https://github.com/saml-toolkits/ruby-saml","licenses":"MIT","normalized_licenses":["MIT"],"repository_url":"https://github.com/saml-toolkits/ruby-saml","keywords_array":[],"namespace":null,"versions_count":89,"first_release_published_at":"2010-08-11T19:07:57.131Z","latest_release_published_at":"2025-07-29T18:57:13.891Z","latest_release_number":"1.18.1","last_synced_at":"2026-04-28T21:17:32.487Z","created_at":"2022-04-06T10:10:28.387Z","updated_at":"2026-04-29T16:56:46.935Z","registry_url":"https://rubygems.org/gems/ruby-saml","install_command":"gem install ruby-saml -s https://rubygems.org","documentation_url":"http://www.rubydoc.info/gems/ruby-saml/","metadata":{"funding":null},"repo_metadata":{"id":893163,"uuid":"644899","full_name":"SAML-Toolkits/ruby-saml","owner":"SAML-Toolkits","description":"SAML SSO for Ruby","archived":false,"fork":false,"pushed_at":"2026-04-15T08:02:24.000Z","size":3204,"stargazers_count":980,"open_issues_count":20,"forks_count":589,"subscribers_count":108,"default_branch":"master","last_synced_at":"2026-04-25T14:09:37.695Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/SAML-Toolkits.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"github":["SAML-Toolkits"]}},"created_at":"2010-05-03T18:39:04.000Z","updated_at":"2026-04-21T09:37:06.000Z","dependencies_parsed_at":"2023-09-11T17:11:15.740Z","dependency_job_id":"69948a06-f508-4e2a-8b4d-a178b2b0a6ed","html_url":"https://github.com/SAML-Toolkits/ruby-saml","commit_stats":{"total_commits":842,"total_committers":179,"mean_commits":4.70391061452514,"dds":0.7173396674584323,"last_synced_commit":"21b676bdf55452750d8ee5facd2f6e3c51927315"},"previous_names":["onelogin/ruby-saml"],"tags_count":69,"template":false,"template_full_name":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/SAML-Toolkits","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32269463,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-25T09:15:33.318Z","status":"ssl_error","status_checked_at":"2026-04-25T09:15:31.997Z","response_time":59,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"},"owner_record":{"login":"SAML-Toolkits","name":"SAML-Toolkits","uuid":"116213842","kind":"organization","description":"SAML-Toolkits maintained by Sixto Martin @ IAM Digital Services SL","email":"contact@iamdigitalservices.com","website":null,"location":"Spain","twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/116213842?v=4","repositories_count":6,"last_synced_at":"2026-01-18T06:45:44.194Z","metadata":{"has_sponsors_listing":true},"html_url":"https://github.com/SAML-Toolkits","funding_links":["https://github.com/sponsors/SAML-Toolkits"],"total_stars":null,"followers":46,"following":0,"created_at":"2023-02-26T02:35:00.158Z","updated_at":"2026-01-18T06:45:44.194Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/SAML-Toolkits","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/SAML-Toolkits/repositories"},"tags":[{"name":"v1.18.1","sha":"8c395b5d75a2c4cd5516a705171b16a80cf19c35","kind":"commit","published_at":"2025-07-29T18:51:00.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/v1.18.1","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v1.18.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@v1.18.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v1.18.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v1.18.1/manifests"},{"name":"v1.12.4","sha":"48cc5b92e1dde8637a013dfd48cdf8ceadd499b2","kind":"commit","published_at":"2025-03-12T19:40:08.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/v1.12.4","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v1.12.4","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@v1.12.4","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v1.12.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v1.12.4/manifests"},{"name":"v1.18.0","sha":"6a7c040049babe748ee1bb4ca13898c47189114c","kind":"commit","published_at":"2025-03-12T18:32:16.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/v1.18.0","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v1.18.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@v1.18.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v1.18.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v1.18.0/manifests"},{"name":"v1.12.3","sha":"1ec5392bc506fe43a02dbb66b68741051c5ffeae","kind":"commit","published_at":"2024-09-10T17:17:25.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/v1.12.3","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v1.12.3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@v1.12.3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v1.12.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v1.12.3/manifests"},{"name":"v1.17.0","sha":"1bc447f297b769d1a9abeb619ce074bd9c410a72","kind":"commit","published_at":"2024-09-10T17:15:42.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/v1.17.0","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v1.17.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@v1.17.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v1.17.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v1.17.0/manifests"},{"name":"v1.16.0","sha":"148a4c2de713a98c58c28bbc7785c05698216a4d","kind":"commit","published_at":"2023-10-09T15:30:09.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/v1.16.0","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v1.16.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@v1.16.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v1.16.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v1.16.0/manifests"},{"name":"v1.15.0","sha":"f48a98139b4482b997f133399996c5c3c1e9d72d","kind":"commit","published_at":"2023-01-04T11:40:55.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/v1.15.0","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v1.15.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@v1.15.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v1.15.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v1.15.0/manifests"},{"name":"v1.14.0","sha":"c38d72425b11aee5b2be595d44b407f8dfd92d6a","kind":"commit","published_at":"2022-02-01T17:16:51.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/v1.14.0","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v1.14.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@v1.14.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v1.14.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v1.14.0/manifests"},{"name":"v1.13.0","sha":"5da850c36bbf678674f9321032df428139d7e434","kind":"commit","published_at":"2021-09-06T17:49:29.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/v1.13.0","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v1.13.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@v1.13.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v1.13.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v1.13.0/manifests"},{"name":"v1.12.2","sha":"bbb4fb6c483ade203b0cfde32a0843416b771491","kind":"commit","published_at":"2021-04-12T23:21:17.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/v1.12.2","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v1.12.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@v1.12.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v1.12.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v1.12.2/manifests"},{"name":"v1.12.1","sha":"79fc1d772d84ae4f80a4f5b747b00d830839657e","kind":"commit","published_at":"2021-04-05T21:22:59.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/v1.12.1","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v1.12.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@v1.12.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v1.12.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v1.12.1/manifests"},{"name":"v1.12.0","sha":"bbd954b87c08e5e202dbaae9070f7e4aab8b45f8","kind":"commit","published_at":"2021-02-18T19:19:49.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/v1.12.0","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v1.12.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@v1.12.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v1.12.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v1.12.0/manifests"},{"name":"v1.11.0","sha":"eae81404d8661046aa053d0f4b4fa80f569f9f17","kind":"commit","published_at":"2019-07-24T16:22:43.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/v1.11.0","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v1.11.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@v1.11.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v1.11.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v1.11.0/manifests"},{"name":"v1.10.2","sha":"688d9e927d8b2d22a8b4daa870740d234b7b76c8","kind":"commit","published_at":"2019-04-29T16:34:21.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/v1.10.2","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v1.10.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@v1.10.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v1.10.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v1.10.2/manifests"},{"name":"v1.10.1","sha":"ad9f76d3f91dd45646aeab4430a81ad4797b81e9","kind":"commit","published_at":"2019-04-08T12:49:11.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/v1.10.1","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v1.10.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@v1.10.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v1.10.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v1.10.1/manifests"},{"name":"v1.10.0","sha":"65827d3df4dd63a3f1a7979bcbba0fd4d5f9b007","kind":"commit","published_at":"2019-03-21T13:43:35.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/v1.10.0","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v1.10.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@v1.10.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v1.10.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v1.10.0/manifests"},{"name":"v1.9.0","sha":"16f36c176cb93846a71db2928bd0198fc417887f","kind":"commit","published_at":"2018-10-14T21:44:36.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/v1.9.0","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v1.9.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@v1.9.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v1.9.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v1.9.0/manifests"},{"name":"v1.8.0","sha":"51ebceee5ef6e529159f88e18bcbd3f3ae6c53b5","kind":"commit","published_at":"2018-04-23T14:47:50.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/v1.8.0","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v1.8.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@v1.8.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v1.8.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v1.8.0/manifests"},{"name":"v1.7.2","sha":"630a15600608217f35f45c4402de44cbfd72f618","kind":"commit","published_at":"2018-02-28T22:03:05.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/v1.7.2","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v1.7.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@v1.7.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v1.7.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v1.7.2/manifests"},{"name":"v1.7.1","sha":"0a7d012a8cab3cb016c81e7962bf7a3393944f92","kind":"commit","published_at":"2018-02-28T19:23:27.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/v1.7.1","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v1.7.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@v1.7.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v1.7.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v1.7.1/manifests"},{"name":"v1.7.0","sha":"082249efe498841e0747d2b3452f4ef5e867b025","kind":"commit","published_at":"2018-02-27T12:44:29.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/v1.7.0","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v1.7.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@v1.7.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v1.7.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v1.7.0/manifests"},{"name":"v1.6.2","sha":"082249efe498841e0747d2b3452f4ef5e867b025","kind":"commit","published_at":"2018-02-27T12:44:29.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/v1.6.2","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v1.6.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@v1.6.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v1.6.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v1.6.2/manifests"},{"name":"v0.9.3","sha":"04f1975a835ec47486fbe0caac1c71ac0ecdf3f4","kind":"commit","published_at":"2018-02-27T10:51:42.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/v0.9.3","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v0.9.3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@v0.9.3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v0.9.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v0.9.3/manifests"},{"name":"0.8.3","sha":"a2de8c13de8c08e0a15ba02f565099fbbee19813","kind":"commit","published_at":"2018-02-27T10:29:08.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/0.8.3","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/0.8.3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@0.8.3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/0.8.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/0.8.3/manifests"},{"name":"v1.6.1","sha":"414d144419fbb4473fb5135bbef401e4584c3d38","kind":"commit","published_at":"2018-01-15T12:46:07.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/v1.6.1","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v1.6.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@v1.6.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v1.6.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v1.6.1/manifests"},{"name":"v1.6.0","sha":"5bb3a7315b92f413921d2523c8bed174d4f1aa9d","kind":"commit","published_at":"2017-11-27T11:19:59.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/v1.6.0","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v1.6.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@v1.6.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v1.6.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v1.6.0/manifests"},{"name":"1.5.0","sha":"5dbc69a23a55e17f5550fb8f90af29200705a8e1","kind":"commit","published_at":"2017-08-31T10:40:41.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/1.5.0","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/1.5.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@1.5.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/1.5.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/1.5.0/manifests"},{"name":"1.4.3","sha":"debcf2328a7f670fe954f07f177068375fa73f2d","kind":"commit","published_at":"2017-05-18T18:57:22.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/1.4.3","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/1.4.3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@1.4.3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/1.4.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/1.4.3/manifests"},{"name":"1.4.2","sha":"b67e3599b308f8755c47d64dc3d61ab40a9525e3","kind":"commit","published_at":"2017-01-11T10:18:13.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/1.4.2","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/1.4.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@1.4.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/1.4.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/1.4.2/manifests"},{"name":"1.4.1","sha":"d4c8cff74e889411b8ed395b2ba5b30753843c0e","kind":"commit","published_at":"2016-10-19T12:56:08.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/1.4.1","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/1.4.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@1.4.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/1.4.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/1.4.1/manifests"},{"name":"1.4.0","sha":"3a9d1fe7052db1d0f16a268fecd5d5f4f7926aca","kind":"commit","published_at":"2016-10-13T21:18:17.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/1.4.0","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/1.4.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@1.4.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/1.4.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/1.4.0/manifests"},{"name":"1.3.1","sha":"55359e2276d35834679d4840e3c0286d542a9e21","kind":"commit","published_at":"2016-07-14T20:56:28.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/1.3.1","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/1.3.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@1.3.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/1.3.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/1.3.1/manifests"},{"name":"v1.3.0","sha":"171a41e8a1159005ca4beb888f1d97555f4621a9","kind":"commit","published_at":"2016-06-24T17:03:23.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/v1.3.0","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v1.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@v1.3.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v1.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v1.3.0/manifests"},{"name":"v1.2.0","sha":"5cfca6756514ae9efd3e0e16cfefcd5a09faefd3","kind":"commit","published_at":"2016-04-29T21:49:36.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/v1.2.0","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v1.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@v1.2.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v1.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v1.2.0/manifests"},{"name":"v1.1.2","sha":"c47dc02b12a40989b0b6665d63906b66849026ec","kind":"commit","published_at":"2016-02-15T20:31:27.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/v1.1.2","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v1.1.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@v1.1.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v1.1.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v1.1.2/manifests"},{"name":"v1.1.1","sha":"cce82eee39c4afbf826463251530ebbd7822178c","kind":"commit","published_at":"2015-11-10T12:13:27.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/v1.1.1","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v1.1.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@v1.1.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v1.1.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v1.1.1/manifests"},{"name":"v1.1.0","sha":"12c9f9caf2578060f6d97d10ec76cbe718d16ec0","kind":"commit","published_at":"2015-10-27T11:41:55.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/v1.1.0","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v1.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@v1.1.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v1.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v1.1.0/manifests"},{"name":"v1.0.0","sha":"05c82d9e74b1ef8f2e0ba0c3e341da0202a3c1d6","kind":"commit","published_at":"2015-07-01T17:44:23.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/v1.0.0","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v1.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@v1.0.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v1.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v1.0.0/manifests"},{"name":"v0.9.2","sha":"54c634917ef85a8b6730901dda20351493e15bb2","kind":"commit","published_at":"2015-04-28T23:08:20.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/v0.9.2","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v0.9.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@v0.9.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v0.9.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v0.9.2/manifests"},{"name":"v0.9.1","sha":"06e33122e993348d64bb2174bc426a87c10fe32b","kind":"commit","published_at":"2015-02-10T22:15:23.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/v0.9.1","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v0.9.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@v0.9.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v0.9.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v0.9.1/manifests"},{"name":"v0.9","sha":"854931db4f06ab3973cfe45fba68e68eab4c55a4","kind":"commit","published_at":"2015-01-26T22:36:06.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/v0.9","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v0.9","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@v0.9","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v0.9","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v0.9/manifests"},{"name":"0.8.2","sha":"c0b5ca42dd62251afc8f8b4fc5b340458ae3aed0","kind":"commit","published_at":"2015-01-26T18:45:49.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/0.8.2","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/0.8.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@0.8.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/0.8.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/0.8.2/manifests"},{"name":"0.8.1","sha":"84c3a6fad1008bda4848b0602dbba5a32e18d932","kind":"commit","published_at":"2014-02-25T18:45:13.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/0.8.1","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/0.8.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@0.8.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/0.8.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/0.8.1/manifests"},{"name":"0.8.0","sha":"e9a91c102498722ffbb136a248d039f4b3566884","kind":"commit","published_at":"2014-02-24T19:27:12.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/0.8.0","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/0.8.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@0.8.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/0.8.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/0.8.0/manifests"},{"name":"0.7.3","sha":"adb7aa4d2c8251a0957c31ae5ed80130aac0f4cc","kind":"commit","published_at":"2014-02-21T01:28:51.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/0.7.3","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/0.7.3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@0.7.3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/0.7.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/0.7.3/manifests"},{"name":"v0.7.1","sha":"7dcb127ca99ca18178b61220d0c6715a6decfc21","kind":"commit","published_at":"2013-01-24T00:09:13.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/v0.7.1","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v0.7.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@v0.7.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v0.7.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v0.7.1/manifests"},{"name":"v0.7.0","sha":"e9908511651007990168ebf3bdab94f2ec3b3db2","kind":"commit","published_at":"2013-01-24T00:07:55.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/v0.7.0","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v0.7.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@v0.7.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v0.7.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v0.7.0/manifests"},{"name":"v0.6.0","sha":"9c5d012ebc168595eb91f86f82ec2d9a29638a01","kind":"commit","published_at":"2012-11-02T18:45:06.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/v0.6.0","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v0.6.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@v0.6.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v0.6.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v0.6.0/manifests"},{"name":"v0.5.3","sha":"386b94d8cb931b449dca8380be610e0146228425","kind":"commit","published_at":"2012-04-18T17:13:49.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/v0.5.3","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v0.5.3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@v0.5.3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v0.5.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v0.5.3/manifests"},{"name":"v0.5.2","sha":"620cbed12c22015426280b1d4d3927bfb570252c","kind":"commit","published_at":"2012-04-14T16:50:11.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/v0.5.2","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v0.5.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@v0.5.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v0.5.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v0.5.2/manifests"},{"name":"v0.5.1","sha":"2202b9ecd78788f7401c68ff738517288de569bb","kind":"commit","published_at":"2012-04-13T22:27:43.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/v0.5.1","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v0.5.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@v0.5.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v0.5.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v0.5.1/manifests"},{"name":"v0.5.0","sha":"201807517740d452bb404314cea514600f303ac6","kind":"commit","published_at":"2012-04-13T22:22:22.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/v0.5.0","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v0.5.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@v0.5.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v0.5.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v0.5.0/manifests"},{"name":"v0.4.7","sha":"cd25bcbb76138ec3027d3c43322c0805c7b6d2cd","kind":"commit","published_at":"2011-06-29T22:29:15.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/v0.4.7","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v0.4.7","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@v0.4.7","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v0.4.7","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v0.4.7/manifests"},{"name":"v0.4.6","sha":"e9fcaf6286d59387be224cac1a1cfcfcc5b3c0ee","kind":"commit","published_at":"2011-06-28T19:51:09.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/v0.4.6","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v0.4.6","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@v0.4.6","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v0.4.6","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v0.4.6/manifests"},{"name":"v0.4.5","sha":"51ab54d0e52ecd21b16177a49d2a9a3829cd44b5","kind":"commit","published_at":"2011-06-17T19:25:25.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/v0.4.5","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v0.4.5","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@v0.4.5","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v0.4.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v0.4.5/manifests"},{"name":"v0.4.4","sha":"23e6250c97deadd1d637ce43c6562826d08e6e91","kind":"commit","published_at":"2011-06-10T19:47:42.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/v0.4.4","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v0.4.4","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@v0.4.4","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v0.4.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v0.4.4/manifests"},{"name":"v0.4.3","sha":"93093da7e70cd6ac91bcd2b382ea9daf5b9e80e8","kind":"commit","published_at":"2011-06-04T21:10:29.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/v0.4.3","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v0.4.3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@v0.4.3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v0.4.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v0.4.3/manifests"},{"name":"v0.4.2","sha":"ad3c4a19c90b17937643e5486a1954da1468bd99","kind":"commit","published_at":"2011-06-04T21:02:18.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/v0.4.2","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v0.4.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@v0.4.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v0.4.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v0.4.2/manifests"},{"name":"v0.4.1","sha":"874e2cf9d299108a017503a84fba4dbcd50f4ba7","kind":"commit","published_at":"2011-06-04T02:40:29.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/v0.4.1","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v0.4.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@v0.4.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v0.4.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v0.4.1/manifests"},{"name":"v0.4.0","sha":"ecd8b66c277c5581b37859b88c34ca14da7bf0d5","kind":"commit","published_at":"2011-05-03T21:07:18.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/v0.4.0","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v0.4.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@v0.4.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v0.4.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v0.4.0/manifests"},{"name":"v0.3.4","sha":"3cc39528e64e42df9162799ac9b8f1f5a3dccf2a","kind":"commit","published_at":"2011-04-28T15:02:45.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/v0.3.4","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v0.3.4","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@v0.3.4","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v0.3.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v0.3.4/manifests"},{"name":"v0.3.3","sha":"3785ff8928eca9767f709e906927a0e11607a533","kind":"commit","published_at":"2011-04-18T21:31:51.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/v0.3.3","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v0.3.3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@v0.3.3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v0.3.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v0.3.3/manifests"},{"name":"v0.3.2","sha":"74287b89b3d642d4cd8005f7f4ecb315ee8f331e","kind":"commit","published_at":"2011-03-08T08:55:03.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/v0.3.2","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v0.3.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@v0.3.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v0.3.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v0.3.2/manifests"},{"name":"v0.3.1","sha":"057c5ce3fd06a9706255e2612e4c3767d38659b7","kind":"commit","published_at":"2011-03-07T08:06:32.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/v0.3.1","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v0.3.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@v0.3.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v0.3.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v0.3.1/manifests"},{"name":"v0.3.0","sha":"0c33f973b145be11bf73448971d503e4f2d3af70","kind":"commit","published_at":"2011-03-03T11:45:53.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/v0.3.0","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v0.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@v0.3.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v0.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v0.3.0/manifests"},{"name":"v0.2.3","sha":"a199d3b1905cacd7652d62d1dba766598a16ca42","kind":"commit","published_at":"2011-02-21T20:08:03.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/v0.2.3","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v0.2.3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@v0.2.3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v0.2.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v0.2.3/manifests"},{"name":"v0.2.2","sha":"2e83ef4ceff6b275e0c5983061a8327325e6f955","kind":"commit","published_at":"2011-01-31T23:32:38.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/v0.2.2","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v0.2.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@v0.2.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v0.2.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v0.2.2/manifests"},{"name":"v0.2.1","sha":"aac25b608bc458bf9882a57136883ac721fe20fd","kind":"commit","published_at":"2010-12-02T01:33:24.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/v0.2.1","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v0.2.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@v0.2.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v0.2.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v0.2.1/manifests"},{"name":"v0.2.0","sha":"5b9797ab43f7e3cfe47ca2190bd05e76c489a0dd","kind":"commit","published_at":"2010-12-02T01:15:30.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/v0.2.0","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v0.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@v0.2.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v0.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v0.2.0/manifests"}]},"repo_metadata_updated_at":"2026-04-28T21:20:02.808Z","dependent_packages_count":20,"downloads":128391746,"downloads_period":"total","dependent_repos_count":2297,"rankings":{"downloads":0.21409217113992932,"dependent_repos_count":0.6578874008987411,"dependent_packages_count":1.050947246350955,"stargazers_count":1.996521002218976,"forks_count":1.1546481417468584,"docker_downloads_count":0.19067583992149953,"average":0.8774619670461599},"purl":"pkg:gem/ruby-saml","advisories":[{"uuid":"GSA_kwCzR0hTQS14NGg5LWd3djMtcjRtNM4ABPUR","url":"https://github.com/advisories/GHSA-x4h9-gwv3-r4m4","title":"Ruby-saml allows a Libxml2 Canonicalization error to bypass Digest/Signature validation","description":"### Summary\nRuby-saml up to and including 1.12.4, there is an authentication bypass vulnerability because of an issue at libxml2 canonicalization process used by Nokogiri for document transformation. That allows an attacker to be able to execute a Signature Wrapping attack. The vulnerability does not affect the version 1.18.0.\n\n### Details\nWhen libxml2’s canonicalization is invoked on an invalid XML input, it may return an empty string rather than a canonicalized node. ruby-saml then proceeds to compute the DigestValue over this empty string, treating it as if canonicalization succeeded.\n\n### Impact\n1. Digest bypass: By crafting input that causes canonicalization to yield an empty string, the attacker can manipulate validation to pass incorrectly.\n\n2. Signature replay on empty canonical form: If an empty string has been signed once (e.g., in a prior interaction or via a misconfigured flow), that signature can potentially be replayed to bypass authentication.","origin":"UNSPECIFIED","severity":"CRITICAL","published_at":"2025-12-08T22:03:19.000Z","withdrawn_at":null,"classification":"GENERAL","cvss_score":9.3,"cvss_vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N","references":["https://github.com/SAML-Toolkits/ruby-saml/security/advisories/GHSA-x4h9-gwv3-r4m4","https://github.com/SAML-Toolkits/ruby-saml/commit/acac9e9cc0b9a507882c614f25d41f8b47be349a","https://nvd.nist.gov/vuln/detail/CVE-2025-66568","https://github.com/rubysec/ruby-advisory-db/blob/master/gems/ruby-saml/CVE-2025-66568.yml","https://github.com/advisories/GHSA-x4h9-gwv3-r4m4"],"source_kind":"github","identifiers":["GHSA-x4h9-gwv3-r4m4","CVE-2025-66568"],"repository_url":null,"blast_radius":0.0,"created_at":"2025-12-08T23:00:07.273Z","updated_at":"2026-04-11T15:01:40.668Z","epss_percentage":0.00048,"epss_percentile":0.15032,"api_url":"https://advisories.ecosyste.ms/api/v1/advisories/GSA_kwCzR0hTQS14NGg5LWd3djMtcjRtNM4ABPUR","html_url":"https://advisories.ecosyste.ms/advisories/GSA_kwCzR0hTQS14NGg5LWd3djMtcjRtNM4ABPUR","packages":[{"ecosystem":"rubygems","package_name":"ruby-saml","versions":[{"first_patched_version":"1.18.0","vulnerable_version_range":"\u003c 1.18.0"}],"purl":"pkg:gem/ruby-saml"}],"related_packages_url":"https://advisories.ecosyste.ms/api/v1/advisories/GSA_kwCzR0hTQS14NGg5LWd3djMtcjRtNM4ABPUR/related_packages","related_advisories":[]},{"uuid":"GSA_kwCzR0hTQS05djhqLXg1MzQtMmZ4M84ABPUQ","url":"https://github.com/advisories/GHSA-9v8j-x534-2fx3","title":"Ruby-saml has a SAML authentication bypass due to namespace handling (parser differential)","description":"### Summary\n\nRuby-saml up to and including 1.12.4, there is an authentication bypass vulnerability because of an incomplete fix for CVE-2025-25292. ReXML and Nokogiri parse XML differently, the parsers can generate entirely different document structures from the same XML input. That allows an attacker to be able to execute a Signature Wrapping attack. The vulnerability does not affect the version 1.18.0.\n\n### Impact\nThat allows an attacker to be able to execute a Signature Wrapping attack and bypass the authentication","origin":"UNSPECIFIED","severity":"CRITICAL","published_at":"2025-12-08T21:30:56.000Z","withdrawn_at":null,"classification":"GENERAL","cvss_score":9.3,"cvss_vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N","references":["https://github.com/SAML-Toolkits/ruby-saml/security/advisories/GHSA-9v8j-x534-2fx3","https://github.com/SAML-Toolkits/ruby-saml/commit/e9c1cdbd0f9afa467b585de279db0cbd0fb8ae97","https://github.com/advisories/GHSA-754f-8gm6-c4r2","https://nvd.nist.gov/vuln/detail/CVE-2025-66567","https://github.com/rubysec/ruby-advisory-db/blob/master/gems/ruby-saml/CVE-2025-66567.yml","https://github.com/advisories/GHSA-9v8j-x534-2fx3"],"source_kind":"github","identifiers":["GHSA-9v8j-x534-2fx3","CVE-2025-66567"],"repository_url":null,"blast_radius":0.0,"created_at":"2025-12-08T22:00:08.305Z","updated_at":"2026-04-29T16:02:07.366Z","epss_percentage":0.0005,"epss_percentile":0.15492,"api_url":"https://advisories.ecosyste.ms/api/v1/advisories/GSA_kwCzR0hTQS05djhqLXg1MzQtMmZ4M84ABPUQ","html_url":"https://advisories.ecosyste.ms/advisories/GSA_kwCzR0hTQS05djhqLXg1MzQtMmZ4M84ABPUQ","packages":[{"ecosystem":"rubygems","package_name":"ruby-saml","versions":[{"first_patched_version":"1.18.0","vulnerable_version_range":"\u003c 1.18.0"}],"purl":"pkg:gem/ruby-saml"}],"related_packages_url":"https://advisories.ecosyste.ms/api/v1/advisories/GSA_kwCzR0hTQS05djhqLXg1MzQtMmZ4M84ABPUQ/related_packages","related_advisories":[]},{"uuid":"GSA_kwCzR0hTQS1ycnFoLTkzYzgtajk2Ns4ABKp9","url":"https://github.com/advisories/GHSA-rrqh-93c8-j966","title":"Ruby SAML DOS vulnerability with large SAML response","description":"### Summary\nA denial-of-service vulnerability exists in ruby-saml even with the message_max_bytesize setting configured. The vulnerability occurs because the SAML response is validated for Base64 format prior to checking the message size, leading to potential resource exhaustion.\n\n### Details\n`ruby-saml` includes a `message_max_bytesize` setting intended to prevent DOS attacks and decompression bombs. However, this protection is ineffective in some cases due to the order of operations in the code:\n\nhttps://github.com/SAML-Toolkits/ruby-saml/blob/fbbedc978300deb9355a8e505849666974ef2e67/lib/onelogin/ruby-saml/saml_message.rb\n\n```ruby\n      def decode_raw_saml(saml, settings = nil)\n        return saml unless base64_encoded?(saml) # \u003c--- Issue here. Should be moved after next code block.\n\n        settings = OneLogin::RubySaml::Settings.new if settings.nil?\n        if saml.bytesize \u003e settings.message_max_bytesize\n          raise ValidationError.new(\"Encoded SAML Message exceeds \" + settings.message_max_bytesize.to_s + \" bytes, so was rejected\")\n        end\n\n        decoded = decode(saml)\n        ...\n      end\n```\n\nThe vulnerability is in the execution order. Prior to checking bytesize the `base64_encoded?` function performs regex matching on the entire input string:\n\n```ruby\n!!string.gsub(/[\\r\\n]|\\\\r|\\\\n|\\s/, \"\").match(BASE64_FORMAT)\n```\n\n### Impact\n_What kind of vulnerability is it? Who is impacted?_\n\nWhen successfully exploited, this vulnerability can lead to:\n\n- Excessive memory consumption\n- High CPU utilization\n- Application slowdown or unresponsiveness\n- Complete application crash in severe cases\n- Potential denial of service for legitimate users\n\nAll applications using `ruby-saml` with SAML configured and enabled are vulnerable.\n\n### Potential Solution\n\nReorder the validation steps to ensure max bytesize is checked first\n\n```ruby\ndef decode_raw_saml(saml, settings = nil)\n  settings = OneLogin::RubySaml::Settings.new if settings.nil?\n\n  if saml.bytesize \u003e settings.message_max_bytesize\n    raise ValidationError.new(\"Encoded SAML Message exceeds \" + settings.message_max_bytesize.to_s + \" bytes, so was rejected\")\n  end\n  \n  return saml unless base64_encoded?(saml)\n  decoded = decode(saml)\n  ...\nend\n```","origin":"UNSPECIFIED","severity":"MODERATE","published_at":"2025-07-30T13:20:05.000Z","withdrawn_at":null,"classification":"GENERAL","cvss_score":6.9,"cvss_vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:L/SC:N/SI:N/SA:N","references":["https://github.com/SAML-Toolkits/ruby-saml/security/advisories/GHSA-rrqh-93c8-j966","https://github.com/SAML-Toolkits/ruby-saml/pull/770","https://github.com/SAML-Toolkits/ruby-saml/commit/38ef5dd1ce17514e202431f569c4f5633e6c2709","https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v1.18.1","https://nvd.nist.gov/vuln/detail/CVE-2025-54572","https://github.com/rubysec/ruby-advisory-db/blob/master/gems/ruby-saml/CVE-2025-54572.yml","https://lists.debian.org/debian-lts-announce/2025/09/msg00001.html","https://github.com/advisories/GHSA-rrqh-93c8-j966"],"source_kind":"github","identifiers":["GHSA-rrqh-93c8-j966","CVE-2025-54572"],"repository_url":"https://github.com/SAML-Toolkits/ruby-saml","blast_radius":23.19201086684568,"created_at":"2025-07-30T15:10:00.321Z","updated_at":"2026-04-27T14:03:04.440Z","epss_percentage":0.00147,"epss_percentile":0.34946,"api_url":"https://advisories.ecosyste.ms/api/v1/advisories/GSA_kwCzR0hTQS1ycnFoLTkzYzgtajk2Ns4ABKp9","html_url":"https://advisories.ecosyste.ms/advisories/GSA_kwCzR0hTQS1ycnFoLTkzYzgtajk2Ns4ABKp9","packages":[{"ecosystem":"rubygems","package_name":"ruby-saml","versions":[{"first_patched_version":"1.18.1","vulnerable_version_range":"\u003c 1.18.1"}],"purl":"pkg:gem/ruby-saml"}],"related_packages_url":"https://advisories.ecosyste.ms/api/v1/advisories/GSA_kwCzR0hTQS1ycnFoLTkzYzgtajk2Ns4ABKp9/related_packages","related_advisories":[]},{"uuid":"GSA_kwCzR0hTQS03NTRmLThnbTYtYzRyMs4ABFaL","url":"https://github.com/advisories/GHSA-754f-8gm6-c4r2","title":"Ruby SAML allows a SAML authentication bypass due to namespace handling (parser differential)","description":"### Summary\nAn authentication bypass vulnerability was found in ruby-saml due to a parser differential.\nReXML and Nokogiri parse XML differently, the parsers can generate entirely different document structures from the same XML input. That allows an attacker to be able to execute a Signature Wrapping attack.\n\n### Impact\nThis issue may lead to authentication bypass.","origin":"UNSPECIFIED","severity":"CRITICAL","published_at":"2025-03-12T20:54:42.000Z","withdrawn_at":null,"classification":"GENERAL","cvss_score":9.3,"cvss_vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N","references":["https://github.com/SAML-Toolkits/ruby-saml/security/advisories/GHSA-754f-8gm6-c4r2","https://github.com/omniauth/omniauth-saml/security/advisories/GHSA-hw46-3hmr-x9xv","https://github.com/SAML-Toolkits/ruby-saml/commit/e76c5b36bac40aedbf1ba7ffaaf495be63328cd9","https://github.com/SAML-Toolkits/ruby-saml/commit/e9c1cdbd0f9afa467b585de279db0cbd0fb8ae97","https://about.gitlab.com/releases/2025/03/12/patch-release-gitlab-17-9-2-released","https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v1.12.4","https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v1.18.0","https://nvd.nist.gov/vuln/detail/CVE-2025-25292","https://github.blog/security/sign-in-as-anyone-bypassing-saml-sso-authentication-with-parser-differentials","https://github.com/rubysec/ruby-advisory-db/blob/master/gems/ruby-saml/CVE-2025-25292.yml","https://security.netapp.com/advisory/ntap-20250314-0009","https://news.ycombinator.com/item?id=43374519","https://portswigger.net/research/saml-roulette-the-hacker-always-wins","https://securitylab.github.com/advisories/GHSL-2024-329_GHSL-2024-330_ruby-saml","https://lists.debian.org/debian-lts-announce/2025/04/msg00011.html","https://github.com/advisories/GHSA-754f-8gm6-c4r2"],"source_kind":"github","identifiers":["GHSA-754f-8gm6-c4r2","CVE-2025-25292"],"repository_url":"https://github.com/SAML-Toolkits/ruby-saml","blast_radius":31.25879725531374,"created_at":"2025-03-12T21:08:07.176Z","updated_at":"2026-04-27T14:03:45.139Z","epss_percentage":0.04077,"epss_percentile":0.88583,"api_url":"https://advisories.ecosyste.ms/api/v1/advisories/GSA_kwCzR0hTQS03NTRmLThnbTYtYzRyMs4ABFaL","html_url":"https://advisories.ecosyste.ms/advisories/GSA_kwCzR0hTQS03NTRmLThnbTYtYzRyMs4ABFaL","packages":[{"ecosystem":"rubygems","package_name":"ruby-saml","versions":[{"first_patched_version":"1.12.4","vulnerable_version_range":"\u003c 1.12.4"},{"first_patched_version":"1.18.0","vulnerable_version_range":"\u003e= 1.13.0, \u003c 1.18.0"}],"purl":"pkg:gem/ruby-saml"}],"related_packages_url":"https://advisories.ecosyste.ms/api/v1/advisories/GSA_kwCzR0hTQS03NTRmLThnbTYtYzRyMs4ABFaL/related_packages","related_advisories":[]},{"uuid":"GSA_kwCzR0hTQS00dmM0LW04cWgtZzhqbc4ABFZ_","url":"https://github.com/advisories/GHSA-4vc4-m8qh-g8jm","title":"Ruby SAML allows a SAML authentication bypass due to DOCTYPE handling (parser differential)","description":"### Summary\nAn authentication bypass vulnerability was found in ruby-saml due to a parser differential.\nReXML and Nokogiri parse XML differently, the parsers can generate entirely different document structures from the same XML input. That allows an attacker to be able to execute a Signature Wrapping attack.\n\n### Impact\nThis issue may lead to authentication bypass.","origin":"UNSPECIFIED","severity":"CRITICAL","published_at":"2025-03-12T20:20:24.000Z","withdrawn_at":null,"classification":"GENERAL","cvss_score":9.3,"cvss_vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N","references":["https://github.com/SAML-Toolkits/ruby-saml/security/advisories/GHSA-4vc4-m8qh-g8jm","https://github.com/SAML-Toolkits/ruby-saml/commit/e9c1cdbd0f9afa467b585de279db0cbd0fb8ae97","https://github.com/omniauth/omniauth-saml/security/advisories/GHSA-hw46-3hmr-x9xv","https://nvd.nist.gov/vuln/detail/CVE-2025-25291","https://github.com/SAML-Toolkits/ruby-saml/commit/e76c5b36bac40aedbf1ba7ffaaf495be63328cd9","https://about.gitlab.com/releases/2025/03/12/patch-release-gitlab-17-9-2-released","https://github.blog/security/sign-in-as-anyone-bypassing-saml-sso-authentication-with-parser-differentials","https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v1.12.4","https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v1.18.0","https://github.com/rubysec/ruby-advisory-db/blob/master/gems/ruby-saml/CVE-2025-25291.yml","https://security.netapp.com/advisory/ntap-20250314-0010","https://news.ycombinator.com/item?id=43374519","https://portswigger.net/research/saml-roulette-the-hacker-always-wins","https://securitylab.github.com/advisories/GHSL-2024-329_GHSL-2024-330_ruby-saml","https://lists.debian.org/debian-lts-announce/2025/04/msg00011.html","https://github.com/advisories/GHSA-4vc4-m8qh-g8jm"],"source_kind":"github","identifiers":["GHSA-4vc4-m8qh-g8jm","CVE-2025-25291"],"repository_url":"https://github.com/SAML-Toolkits/ruby-saml","blast_radius":31.25879725531374,"created_at":"2025-03-12T21:08:07.230Z","updated_at":"2026-04-23T09:03:54.374Z","epss_percentage":0.20843,"epss_percentile":0.95627,"api_url":"https://advisories.ecosyste.ms/api/v1/advisories/GSA_kwCzR0hTQS00dmM0LW04cWgtZzhqbc4ABFZ_","html_url":"https://advisories.ecosyste.ms/advisories/GSA_kwCzR0hTQS00dmM0LW04cWgtZzhqbc4ABFZ_","packages":[{"ecosystem":"rubygems","package_name":"ruby-saml","versions":[{"first_patched_version":"1.18.0","vulnerable_version_range":"\u003e= 1.13.0, \u003c 1.18.0"},{"first_patched_version":"1.12.4","vulnerable_version_range":"\u003c 1.12.4"}],"purl":"pkg:gem/ruby-saml"}],"related_packages_url":"https://advisories.ecosyste.ms/api/v1/advisories/GSA_kwCzR0hTQS00dmM0LW04cWgtZzhqbc4ABFZ_/related_packages","related_advisories":[]},{"uuid":"GSA_kwCzR0hTQS05MnJxLWM4Y2YtcHJycc4ABFZ-","url":"https://github.com/advisories/GHSA-92rq-c8cf-prrq","title":"Ruby SAML allows remote Denial of Service (DoS) with compressed SAML responses","description":"### Summary\nruby-saml is susceptible to remote Denial of Service (DoS) with compressed SAML responses.\n\nRuby-saml uses zlib to decompress SAML responses in case they're compressed. It is possible to bypass the message size check with a compressed assertion since the message size is checked before inflation and not after.\n\n### Impact\nThis issue may lead to remote Denial of Service (DoS).","origin":"UNSPECIFIED","severity":"HIGH","published_at":"2025-03-12T20:16:50.000Z","withdrawn_at":null,"classification":"GENERAL","cvss_score":7.7,"cvss_vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N/E:P","references":["https://github.com/SAML-Toolkits/ruby-saml/security/advisories/GHSA-92rq-c8cf-prrq","https://github.com/SAML-Toolkits/ruby-saml/commit/acac9e9cc0b9a507882c614f25d41f8b47be349a","https://github.com/omniauth/omniauth-saml/security/advisories/GHSA-hw46-3hmr-x9xv","https://nvd.nist.gov/vuln/detail/CVE-2025-25293","https://github.com/SAML-Toolkits/ruby-saml/commit/e2da4c6dae7dc01a4d9cd221395140a67e2b3eb1","https://about.gitlab.com/releases/2025/03/12/patch-release-gitlab-17-9-2-released","https://github.blog/security/sign-in-as-anyone-bypassing-saml-sso-authentication-with-parser-differentials","https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v1.12.4","https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v1.18.0","https://github.com/rubysec/ruby-advisory-db/blob/master/gems/ruby-saml/CVE-2025-25293.yml","https://security.netapp.com/advisory/ntap-20250314-0008","https://securitylab.github.com/advisories/GHSL-2024-355_ruby-saml","https://lists.debian.org/debian-lts-announce/2025/04/msg00011.html","https://github.com/advisories/GHSA-92rq-c8cf-prrq"],"source_kind":"github","identifiers":["GHSA-92rq-c8cf-prrq","CVE-2025-25293"],"repository_url":"https://github.com/SAML-Toolkits/ruby-saml","blast_radius":25.8809396630017,"created_at":"2025-03-12T21:08:08.000Z","updated_at":"2026-04-23T09:03:54.375Z","epss_percentage":0.05257,"epss_percentile":0.9,"api_url":"https://advisories.ecosyste.ms/api/v1/advisories/GSA_kwCzR0hTQS05MnJxLWM4Y2YtcHJycc4ABFZ-","html_url":"https://advisories.ecosyste.ms/advisories/GSA_kwCzR0hTQS05MnJxLWM4Y2YtcHJycc4ABFZ-","packages":[{"ecosystem":"rubygems","package_name":"ruby-saml","versions":[{"first_patched_version":"1.18.0","vulnerable_version_range":"\u003e= 1.13.0, \u003c 1.18.0"},{"first_patched_version":"1.12.4","vulnerable_version_range":"\u003c 1.12.4"}],"purl":"pkg:gem/ruby-saml"}],"related_packages_url":"https://advisories.ecosyste.ms/api/v1/advisories/GSA_kwCzR0hTQS05MnJxLWM4Y2YtcHJycc4ABFZ-/related_packages","related_advisories":[]},{"uuid":"GSA_kwCzR0hTQS1qdzljLW1mZzctOXJ4Ms4AA_cX","url":"https://github.com/advisories/GHSA-jw9c-mfg7-9rx2","title":"SAML authentication bypass via Incorrect XPath selector","description":"Ruby-SAML in \u003c= 12.2 and 1.13.0 \u003c= 1.16.0 does not properly verify the signature of the SAML Response. An unauthenticated attacker with access to any signed saml document (by the IdP) can thus forge a SAML Response/Assertion with arbitrary contents. This would allow the attacker to log in as arbitrary user within the vulnerable system.\n\nThis vulnerability was reported by ahacker1 of SecureSAML (ahacker1@securesaml.com)","origin":"UNSPECIFIED","severity":"CRITICAL","published_at":"2024-09-10T19:42:03.000Z","withdrawn_at":null,"classification":"GENERAL","cvss_score":9.9,"cvss_vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:N/SC:H/SI:H/SA:N","references":["https://github.com/SAML-Toolkits/ruby-saml/security/advisories/GHSA-jw9c-mfg7-9rx2","https://github.com/SAML-Toolkits/ruby-saml/commit/1ec5392bc506fe43a02dbb66b68741051c5ffeae","https://github.com/SAML-Toolkits/ruby-saml/commit/4865d030cae9705ee5cdb12415c654c634093ae7","https://nvd.nist.gov/vuln/detail/CVE-2024-45409","https://github.com/omniauth/omniauth-saml/security/advisories/GHSA-cvp8-5r8g-fhvq","https://github.com/omniauth/omniauth-saml/commit/4274e9d57e65f2dcaae4aa3b2accf831494f2ddd","https://github.com/rubysec/ruby-advisory-db/blob/master/gems/omniauth-saml/CVE-2024-45409.yml","https://github.com/rubysec/ruby-advisory-db/blob/master/gems/ruby-saml/CVE-2024-45409.yml","https://github.com/rubysec/ruby-advisory-db/blob/master/gems/omniauth-saml/GHSA-cvp8-5r8g-fhvq.yml","https://github.com/advisories/GHSA-jw9c-mfg7-9rx2"],"source_kind":"github","identifiers":["GHSA-jw9c-mfg7-9rx2","CVE-2024-45409"],"repository_url":"https://github.com/SAML-Toolkits/ruby-saml","blast_radius":33.275493852430756,"created_at":"2024-09-10T20:06:11.283Z","updated_at":"2026-04-23T09:05:01.628Z","epss_percentage":0.42423,"epss_percentile":0.97452,"api_url":"https://advisories.ecosyste.ms/api/v1/advisories/GSA_kwCzR0hTQS1qdzljLW1mZzctOXJ4Ms4AA_cX","html_url":"https://advisories.ecosyste.ms/advisories/GSA_kwCzR0hTQS1qdzljLW1mZzctOXJ4Ms4AA_cX","packages":[{"ecosystem":"rubygems","package_name":"ruby-saml","versions":[{"first_patched_version":"1.17.0","vulnerable_version_range":"\u003e= 1.13.0, \u003c 1.17.0"},{"first_patched_version":"1.12.3","vulnerable_version_range":"\u003c 1.12.3"}],"purl":"pkg:gem/ruby-saml"}],"related_packages_url":"https://advisories.ecosyste.ms/api/v1/advisories/GSA_kwCzR0hTQS1qdzljLW1mZzctOXJ4Ms4AA_cX/related_packages","related_advisories":[]},{"uuid":"GSA_kwCzR0hTQS1yMzY0LTJwajQtcGY3Zs4AAzf1","url":"https://github.com/advisories/GHSA-r364-2pj4-pf7f","title":"ruby-saml vulnerable to XPath injection","description":"`xml_security.rb` in the ruby-saml gem before 1.0.0 for Ruby allows XPath injection and code execution because prepared statements are not used.","origin":"UNSPECIFIED","severity":"CRITICAL","published_at":"2023-05-27T21:30:15.000Z","withdrawn_at":null,"classification":"GENERAL","cvss_score":9.8,"cvss_vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H","references":["https://nvd.nist.gov/vuln/detail/CVE-2015-20108","https://github.com/SAML-Toolkits/ruby-saml/pull/225","https://github.com/SAML-Toolkits/ruby-saml/commit/9853651b96b99653ea8627d757d46bfe62ab6448","https://github.com/SAML-Toolkits/ruby-saml/compare/v0.9.2...v1.0.0","https://github.com/rubysec/ruby-advisory-db/blob/master/gems/ruby-saml/OSVDB-124991.yml","https://github.com/rubysec/ruby-advisory-db/blob/master/gems/ruby-saml/CVE-2015-20108.yml","https://security.snyk.io/vuln/SNYK-RUBY-RUBYSAML-20217","https://security.netapp.com/advisory/ntap-20230703-0003","https://github.com/advisories/GHSA-r364-2pj4-pf7f"],"source_kind":"github","identifiers":["GHSA-r364-2pj4-pf7f","CVE-2015-20108"],"repository_url":"https://github.com/SAML-Toolkits/ruby-saml","blast_radius":0.0,"created_at":"2023-06-06T01:03:18.112Z","updated_at":"2026-04-05T20:08:49.398Z","epss_percentage":0.00404,"epss_percentile":0.60663,"api_url":"https://advisories.ecosyste.ms/api/v1/advisories/GSA_kwCzR0hTQS1yMzY0LTJwajQtcGY3Zs4AAzf1","html_url":"https://advisories.ecosyste.ms/advisories/GSA_kwCzR0hTQS1yMzY0LTJwajQtcGY3Zs4AAzf1","packages":[{"ecosystem":"rubygems","package_name":"ruby-saml","versions":[{"first_patched_version":"1.0.0","vulnerable_version_range":"\u003c 1.0.0"}],"purl":"pkg:gem/ruby-saml"}],"related_packages_url":"https://advisories.ecosyste.ms/api/v1/advisories/GSA_kwCzR0hTQS1yMzY0LTJwajQtcGY3Zs4AAzf1/related_packages","related_advisories":[]},{"uuid":"MDE2OlNlY3VyaXR5QWR2aXNvcnlHSFNBLXgyZnItdjh3Zi04d3d2","url":"https://github.com/advisories/GHSA-x2fr-v8wf-8wwv","title":"Ruby-SAML Improper Authentication vulnerability","description":"OneLogin Ruby-SAML 1.6.0 and earlier may incorrectly utilize the results of XML DOM traversal and canonicalization APIs in such a way that an attacker may be able to manipulate the SAML data without invalidating the cryptographic signature, allowing the attack to potentially bypass authentication to SAML service providers.","origin":"UNSPECIFIED","severity":"HIGH","published_at":"2019-07-05T21:11:35.000Z","withdrawn_at":null,"classification":"GENERAL","cvss_score":7.7,"cvss_vector":"CVSS:3.0/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:N/A:N","references":["https://nvd.nist.gov/vuln/detail/CVE-2017-11428","https://duo.com/blog/duo-finds-saml-vulnerabilities-affecting-multiple-implementations","https://www.kb.cert.org/vuls/id/475445","https://github.com/advisories/GHSA-x2fr-v8wf-8wwv"],"source_kind":"github","identifiers":["GHSA-x2fr-v8wf-8wwv","CVE-2017-11428"],"repository_url":null,"blast_radius":0.0,"created_at":"2022-12-21T16:13:28.948Z","updated_at":"2026-04-29T14:16:44.070Z","epss_percentage":0.0058,"epss_percentile":0.6888,"api_url":"https://advisories.ecosyste.ms/api/v1/advisories/MDE2OlNlY3VyaXR5QWR2aXNvcnlHSFNBLXgyZnItdjh3Zi04d3d2","html_url":"https://advisories.ecosyste.ms/advisories/MDE2OlNlY3VyaXR5QWR2aXNvcnlHSFNBLXgyZnItdjh3Zi04d3d2","packages":[{"ecosystem":"rubygems","package_name":"ruby-saml","versions":[{"first_patched_version":"1.7.0","vulnerable_version_range":"\u003c 1.7.0"}],"purl":"pkg:gem/ruby-saml","statistics":{"dependent_packages_count":20,"dependent_repos_count":2297,"downloads":128391746,"downloads_period":"total"},"affected_versions":["0.0.5","0.0.6","0.0.7","0.0.8","0.2.1","0.2.2","0.2.3","0.3.0","0.3.1","0.3.2","0.3.3","0.3.4","0.4.0","0.4.1","0.4.2","0.4.3","0.4.4","0.4.5","0.4.6","0.4.7","0.5.0","0.5.1","0.5.2","0.5.3","0.6.0","0.7.0","0.7.1","0.7.2","0.7.3","0.8.0","0.8.1","0.8.2","0.8.3","0.8.4","0.8.5","0.8.6","0.8.7","0.8.8","0.8.9","0.8.10","0.8.11","0.8.12","0.8.13","0.8.14","0.8.15","0.8.16","0.8.17","0.8.18","0.9.1","0.9.2","0.9.3","0.9.4","1.0.0","1.1.0","1.1.1","1.1.2","1.2.0","1.3.0","1.3.1","1.4.0","1.4.1","1.4.2","1.4.3","1.5.0","1.6.0","1.6.1","1.6.2"],"unaffected_versions":["1.7.0","1.7.1","1.7.2","1.8.0","1.9.0","1.10.0","1.10.1","1.10.2","1.11.0","1.12.0","1.12.1","1.12.2","1.12.3","1.12.4","1.13.0","1.14.0","1.15.0","1.16.0","1.17.0","1.18.0","1.18.1"]}],"related_packages_url":"https://advisories.ecosyste.ms/api/v1/advisories/MDE2OlNlY3VyaXR5QWR2aXNvcnlHSFNBLXgyZnItdjh3Zi04d3d2/related_packages","related_advisories":[]},{"uuid":"MDE2OlNlY3VyaXR5QWR2aXNvcnlHSFNBLTM2cDcteGp3OC1oNmYy","url":"https://github.com/advisories/GHSA-36p7-xjw8-h6f2","title":"Ruby-saml allows attackers to perform XML signature wrapping attacks ","description":"ruby-saml prior to version 1.3.0 is vulnerable to an XML signature wrapping attack in the specific scenario where there was a signature that referenced at the same time 2 elements (but past the scheme validator process since 1 of the element was inside the encrypted assertion).\nruby-saml users must update to 1.3.0, which implements 3 extra validations to mitigate this kind of attack.","origin":"UNSPECIFIED","severity":"HIGH","published_at":"2018-08-21T17:08:30.000Z","withdrawn_at":null,"classification":"GENERAL","cvss_score":7.5,"cvss_vector":"CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N","references":["https://nvd.nist.gov/vuln/detail/CVE-2016-5697","http://www.openwall.com/lists/oss-security/2016/06/24/3","https://github.com/onelogin/ruby-saml/commit/a571f52171e6bfd87db59822d1d9e8c38fb3b995","https://github.com/rubysec/ruby-advisory-db/blob/master/gems/ruby-saml/CVE-2016-5697.yml","https://github.com/advisories/GHSA-36p7-xjw8-h6f2"],"source_kind":"github","identifiers":["GHSA-36p7-xjw8-h6f2","CVE-2016-5697"],"repository_url":"https://github.com/onelogin/ruby-saml","blast_radius":0.0,"created_at":"2022-12-21T16:13:36.508Z","updated_at":"2026-04-23T10:07:33.501Z","epss_percentage":0.00416,"epss_percentile":0.61695,"api_url":"https://advisories.ecosyste.ms/api/v1/advisories/MDE2OlNlY3VyaXR5QWR2aXNvcnlHSFNBLTM2cDcteGp3OC1oNmYy","html_url":"https://advisories.ecosyste.ms/advisories/MDE2OlNlY3VyaXR5QWR2aXNvcnlHSFNBLTM2cDcteGp3OC1oNmYy","packages":[{"ecosystem":"rubygems","package_name":"ruby-saml","versions":[{"first_patched_version":"1.3.0","vulnerable_version_range":"\u003c 1.3.0"}],"purl":"pkg:gem/ruby-saml"}],"related_packages_url":"https://advisories.ecosyste.ms/api/v1/advisories/MDE2OlNlY3VyaXR5QWR2aXNvcnlHSFNBLTM2cDcteGp3OC1oNmYy/related_packages","related_advisories":[]}],"docker_usage_url":"https://docker.ecosyste.ms/usage/rubygems/ruby-saml","docker_dependents_count":222,"docker_downloads_count":580512530,"usage_url":"https://repos.ecosyste.ms/usage/rubygems/ruby-saml","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/rubygems/ruby-saml/dependencies","status":null,"funding_links":["https://github.com/sponsors/SAML-Toolkits"],"critical":true,"issue_metadata":{"last_synced_at":"2026-04-19T14:00:51.846Z","issues_count":78,"pull_requests_count":207,"avg_time_to_close_issue":44199800.79032258,"avg_time_to_close_pull_request":7191089.529411765,"issues_closed_count":62,"pull_requests_closed_count":170,"pull_request_authors_count":48,"issue_authors_count":51,"avg_comments_per_issue":3.371794871794872,"avg_comments_per_pull_request":1.8985507246376812,"merged_pull_requests_count":125,"bot_issues_count":0,"bot_pull_requests_count":1,"past_year_issues_count":7,"past_year_pull_requests_count":16,"past_year_avg_time_to_close_issue":421418.0,"past_year_avg_time_to_close_pull_request":6039.333333333333,"past_year_issues_closed_count":4,"past_year_pull_requests_closed_count":3,"past_year_pull_request_authors_count":6,"past_year_issue_authors_count":6,"past_year_avg_comments_per_issue":3.5714285714285716,"past_year_avg_comments_per_pull_request":0.625,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":0,"past_year_merged_pull_requests_count":3,"issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/issues","maintainers":[{"login":"johnnyshields","count":131,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/johnnyshields"},{"login":"pitbulk","count":30,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/pitbulk"}],"active_maintainers":[{"login":"pitbulk","count":7,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/pitbulk"},{"login":"johnnyshields","count":3,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/johnnyshields"}]},"versions_url":"https://packages.ecosyste.ms/api/v1/registries/rubygems.org/packages/ruby-saml/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/rubygems.org/packages/ruby-saml/version_numbers","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/rubygems.org/packages/ruby-saml/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/rubygems.org/packages/ruby-saml/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/rubygems.org/packages/ruby-saml/codemeta","maintainers":[{"uuid":"91700","login":"sixtomartin","name":null,"email":null,"url":null,"packages_count":1,"html_url":"https://rubygems.org/profiles/sixtomartin","role":null,"created_at":"2022-12-08T18:47:12.201Z","updated_at":"2022-12-08T18:47:12.201Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/rubygems.org/maintainers/sixtomartin/packages"}],"registry":{"name":"rubygems.org","url":"https://rubygems.org","ecosystem":"rubygems","default":true,"packages_count":205541,"maintainers_count":68469,"namespaces_count":0,"keywords_count":0,"github":"rubygems","metadata":{"funded_packages_count":7260},"icon_url":"https://github.com/rubygems.png","created_at":"2022-04-04T15:19:23.446Z","updated_at":"2026-04-03T06:42:17.024Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/rubygems.org/packages","maintainers_url":"https://packages.ecosyste.ms/api/v1/registries/rubygems.org/maintainers","namespaces_url":"https://packages.ecosyste.ms/api/v1/registries/rubygems.org/namespaces"}},{"id":11692433,"name":"github.com/SAML-Toolkits/ruby-saml","ecosystem":"go","description":null,"homepage":null,"licenses":"mit","normalized_licenses":["MIT"],"repository_url":"https://github.com/SAML-Toolkits/ruby-saml","keywords_array":[],"namespace":null,"versions_count":57,"first_release_published_at":"2010-12-02T01:15:30.000Z","latest_release_published_at":"2025-07-29T18:51:00.000Z","latest_release_number":"v1.18.1","last_synced_at":"2026-04-27T18:02:19.768Z","created_at":"2025-05-27T08:23:48.935Z","updated_at":"2026-04-27T18:02:19.769Z","registry_url":"https://pkg.go.dev/github.com/SAML-Toolkits/ruby-saml","install_command":"go get github.com/SAML-Toolkits/ruby-saml","documentation_url":"https://pkg.go.dev/github.com/SAML-Toolkits/ruby-saml#section-documentation","metadata":{},"repo_metadata":{"id":893163,"uuid":"644899","full_name":"SAML-Toolkits/ruby-saml","owner":"SAML-Toolkits","description":"SAML SSO for Ruby","archived":false,"fork":false,"pushed_at":"2025-07-30T08:08:37.000Z","size":2950,"stargazers_count":966,"open_issues_count":21,"forks_count":593,"subscribers_count":108,"default_branch":"master","last_synced_at":"2025-10-05T14:02:04.392Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/SAML-Toolkits.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null},"funding":{"github":["SAML-Toolkits"]}},"created_at":"2010-05-03T18:39:04.000Z","updated_at":"2025-10-05T01:02:39.000Z","dependencies_parsed_at":"2023-09-11T17:11:15.740Z","dependency_job_id":"69948a06-f508-4e2a-8b4d-a178b2b0a6ed","html_url":"https://github.com/SAML-Toolkits/ruby-saml","commit_stats":{"total_commits":842,"total_committers":179,"mean_commits":4.70391061452514,"dds":0.7173396674584323,"last_synced_commit":"21b676bdf55452750d8ee5facd2f6e3c51927315"},"previous_names":["onelogin/ruby-saml"],"tags_count":69,"template":false,"template_full_name":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/SAML-Toolkits","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":278464330,"owners_count":25991182,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-05T02:00:06.059Z","response_time":54,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"},"owner_record":{"login":"SAML-Toolkits","name":"SAML-Toolkits","uuid":"116213842","kind":"organization","description":"SAML-Toolkits maintained by Sixto Martin @ IAM Digital Services SL","email":"contact@iamdigitalservices.com","website":null,"location":"Spain","twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/116213842?v=4","repositories_count":6,"last_synced_at":"2025-09-21T15:58:35.053Z","metadata":{"has_sponsors_listing":true},"html_url":"https://github.com/SAML-Toolkits","funding_links":["https://github.com/sponsors/SAML-Toolkits"],"total_stars":null,"followers":34,"following":0,"created_at":"2023-02-26T02:35:00.158Z","updated_at":"2025-09-21T15:58:35.054Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/SAML-Toolkits","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/SAML-Toolkits/repositories"},"tags":[{"name":"v1.18.1","sha":"8c395b5d75a2c4cd5516a705171b16a80cf19c35","kind":"commit","published_at":"2025-07-29T18:51:00.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/v1.18.1","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v1.18.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@v1.18.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v1.18.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v1.18.1/manifests"},{"name":"v1.12.4","sha":"48cc5b92e1dde8637a013dfd48cdf8ceadd499b2","kind":"commit","published_at":"2025-03-12T19:40:08.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/v1.12.4","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v1.12.4","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@v1.12.4","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v1.12.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v1.12.4/manifests"},{"name":"v1.18.0","sha":"6a7c040049babe748ee1bb4ca13898c47189114c","kind":"commit","published_at":"2025-03-12T18:32:16.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/v1.18.0","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v1.18.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@v1.18.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v1.18.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v1.18.0/manifests"},{"name":"v1.12.3","sha":"1ec5392bc506fe43a02dbb66b68741051c5ffeae","kind":"commit","published_at":"2024-09-10T17:17:25.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/v1.12.3","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v1.12.3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@v1.12.3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v1.12.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v1.12.3/manifests"},{"name":"v1.17.0","sha":"1bc447f297b769d1a9abeb619ce074bd9c410a72","kind":"commit","published_at":"2024-09-10T17:15:42.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/v1.17.0","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v1.17.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@v1.17.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v1.17.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v1.17.0/manifests"},{"name":"v1.16.0","sha":"148a4c2de713a98c58c28bbc7785c05698216a4d","kind":"commit","published_at":"2023-10-09T15:30:09.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/v1.16.0","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v1.16.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@v1.16.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v1.16.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v1.16.0/manifests"},{"name":"v1.15.0","sha":"f48a98139b4482b997f133399996c5c3c1e9d72d","kind":"commit","published_at":"2023-01-04T11:40:55.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/v1.15.0","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v1.15.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@v1.15.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v1.15.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v1.15.0/manifests"},{"name":"v1.14.0","sha":"c38d72425b11aee5b2be595d44b407f8dfd92d6a","kind":"commit","published_at":"2022-02-01T17:16:51.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/v1.14.0","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v1.14.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@v1.14.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v1.14.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v1.14.0/manifests"},{"name":"v1.13.0","sha":"5da850c36bbf678674f9321032df428139d7e434","kind":"commit","published_at":"2021-09-06T17:49:29.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/v1.13.0","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v1.13.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@v1.13.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v1.13.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v1.13.0/manifests"},{"name":"v1.12.2","sha":"bbb4fb6c483ade203b0cfde32a0843416b771491","kind":"commit","published_at":"2021-04-12T23:21:17.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/v1.12.2","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v1.12.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@v1.12.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v1.12.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v1.12.2/manifests"},{"name":"v1.12.1","sha":"79fc1d772d84ae4f80a4f5b747b00d830839657e","kind":"commit","published_at":"2021-04-05T21:22:59.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/v1.12.1","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v1.12.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@v1.12.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v1.12.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v1.12.1/manifests"},{"name":"v1.12.0","sha":"bbd954b87c08e5e202dbaae9070f7e4aab8b45f8","kind":"commit","published_at":"2021-02-18T19:19:49.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/v1.12.0","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v1.12.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@v1.12.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v1.12.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v1.12.0/manifests"},{"name":"v1.11.0","sha":"eae81404d8661046aa053d0f4b4fa80f569f9f17","kind":"commit","published_at":"2019-07-24T16:22:43.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/v1.11.0","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v1.11.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@v1.11.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v1.11.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v1.11.0/manifests"},{"name":"v1.10.2","sha":"688d9e927d8b2d22a8b4daa870740d234b7b76c8","kind":"commit","published_at":"2019-04-29T16:34:21.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/v1.10.2","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v1.10.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@v1.10.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v1.10.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v1.10.2/manifests"},{"name":"v1.10.1","sha":"ad9f76d3f91dd45646aeab4430a81ad4797b81e9","kind":"commit","published_at":"2019-04-08T12:49:11.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/v1.10.1","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v1.10.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@v1.10.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v1.10.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v1.10.1/manifests"},{"name":"v1.10.0","sha":"65827d3df4dd63a3f1a7979bcbba0fd4d5f9b007","kind":"commit","published_at":"2019-03-21T13:43:35.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/v1.10.0","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v1.10.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@v1.10.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v1.10.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v1.10.0/manifests"},{"name":"v1.9.0","sha":"16f36c176cb93846a71db2928bd0198fc417887f","kind":"commit","published_at":"2018-10-14T21:44:36.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/v1.9.0","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v1.9.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@v1.9.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v1.9.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v1.9.0/manifests"},{"name":"v1.8.0","sha":"51ebceee5ef6e529159f88e18bcbd3f3ae6c53b5","kind":"commit","published_at":"2018-04-23T14:47:50.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/v1.8.0","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v1.8.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@v1.8.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v1.8.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v1.8.0/manifests"},{"name":"v1.7.2","sha":"630a15600608217f35f45c4402de44cbfd72f618","kind":"commit","published_at":"2018-02-28T22:03:05.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/v1.7.2","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v1.7.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@v1.7.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v1.7.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v1.7.2/manifests"},{"name":"v1.7.1","sha":"0a7d012a8cab3cb016c81e7962bf7a3393944f92","kind":"commit","published_at":"2018-02-28T19:23:27.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/v1.7.1","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v1.7.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@v1.7.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v1.7.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v1.7.1/manifests"},{"name":"v1.6.2","sha":"082249efe498841e0747d2b3452f4ef5e867b025","kind":"commit","published_at":"2018-02-27T12:44:29.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/v1.6.2","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v1.6.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@v1.6.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v1.6.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v1.6.2/manifests"},{"name":"v1.7.0","sha":"082249efe498841e0747d2b3452f4ef5e867b025","kind":"commit","published_at":"2018-02-27T12:44:29.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/v1.7.0","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v1.7.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@v1.7.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v1.7.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v1.7.0/manifests"},{"name":"v0.9.3","sha":"04f1975a835ec47486fbe0caac1c71ac0ecdf3f4","kind":"commit","published_at":"2018-02-27T10:51:42.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/v0.9.3","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v0.9.3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@v0.9.3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v0.9.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v0.9.3/manifests"},{"name":"0.8.3","sha":"a2de8c13de8c08e0a15ba02f565099fbbee19813","kind":"commit","published_at":"2018-02-27T10:29:08.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/0.8.3","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/0.8.3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@0.8.3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/0.8.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/0.8.3/manifests"},{"name":"v1.6.1","sha":"414d144419fbb4473fb5135bbef401e4584c3d38","kind":"commit","published_at":"2018-01-15T12:46:07.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/v1.6.1","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v1.6.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@v1.6.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v1.6.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v1.6.1/manifests"},{"name":"v1.6.0","sha":"5bb3a7315b92f413921d2523c8bed174d4f1aa9d","kind":"commit","published_at":"2017-11-27T11:19:59.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/v1.6.0","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v1.6.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@v1.6.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v1.6.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v1.6.0/manifests"},{"name":"1.5.0","sha":"5dbc69a23a55e17f5550fb8f90af29200705a8e1","kind":"commit","published_at":"2017-08-31T10:40:41.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/1.5.0","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/1.5.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@1.5.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/1.5.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/1.5.0/manifests"},{"name":"1.4.3","sha":"debcf2328a7f670fe954f07f177068375fa73f2d","kind":"commit","published_at":"2017-05-18T18:57:22.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/1.4.3","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/1.4.3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@1.4.3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/1.4.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/1.4.3/manifests"},{"name":"1.4.2","sha":"b67e3599b308f8755c47d64dc3d61ab40a9525e3","kind":"commit","published_at":"2017-01-11T10:18:13.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/1.4.2","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/1.4.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@1.4.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/1.4.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/1.4.2/manifests"},{"name":"1.4.1","sha":"d4c8cff74e889411b8ed395b2ba5b30753843c0e","kind":"commit","published_at":"2016-10-19T12:56:08.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/1.4.1","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/1.4.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@1.4.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/1.4.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/1.4.1/manifests"},{"name":"1.4.0","sha":"3a9d1fe7052db1d0f16a268fecd5d5f4f7926aca","kind":"commit","published_at":"2016-10-13T21:18:17.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/1.4.0","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/1.4.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@1.4.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/1.4.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/1.4.0/manifests"},{"name":"1.3.1","sha":"55359e2276d35834679d4840e3c0286d542a9e21","kind":"commit","published_at":"2016-07-14T20:56:28.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/1.3.1","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/1.3.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@1.3.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/1.3.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/1.3.1/manifests"},{"name":"v1.3.0","sha":"171a41e8a1159005ca4beb888f1d97555f4621a9","kind":"commit","published_at":"2016-06-24T17:03:23.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/v1.3.0","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v1.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@v1.3.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v1.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v1.3.0/manifests"},{"name":"v1.2.0","sha":"5cfca6756514ae9efd3e0e16cfefcd5a09faefd3","kind":"commit","published_at":"2016-04-29T21:49:36.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/v1.2.0","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v1.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@v1.2.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v1.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v1.2.0/manifests"},{"name":"v1.1.2","sha":"c47dc02b12a40989b0b6665d63906b66849026ec","kind":"commit","published_at":"2016-02-15T20:31:27.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/v1.1.2","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v1.1.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@v1.1.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v1.1.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v1.1.2/manifests"},{"name":"v1.1.1","sha":"cce82eee39c4afbf826463251530ebbd7822178c","kind":"commit","published_at":"2015-11-10T12:13:27.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/v1.1.1","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v1.1.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@v1.1.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v1.1.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v1.1.1/manifests"},{"name":"v1.1.0","sha":"12c9f9caf2578060f6d97d10ec76cbe718d16ec0","kind":"commit","published_at":"2015-10-27T11:41:55.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/v1.1.0","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v1.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@v1.1.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v1.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v1.1.0/manifests"},{"name":"v1.0.0","sha":"05c82d9e74b1ef8f2e0ba0c3e341da0202a3c1d6","kind":"commit","published_at":"2015-07-01T17:44:23.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/v1.0.0","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v1.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@v1.0.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v1.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v1.0.0/manifests"},{"name":"v0.9.2","sha":"54c634917ef85a8b6730901dda20351493e15bb2","kind":"commit","published_at":"2015-04-28T23:08:20.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/v0.9.2","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v0.9.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@v0.9.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v0.9.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v0.9.2/manifests"},{"name":"v0.9.1","sha":"06e33122e993348d64bb2174bc426a87c10fe32b","kind":"commit","published_at":"2015-02-10T22:15:23.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/v0.9.1","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v0.9.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@v0.9.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v0.9.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v0.9.1/manifests"},{"name":"v0.9","sha":"854931db4f06ab3973cfe45fba68e68eab4c55a4","kind":"commit","published_at":"2015-01-26T22:36:06.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/v0.9","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v0.9","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@v0.9","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v0.9","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v0.9/manifests"},{"name":"0.8.2","sha":"c0b5ca42dd62251afc8f8b4fc5b340458ae3aed0","kind":"commit","published_at":"2015-01-26T18:45:49.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/0.8.2","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/0.8.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@0.8.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/0.8.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/0.8.2/manifests"},{"name":"0.8.1","sha":"84c3a6fad1008bda4848b0602dbba5a32e18d932","kind":"commit","published_at":"2014-02-25T18:45:13.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/0.8.1","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/0.8.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@0.8.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/0.8.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/0.8.1/manifests"},{"name":"0.8.0","sha":"e9a91c102498722ffbb136a248d039f4b3566884","kind":"commit","published_at":"2014-02-24T19:27:12.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/0.8.0","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/0.8.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@0.8.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/0.8.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/0.8.0/manifests"},{"name":"0.7.3","sha":"adb7aa4d2c8251a0957c31ae5ed80130aac0f4cc","kind":"commit","published_at":"2014-02-21T01:28:51.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/0.7.3","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/0.7.3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@0.7.3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/0.7.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/0.7.3/manifests"},{"name":"v0.7.1","sha":"7dcb127ca99ca18178b61220d0c6715a6decfc21","kind":"commit","published_at":"2013-01-24T00:09:13.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/v0.7.1","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v0.7.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@v0.7.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v0.7.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v0.7.1/manifests"},{"name":"v0.7.0","sha":"e9908511651007990168ebf3bdab94f2ec3b3db2","kind":"commit","published_at":"2013-01-24T00:07:55.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/v0.7.0","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v0.7.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@v0.7.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v0.7.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v0.7.0/manifests"},{"name":"v0.6.0","sha":"9c5d012ebc168595eb91f86f82ec2d9a29638a01","kind":"commit","published_at":"2012-11-02T18:45:06.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/v0.6.0","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v0.6.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@v0.6.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v0.6.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v0.6.0/manifests"},{"name":"v0.5.3","sha":"386b94d8cb931b449dca8380be610e0146228425","kind":"commit","published_at":"2012-04-18T17:13:49.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/v0.5.3","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v0.5.3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@v0.5.3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v0.5.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v0.5.3/manifests"},{"name":"v0.5.2","sha":"620cbed12c22015426280b1d4d3927bfb570252c","kind":"commit","published_at":"2012-04-14T16:50:11.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/v0.5.2","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v0.5.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@v0.5.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v0.5.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v0.5.2/manifests"},{"name":"v0.5.1","sha":"2202b9ecd78788f7401c68ff738517288de569bb","kind":"commit","published_at":"2012-04-13T22:27:43.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/v0.5.1","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v0.5.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@v0.5.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v0.5.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v0.5.1/manifests"},{"name":"v0.5.0","sha":"201807517740d452bb404314cea514600f303ac6","kind":"commit","published_at":"2012-04-13T22:22:22.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/v0.5.0","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v0.5.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@v0.5.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v0.5.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v0.5.0/manifests"},{"name":"v0.4.7","sha":"cd25bcbb76138ec3027d3c43322c0805c7b6d2cd","kind":"commit","published_at":"2011-06-29T22:29:15.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/v0.4.7","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v0.4.7","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@v0.4.7","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v0.4.7","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v0.4.7/manifests"},{"name":"v0.4.6","sha":"e9fcaf6286d59387be224cac1a1cfcfcc5b3c0ee","kind":"commit","published_at":"2011-06-28T19:51:09.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/v0.4.6","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v0.4.6","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@v0.4.6","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v0.4.6","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v0.4.6/manifests"},{"name":"v0.4.5","sha":"51ab54d0e52ecd21b16177a49d2a9a3829cd44b5","kind":"commit","published_at":"2011-06-17T19:25:25.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/v0.4.5","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v0.4.5","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@v0.4.5","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v0.4.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v0.4.5/manifests"},{"name":"v0.4.4","sha":"23e6250c97deadd1d637ce43c6562826d08e6e91","kind":"commit","published_at":"2011-06-10T19:47:42.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/v0.4.4","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v0.4.4","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@v0.4.4","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v0.4.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v0.4.4/manifests"},{"name":"v0.4.3","sha":"93093da7e70cd6ac91bcd2b382ea9daf5b9e80e8","kind":"commit","published_at":"2011-06-04T21:10:29.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/v0.4.3","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v0.4.3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@v0.4.3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v0.4.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v0.4.3/manifests"},{"name":"v0.4.2","sha":"ad3c4a19c90b17937643e5486a1954da1468bd99","kind":"commit","published_at":"2011-06-04T21:02:18.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/v0.4.2","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v0.4.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@v0.4.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v0.4.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v0.4.2/manifests"},{"name":"v0.4.1","sha":"874e2cf9d299108a017503a84fba4dbcd50f4ba7","kind":"commit","published_at":"2011-06-04T02:40:29.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/v0.4.1","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v0.4.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@v0.4.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v0.4.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v0.4.1/manifests"},{"name":"v0.4.0","sha":"ecd8b66c277c5581b37859b88c34ca14da7bf0d5","kind":"commit","published_at":"2011-05-03T21:07:18.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/v0.4.0","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v0.4.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@v0.4.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v0.4.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v0.4.0/manifests"},{"name":"v0.3.4","sha":"3cc39528e64e42df9162799ac9b8f1f5a3dccf2a","kind":"commit","published_at":"2011-04-28T15:02:45.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/v0.3.4","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v0.3.4","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@v0.3.4","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v0.3.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v0.3.4/manifests"},{"name":"v0.3.3","sha":"3785ff8928eca9767f709e906927a0e11607a533","kind":"commit","published_at":"2011-04-18T21:31:51.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/v0.3.3","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v0.3.3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@v0.3.3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v0.3.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v0.3.3/manifests"},{"name":"v0.3.2","sha":"74287b89b3d642d4cd8005f7f4ecb315ee8f331e","kind":"commit","published_at":"2011-03-08T08:55:03.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/v0.3.2","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v0.3.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@v0.3.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v0.3.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v0.3.2/manifests"},{"name":"v0.3.1","sha":"057c5ce3fd06a9706255e2612e4c3767d38659b7","kind":"commit","published_at":"2011-03-07T08:06:32.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/v0.3.1","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v0.3.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@v0.3.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v0.3.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v0.3.1/manifests"},{"name":"v0.3.0","sha":"0c33f973b145be11bf73448971d503e4f2d3af70","kind":"commit","published_at":"2011-03-03T11:45:53.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/v0.3.0","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v0.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@v0.3.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v0.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v0.3.0/manifests"},{"name":"v0.2.3","sha":"a199d3b1905cacd7652d62d1dba766598a16ca42","kind":"commit","published_at":"2011-02-21T20:08:03.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/v0.2.3","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v0.2.3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@v0.2.3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v0.2.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v0.2.3/manifests"},{"name":"v0.2.2","sha":"2e83ef4ceff6b275e0c5983061a8327325e6f955","kind":"commit","published_at":"2011-01-31T23:32:38.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/v0.2.2","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v0.2.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@v0.2.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v0.2.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v0.2.2/manifests"},{"name":"v0.2.1","sha":"aac25b608bc458bf9882a57136883ac721fe20fd","kind":"commit","published_at":"2010-12-02T01:33:24.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/v0.2.1","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v0.2.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@v0.2.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v0.2.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v0.2.1/manifests"},{"name":"v0.2.0","sha":"5b9797ab43f7e3cfe47ca2190bd05e76c489a0dd","kind":"commit","published_at":"2010-12-02T01:15:30.000Z","download_url":"https://codeload.github.com/SAML-Toolkits/ruby-saml/tar.gz/v0.2.0","html_url":"https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v0.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/SAML-Toolkits/ruby-saml@v0.2.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v0.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/tags/v0.2.0/manifests"}]},"repo_metadata_updated_at":"2025-10-21T17:52:22.329Z","dependent_packages_count":0,"downloads":null,"downloads_period":null,"dependent_repos_count":0,"rankings":{"downloads":null,"dependent_repos_count":5.807004531283771,"dependent_packages_count":5.441509219438237,"stargazers_count":null,"forks_count":null,"docker_downloads_count":null,"average":5.624256875361004},"purl":"pkg:golang/github.com/%21s%21a%21m%21l-%21toolkits/ruby-saml","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/go/github.com/SAML-Toolkits/ruby-saml","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/go/github.com/SAML-Toolkits/ruby-saml","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/go/github.com/SAML-Toolkits/ruby-saml/dependencies","status":null,"funding_links":["https://github.com/sponsors/SAML-Toolkits"],"critical":null,"issue_metadata":{"last_synced_at":"2025-10-03T22:49:49.150Z","issues_count":75,"pull_requests_count":201,"avg_time_to_close_issue":45334184.9661017,"avg_time_to_close_pull_request":6963240.383233533,"issues_closed_count":59,"pull_requests_closed_count":167,"pull_request_authors_count":47,"issue_authors_count":50,"avg_comments_per_issue":2.973333333333333,"avg_comments_per_pull_request":1.880597014925373,"merged_pull_requests_count":123,"bot_issues_count":0,"bot_pull_requests_count":1,"past_year_issues_count":9,"past_year_pull_requests_count":69,"past_year_avg_time_to_close_issue":347955.6,"past_year_avg_time_to_close_pull_request":701086.804347826,"past_year_issues_closed_count":5,"past_year_pull_requests_closed_count":46,"past_year_pull_request_authors_count":9,"past_year_issue_authors_count":8,"past_year_avg_comments_per_issue":1.222222222222222,"past_year_avg_comments_per_pull_request":1.2753623188405796,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":0,"past_year_merged_pull_requests_count":36,"issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/issues","maintainers":[{"login":"johnnyshields","count":128,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/johnnyshields"},{"login":"pitbulk","count":27,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/pitbulk"}],"active_maintainers":[{"login":"johnnyshields","count":44,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/johnnyshields"},{"login":"pitbulk","count":11,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/pitbulk"}]},"versions_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages/github.com%2FSAML-Toolkits%2Fruby-saml/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages/github.com%2FSAML-Toolkits%2Fruby-saml/version_numbers","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages/github.com%2FSAML-Toolkits%2Fruby-saml/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages/github.com%2FSAML-Toolkits%2Fruby-saml/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages/github.com%2FSAML-Toolkits%2Fruby-saml/codemeta","maintainers":[],"registry":{"name":"proxy.golang.org","url":"https://proxy.golang.org","ecosystem":"go","default":true,"packages_count":2118892,"maintainers_count":0,"namespaces_count":782439,"keywords_count":112823,"github":"golang","metadata":{"funded_packages_count":53495},"icon_url":"https://github.com/golang.png","created_at":"2022-04-04T15:19:22.939Z","updated_at":"2026-04-19T05:14:45.920Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages","maintainers_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/maintainers","namespaces_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/namespaces"}}],"commits":{"id":273846,"full_name":"SAML-Toolkits/ruby-saml","default_branch":"master","total_commits":878,"total_committers":178,"total_bot_commits":0,"total_bot_committers":0,"mean_commits":4.932584269662922,"dds":0.6685649202733486,"past_year_total_commits":13,"past_year_total_committers":2,"past_year_total_bot_commits":0,"past_year_total_bot_committers":0,"past_year_mean_commits":6.5,"past_year_dds":0.07692307692307687,"last_synced_at":"2026-04-28T20:41:26.171Z","last_synced_commit":"3947ed7bd110a4b941ba1018bda9a1b61acc205e","created_at":"2023-03-08T14:09:14.664Z","updated_at":"2026-04-28T20:30:48.375Z","committers":[{"name":"Sixto Martin","email":"pitbulk@gmail.com","login":"pitbulk","count":291},{"name":"Morten Primdahl","email":"morten@zendesk.com","login":"morten","count":48},{"name":"shields","email":"shields@tablecheck.com","login":"johnnyshields","count":31},{"name":"Christian Pedersen","email":"christian@christian-2.local","login":null,"count":29},{"name":"Ben Radler","email":"benradler@me.com","login":"Lordnibbler","count":23},{"name":"Ylan Segal","email":"ylan@segal-family.com","login":"ylansegal","count":15},{"name":"Ole Christian Rynning","email":"oc@rynning.no","login":"oc","count":15},{"name":"Clyde Law","email":"clyde@futureadvisor.com","login":"Umofomia","count":14},{"name":"Marcelo de Moraes Serpa","email":"fullofcaffeine@gmail.com","login":null,"count":11},{"name":"Christian Pedersen","email":"christian@christian.lan","login":null,"count":11},{"name":"Phil Cohen","email":"github@phlippers.net","login":"phlipper","count":10},{"name":"Dan McFadden","email":"d3mcfadden@gmail.com","login":"d3mcfadden","count":10},{"name":"Cal Heldenbrand","email":"cal@fbsdata.com","login":"calh","count":10},{"name":"Stephen Touset","email":"stephen@touset.org","login":"stouset","count":9},{"name":"David Librera","email":"davidlibrera@gmail.com","login":"davidlibrera","count":9},{"name":"shubhendra","email":"withshubh@gmail.com","login":"withshubh","count":8},{"name":"boni","email":"boni@twine.hu","login":"bonyiii","count":8},{"name":"Rafaël Gonzalez","email":"rafaelgonzalez","login":"rafaelgonzalez","count":8},{"name":"Geoffrey Hichborn","email":"geoff@socialcast.com","login":"phene","count":8},{"name":"Lawrence Pit","email":"lawrence.pit@gmail.com","login":"lawrencepit","count":7},{"name":"Jeff Parsons","email":"jeff.parsons@stileeducation.com","login":"jeffparsons","count":7},{"name":"Merlyn Albery-Speyer","email":"merlyn@newrelic.com","login":null,"count":6},{"name":"Joe Rozner","email":"joe.rozner@onelogin.com","login":null,"count":6},{"name":"Vincent Woo","email":"me@vincentwoo.com","login":"vincentwoo","count":6},{"name":"Steve H","email":"steve.hanson@welltok.com","login":"sthanson","count":6},{"name":"Olle Jonsson","email":"olle.jonsson@gmail.com","login":"olleolleolle","count":6},{"name":"Laas Toom","email":"laas.toom@gmail.com","login":"borgand","count":6},{"name":"Buffy Miller","email":"buffy@sethmiller.com","login":"buffym","count":6},{"name":"Christian Pedersen","email":"christian@onelogin.com","login":null,"count":6},{"name":"gene","email":"gene@valimail.com","login":null,"count":5},{"name":"Jacob Klapwijk","email":"jacob.klapwijk@mentimeter.com","login":"JCB-K","count":5},{"name":"Frederik Erbs Spang Thomsen","email":"fst@progras.dk","login":"frederikspang","count":5},{"name":"Billy Yarosh","email":"yaroshw1@gmail.com","login":"billyyarosh","count":5},{"name":"Alter Lagos","email":"alagos","login":"alagos","count":5},{"name":"Simon Coffey","email":"simon.coffey@futurelearn.com","login":null,"count":4},{"name":"tknzk","email":"info@tknzk.dev","login":"tknzk","count":4},{"name":"Jarrad M","email":"jarrads@live.com","login":"JDrizzy","count":4},{"name":"Matt Campbell","email":"matt@soupmatt.com","login":"soupmatt","count":4},{"name":"tkalliom","email":"timoka10@gmail.com","login":"tkalliom","count":4},{"name":"Sindre Wetjen","email":"sindre.wetjen@gyldendal.no","login":"subfusc","count":3},{"name":"Stephen Crosby","email":"stevecrozz@gmail.com","login":"stevecrozz","count":3},{"name":"Sébastien","email":"sebastien.luquet@dimelo.com","login":"sebastienluquet","count":3},{"name":"Vale","email":"valerauko@gmail.com","login":"valerauko","count":3},{"name":"adi","email":"nistor.adrian@agilefreaks.com","login":"levelboy","count":3},{"name":"drywheattoast","email":"sonny.ruben@gmail.com","login":"sonnysideup-bot","count":3},{"name":"George Khaburzaniya","email":"george.khaburzaniya@quest.com","login":"gkhaburzaniya-onelogin","count":3},{"name":"Irving Reid","email":"irving@pagerduty.com","login":"irvingreid","count":3},{"name":"Jonathan Johnson","email":"me@jondavidjohn.com","login":"jondavidjohn","count":3},{"name":"Kevin Pratt","email":"kevin@ouelong.com","login":"netikular","count":3},{"name":"Dan Woolley","email":"dan@wr-studios.com","login":null,"count":3},{"name":"Ryan Stenhouse","email":"ryan@freeagentcentral.com","login":null,"count":3},{"name":"Tony Spataro","email":"tony@rightscale.com","login":null,"count":3},{"name":"Dmitry Stolyarov","email":"dmitry.stolyarov@flant.ru","login":null,"count":3},{"name":"Josh Wetzel","email":"josh.wetzel@icloud.com","login":null,"count":3},{"name":"Kevin McCormack","email":"kem2028@med.cornell.edu","login":null,"count":3},{"name":"Rob Nichols","email":"robnichols@warwickshire.gov.uk","login":null,"count":3},{"name":"Alex Wood","email":"alex.wood.86@gmail.com","login":"alex-wood","count":2},{"name":"Aslak Johannessen","email":"aslakjo@gmail.com","login":"aslakjo","count":2},{"name":"Bridget Almas","email":"balmas@gmail.com","login":"balmas","count":2},{"name":"Christopher Thornton","email":"rmdirbin@gmail.com","login":"cthornton","count":2},{"name":"Dan Jensen","email":"djensen@gitlab.com","login":"gitlab-djensen","count":2},{"name":"David Celis","email":"me@davidcel.is","login":"davidcelis","count":2},{"name":"Gabriel Halley","email":"gabhalley@gmail.com","login":"ghalley","count":2},{"name":"K. Okabe","email":"48155865+ksrnnb","login":"ksrnnb","count":2},{"name":"Peter Goldstein","email":"peter.m.goldstein@gmail.com","login":"petergoldstein","count":2},{"name":"Sam Giffney","email":"samuelgiffney@gmail.com","login":"s01ipsist","count":2},{"name":"Shyam Habarakada","email":"shyam.habarakada@gmail.com","login":"shyam-habarakada","count":2},{"name":"Skylar Graika","email":"skylar.graika@smartsheet.com","login":"swordfish444","count":2},{"name":"Adam21e","email":"Adam21e","login":"Adam21e","count":2},{"name":"Alexandre Chakroun","email":"a.chakroun@talentoday.com","login":null,"count":2},{"name":"Brian Miller","email":"brian.miller@reachlocal.com","login":null,"count":2},{"name":"Christopher Thornton","email":"christopher.thornton@onelogin.com","login":null,"count":2},{"name":"Kyle Heironimus","email":"kheironimus@intellum.com","login":null,"count":2},{"name":"zoodor","email":"zoodor@hotmail","login":null,"count":2},{"name":"Torsten Schoenebaum","email":"torsten.schoenebaum@sage.com","login":null,"count":2},{"name":"Sixto Garcia","email":"sixtogarcia@OL3356s-MacBook-Pro.local","login":null,"count":2},{"name":"Robby Clements","email":"rclements@isotope11.com","login":null,"count":2},{"name":"Rob Fletcher","email":"rob.fletcher@onelogin.com","login":null,"count":2},{"name":"Peter Karman","email":"peter.karman@gsa.gov","login":null,"count":2},{"name":"Luis Velasco","email":"=","login":null,"count":2},{"name":"Kyle Rose","email":"krose@thelevelup.com","login":null,"count":2},{"name":"Tomi Laine","email":"tomi.laine@relex.fi","login":"tomilaine","count":2},{"name":"Xavier Lange","email":"xrlange@gmail.com","login":"xrl","count":2},{"name":"furuhama","email":"furuhama","login":"furuhama","count":2},{"name":"masukomi","email":"masukomi@masukomi.org","login":"masukomi","count":2},{"name":"Jonas Berg","email":"jonas.berg@relex.fi","login":"MrBerg","count":2},{"name":"Nicolas Maloeuvre","email":"nicolas.maloeuvre@steeple.fr","login":null,"count":1},{"name":"zoodor","email":"mtaylor@thoughtworks","login":null,"count":1},{"name":"Josh Adams","email":"josh@isotope11.com","login":null,"count":1},{"name":"Greg DeVore","email":"greg@bluemangolearning.com","login":null,"count":1},{"name":"David Jaress","email":"davidjaress@DavidJ2016-MAC.local","login":null,"count":1},{"name":"Daniel Schlosser","email":"eusebius90@gmail.com","login":null,"count":1},{"name":"Ari Pollak","email":"ari@scvngr.com","login":null,"count":1},{"name":"Alper Kokmen","email":"alper@pagerduty.com","login":null,"count":1},{"name":"Nick DeLuca","email":"nickdeluca08@gmail.com","login":"nddeluca","count":1},{"name":"Nick Holden","email":"nick.r.holden@gmail.com","login":"nholden","count":1},{"name":"Patricio Mac Adden","email":"patriciomacadden@gmail.com","login":"patriciomacadden","count":1},{"name":"Patrik Ragnarsson","email":"patrik@starkast.net","login":"dentarg","count":1},{"name":"Nikos Dimitrakopoulos","email":"n.dimitrakopoulos@pamediakopes.gr","login":null,"count":1},{"name":"Pat Collins","email":"pat@luma-institute.com","login":null,"count":1},{"name":"Daniel Farrell","email":"dfarrell@wmci.com","login":null,"count":1},{"name":"Stian Fredrikstad","email":"stian.fredrikstad@bekk.no","login":null,"count":1},{"name":"Trevor Little","email":"trevor@benefacting.org","login":null,"count":1},{"name":"William Bajzek","email":"william.bajzek@vitals.com","login":null,"count":1},{"name":"jonbell","email":"jonbell@spamcop.net","login":null,"count":1},{"name":"peterwake","email":"peter.wake@cowcross.co.uk","login":null,"count":1},{"name":"Sean Hill","email":"sean@reax.io","login":null,"count":1},{"name":"Nathan Keyes","email":"nkeyes@gmail.com","login":"nkeyes","count":1},{"name":"yasudatoshiyuki","email":"32163656+yasudatoshiyuki","login":"yasudatoshiyuki","count":1},{"name":"vignesh-vs-in","email":"vignesh.vs.in@gmail.com","login":"vignesh-vs-in","count":1},{"name":"tily","email":"tidnlyam@gmail.com","login":"tily","count":1},{"name":"karupanerura","email":"karupa@cpan.org","login":"karupanerura","count":1},{"name":"joshwetzel","email":"6605460+joshwetzel","login":"joshwetzel","count":1},{"name":"jackvnimble","email":"jack.wilson.v@gmail.com","login":"id4ho","count":1},{"name":"eminem","email":"49850014+e-ikuta","login":"e-ikuta","count":1},{"name":"ahacker1","email":"ahacker1@securesaml.com","login":"ahacker1-securesaml","count":1},{"name":"Yuu Kikuchi","email":"y.kikuchi@dsky-mail.com","login":"yviscuit","count":1},{"name":"Yoshiyuki Hirano","email":"yhirano@me.com","login":"yhirano55","count":1},{"name":"Tony Chung","email":"tony.chung@id.me","login":"tonycidme","count":1},{"name":"Tim Goddard","email":"tim.goddard@aurainfosec.com","login":"tgoddard","count":1},{"name":"Takashi Nakagawa","email":"tak1240@gmail.com","login":"takashi","count":1},{"name":"Steven Wilkin","email":"stevenwilkin@gmail.com","login":"stevenwilkin","count":1},{"name":"Stavros Soleas","email":"stavros@workable.com","login":"stavros-wb","count":1},{"name":"Sergey Alekseev","email":"2371639+sergey-alekseev","login":"sergey-alekseev","count":1},{"name":"Serafim Nenarokov","email":"serafim.nenarokov@flant.ru","login":"Seraff","count":1},{"name":"Samson","email":"samsnguy@cisco.com","login":"samsnguy","count":1},{"name":"Robert Blakey","email":"robert.emery1@gmail.com","login":"andimrob","count":1},{"name":"Piper Niehaus","email":"piper.niehaus@gmail.com","login":"piperniehaus","count":1},{"name":"Petri Avikainen","email":"petri.avikainen@gmail.com","login":"silppuri","count":1},{"name":"Perry","email":"perryism@gmail.com","login":"perryism","count":1},{"name":"Pedro Nascimento","email":"pnascimento@gmail.com","login":"lunks","count":1},{"name":"Miles Starkenburg","email":"gringocl","login":"gringocl","count":1},{"name":"Akira Matsuda","email":"ronnie@dio.jp","login":"amatsuda","count":1},{"name":"Dan Buettner","email":"dan@danbuettner.net","login":"Capncavedan","count":1},{"name":"Christian Kakesa","email":"christian.kakesa@gmail.com","login":"christiankakesa","count":1},{"name":"Chris Duane","email":"mostlychris@gmail.com","login":"capybaras","count":1},{"name":"Caleb Hearth","email":"caleb.hearth@files.com","login":"calebhearth","count":1},{"name":"Caio","email":"caioergos@gmail.com","login":"caioeps","count":1},{"name":"Bryan Vestey","email":"bryan@vestey.dev","login":"bzvestey","count":1},{"name":"Bruno Jacquet","email":"bjacquet","login":"bjacquet","count":1},{"name":"Brendon Muir","email":"brendon@spike.net.nz","login":"brendon","count":1},{"name":"Bobby Lawrence","email":"dub357@gmail.com","login":"dub357","count":1},{"name":"Bill Ryan","email":"bill.ryan@adhocteam.us","login":"omgitsbillryan","count":1},{"name":"Ben Willis","email":"ben@hackerone.com","login":"bwillis","count":1},{"name":"Baptiste Lombard","email":"17877656+blombard","login":"blombard","count":1},{"name":"Ash Tyndall","email":"git@atyndall.net","login":"atyndall","count":1},{"name":"Anthony Batchelor","email":"anthony.batchelor@examtime.com","login":"anthonybatchelor-examtime","count":1},{"name":"Andrew Rosa","email":"andrewhr@me.com","login":"andrewhr","count":1},{"name":"Andrew","email":"andrew@xtrasimplicity.com","login":"xtrasimplicity","count":1},{"name":"Alexandre Chakroun","email":"alexandre.chakroun@gmail.com","login":"alxckn","count":1},{"name":"Alex Spencer","email":"alex@rewardops.com","login":"benevolentmadman","count":1},{"name":"Alex Robbin","email":"agrobbin@gmail.com","login":"agrobbin","count":1},{"name":"Alex Gaynor","email":"alex.gaynor@gmail.com","login":"alex","count":1},{"name":"Luis Velasco","email":"luis@onelogin.com","login":"luisvm","count":1},{"name":"Adam Hess","email":"HParker@github.com","login":"HParker","count":1},{"name":"Merlyn","email":"curious.attempt.bunny@gmail.com","login":"curious-attempt-bunny","count":1},{"name":"Mauro Berlanda","email":"mauro.berlanda@gmail.com","login":"mberlanda","count":1},{"name":"Matthew Bender","email":"matthew-bender@cirrusmd.com","login":"codebender","count":1},{"name":"Marvin Killing","email":"marvinkilling@gmail.com","login":"mkilling","count":1},{"name":"Maris Zinbergs","email":"maris.zinbergs@gmail.com","login":"mariszin","count":1},{"name":"Marek Sebera","email":"marek.sebera@gmail.com","login":"smarek","count":1},{"name":"Maksim Sundukov","email":"e-xormail@tut.by","login":"E-Xor","count":1},{"name":"Josh","email":"joshuajmark@gmail.com","login":"archonic","count":1},{"name":"John Knight","email":"bug@knightlabs.com","login":"knightlabs","count":1},{"name":"Jerimiah Milton","email":"jerimiah.milton@gmail.com","login":"jerimiahmilton","count":1},{"name":"Jeremy Templier","email":"templier.jeremy@gmail.com","login":"jayztemplier","count":1},{"name":"Jean Boussier","email":"jean.boussier@dimelo.com","login":"byroot","count":1},{"name":"Jamie Davidson","email":"jhdavids8@gmail.com","login":"jhdavids8","count":1},{"name":"Jaco Pretorius","email":"jdjpretorius@gmail.com","login":"Jaco-Pretorius","count":1},{"name":"Harrison Conlin","email":"me@harrisony.com","login":"harrisony","count":1},{"name":"Hans de Graaff","email":"hans@degraaff.org","login":"graaff","count":1},{"name":"Gonzalo","email":"gonzalo@wyeworks.com","login":"grzuy","count":1},{"name":"FABIANSKI Cédric","email":"cfabianski@me.com","login":"cfabianski","count":1},{"name":"Espartaco Palma","email":"esparta@gmail.com","login":"esparta","count":1},{"name":"Eduardo Bautista","email":"me@eduardobautista.com","login":"EduardoBautista","count":1},{"name":"Drew Blessing","email":"drew@blessing.io","login":"dblessing","count":1},{"name":"David Oram","email":"david.oram99@gmail.com","login":"davidoram","count":1},{"name":"Danny Bosan","email":"dpbosan@gmail.com","login":"dannyb","count":1}],"past_year_committers":[{"name":"Sixto Martin","email":"sixto.martin.garcia@workato.com","login":"pitbulk","count":12},{"name":"joshwetzel","email":"6605460+joshwetzel","login":"joshwetzel","count":1}],"commits_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/commits","host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2026-04-29T00:00:10.453Z","repositories_count":6222906,"commits_count":900372101,"contributors_count":34905477,"owners_count":1147483,"icon_url":"https://github.com/github.png","host_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub/repositories"}},"issues_stats":{"full_name":"SAML-Toolkits/ruby-saml","html_url":"https://github.com/SAML-Toolkits/ruby-saml","last_synced_at":"2026-04-28T19:08:10.025Z","status":"active","issues_count":78,"pull_requests_count":209,"avg_time_to_close_issue":44199800.79032258,"avg_time_to_close_pull_request":7191089.529411765,"issues_closed_count":62,"pull_requests_closed_count":170,"pull_request_authors_count":49,"issue_authors_count":51,"avg_comments_per_issue":3.371794871794872,"avg_comments_per_pull_request":1.8803827751196172,"merged_pull_requests_count":125,"bot_issues_count":0,"bot_pull_requests_count":1,"past_year_issues_count":7,"past_year_pull_requests_count":18,"past_year_avg_time_to_close_issue":421418.0,"past_year_avg_time_to_close_pull_request":6039.333333333333,"past_year_issues_closed_count":4,"past_year_pull_requests_closed_count":3,"past_year_pull_request_authors_count":7,"past_year_issue_authors_count":6,"past_year_avg_comments_per_issue":3.5714285714285716,"past_year_avg_comments_per_pull_request":0.5555555555555556,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":0,"past_year_merged_pull_requests_count":3,"created_at":"2023-05-12T16:43:12.160Z","updated_at":"2026-04-28T19:08:10.025Z","repository_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml","issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAML-Toolkits%2Fruby-saml/issues","issue_labels_count":{"informative":6,"resolved":6,"question":5,"enhancement":4,"pending":3,"PR-welcome":2,"wont-fix":2,"security":1},"pull_request_labels_count":{"pending-merge":2,"wont-fix":2,"pending":2},"issue_author_associations_count":{"NONE":46,"COLLABORATOR":25,"CONTRIBUTOR":7},"pull_request_author_associations_count":{"COLLABORATOR":136,"NONE":41,"CONTRIBUTOR":32},"issue_authors":{"johnnyshields":22,"pitbulk":3,"bdewater-thatch":2,"jhubert":2,"dblessing":2,"googya":2,"bmesuere":1,"bramleyjl":1,"alperkokmen":1,"cjamison":1,"caioeps":1,"DaAwesomeP":1,"bojan-drljaca-lu":1,"msxavi":1,"raphaelcm":1,"arashb31":1,"andrxu":1,"atyndall":1,"be-ragheb":1,"mfoo":1,"ksrnnb":1,"cyc115":1,"k-peek":1,"jessieay":1,"ptrgits":1,"bheeshmar":1,"manuel-tud":1,"jzzsml":1,"waissbluth":1,"acontero":1,"tobiasamft":1,"alagos":1,"casperisfine":1,"davidlibrera":1,"joshIsCoding":1,"sronsiek":1,"Murarius":1,"baelter":1,"drlube":1,"NathanZookCH":1,"netapp-mraymond":1,"lcmen":1,"tymalt":1,"davideluque":1,"jose-sherpa":1,"fastjames":1,"bradw2k":1,"ilikepi":1,"pavolzbell":1,"bzvestey":1,"pre":1},"pull_request_authors":{"johnnyshields":109,"pitbulk":27,"HParker":4,"Osama2035":4,"blombard":3,"bramleyjl":3,"Capncavedan":2,"frederikspang":2,"gitlab-djensen":2,"vcsjones":2,"alagos":2,"eriklovmo":2,"joshwetzel":2,"casperisfine":2,"tobiasamft":2,"dentarg":2,"e-ikuta":2,"tjschuck":2,"andimrob":2,"calebhearth":2,"fkmy":2,"zeos90":2,"gogainda":1,"urbanautomaton":1,"caioeps":1,"sergey-alekseev":1,"lorint":1,"bzvestey":1,"agrobbin":1,"smarek":1,"yasudatoshiyuki":1,"codebender":1,"gkhaburzaniya-onelogin":1,"pbanos":1,"petergoldstein":1,"jzzsml":1,"nholden":1,"hakeem0114":1,"withshubh":1,"gowda":1,"gpinkham":1,"alxckn":1,"yviscuit":1,"InfAmelia":1,"ricopper":1,"mend-for-github-com[bot]":1,"ksrnnb":1,"neanias":1,"yhirano55":1},"host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2026-04-29T00:00:10.439Z","repositories_count":14444938,"issues_count":34204899,"pull_requests_count":112304476,"authors_count":11248599,"icon_url":"https://github.com/github.png","host_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories","owners_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/owners","authors_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors"},"past_year_issue_labels_count":{"security":1},"past_year_pull_request_labels_count":{},"past_year_issue_author_associations_count":{"NONE":5,"COLLABORATOR":2},"past_year_pull_request_author_associations_count":{"COLLABORATOR":8,"NONE":8,"CONTRIBUTOR":2},"past_year_issue_authors":{"bdewater-thatch":2,"johnnyshields":1,"jose-sherpa":1,"pitbulk":1,"ptrgits":1,"tymalt":1},"past_year_pull_request_authors":{"pitbulk":6,"Osama2035":4,"fkmy":2,"johnnyshields":2,"joshwetzel":2,"blombard":1,"hakeem0114":1},"maintainers":[{"login":"johnnyshields","count":131,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/johnnyshields"},{"login":"pitbulk","count":30,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/pitbulk"}],"active_maintainers":[{"login":"pitbulk","count":7,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/pitbulk"},{"login":"johnnyshields","count":3,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/johnnyshields"}]},"events":{"total":{"CreateEvent":8,"CommitCommentEvent":3,"ReleaseEvent":4,"DeleteEvent":2,"MemberEvent":1,"PullRequestEvent":70,"ForkEvent":28,"IssuesEvent":17,"WatchEvent":57,"IssueCommentEvent":91,"PushEvent":49,"PullRequestReviewEvent":15,"PullRequestReviewCommentEvent":14},"last_year":{"CreateEvent":3,"CommitCommentEvent":3,"ReleaseEvent":1,"PullRequestEvent":11,"ForkEvent":9,"IssuesEvent":4,"WatchEvent":18,"IssueCommentEvent":18,"PushEvent":18,"PullRequestReviewEvent":1,"PullRequestReviewCommentEvent":1}},"keywords":[],"dependencies":[{"ecosystem":"rubygems","filepath":"ruby-saml.gemspec","sha":null,"kind":"manifest","created_at":"2022-07-05T20:40:00.959Z","updated_at":"2022-07-05T20:40:00.959Z","repository_link":"https://github.com/SAML-Toolkits/ruby-saml/blob/master/ruby-saml.gemspec","dependencies":[{"id":106823774,"package_name":"nokogiri","ecosystem":"rubygems","requirements":"\u003e= 1.8.2, \u003c= 1.8.5","direct":true,"kind":"runtime","optional":false},{"id":106823775,"package_name":"jruby-openssl","ecosystem":"rubygems","requirements":"\u003e= 0.9.8","direct":true,"kind":"runtime","optional":false},{"id":106823776,"package_name":"json","ecosystem":"rubygems","requirements":"\u003c 2.3.0","direct":true,"kind":"runtime","optional":false},{"id":106823777,"package_name":"nokogiri","ecosystem":"rubygems","requirements":"\u003e= 1.8.2","direct":true,"kind":"runtime","optional":false},{"id":106823778,"package_name":"uuid","ecosystem":"rubygems","requirements":"\u003e= 0","direct":true,"kind":"runtime","optional":false},{"id":106823779,"package_name":"nokogiri","ecosystem":"rubygems","requirements":"\u003c= 1.5.11","direct":true,"kind":"runtime","optional":false},{"id":106823780,"package_name":"nokogiri","ecosystem":"rubygems","requirements":"\u003e= 1.5.10, \u003c= 1.6.8.1","direct":true,"kind":"runtime","optional":false},{"id":106823781,"package_name":"nokogiri","ecosystem":"rubygems","requirements":"\u003e= 1.9.1, \u003c 1.10.0","direct":true,"kind":"runtime","optional":false},{"id":106823782,"package_name":"nokogiri","ecosystem":"rubygems","requirements":"\u003e= 1.10.5","direct":true,"kind":"runtime","optional":false},{"id":106823783,"package_name":"rexml","ecosystem":"rubygems","requirements":"\u003e= 0","direct":true,"kind":"runtime","optional":false},{"id":106823784,"package_name":"coveralls","ecosystem":"rubygems","requirements":"\u003e= 0","direct":true,"kind":"development","optional":false},{"id":106823785,"package_name":"minitest","ecosystem":"rubygems","requirements":"~\u003e 5.5","direct":true,"kind":"development","optional":false},{"id":106823786,"package_name":"mocha","ecosystem":"rubygems","requirements":"~\u003e 0.14","direct":true,"kind":"development","optional":false},{"id":106823787,"package_name":"rake","ecosystem":"rubygems","requirements":"~\u003e 10","direct":true,"kind":"development","optional":false},{"id":106823788,"package_name":"shoulda","ecosystem":"rubygems","requirements":"~\u003e 2.11","direct":true,"kind":"development","optional":false},{"id":106823789,"package_name":"simplecov","ecosystem":"rubygems","requirements":"\u003e= 0","direct":true,"kind":"development","optional":false},{"id":106823790,"package_name":"systemu","ecosystem":"rubygems","requirements":"~\u003e 2","direct":true,"kind":"development","optional":false},{"id":106823791,"package_name":"timecop","ecosystem":"rubygems","requirements":"\u003c= 0.6.0","direct":true,"kind":"development","optional":false},{"id":106823792,"package_name":"timecop","ecosystem":"rubygems","requirements":"~\u003e 0.9","direct":true,"kind":"development","optional":false},{"id":106823793,"package_name":"pry","ecosystem":"rubygems","requirements":"\u003e= 0","direct":true,"kind":"development","optional":false},{"id":106823794,"package_name":"ruby-debug","ecosystem":"rubygems","requirements":"~\u003e 0.10.4","direct":true,"kind":"development","optional":false},{"id":106823795,"package_name":"debugger-linecache","ecosystem":"rubygems","requirements":"~\u003e 1.2.0","direct":true,"kind":"development","optional":false},{"id":106823796,"package_name":"debugger","ecosystem":"rubygems","requirements":"~\u003e 1.6.4","direct":true,"kind":"development","optional":false},{"id":106823797,"package_name":"byebug","ecosystem":"rubygems","requirements":"~\u003e 2.1.1","direct":true,"kind":"development","optional":false},{"id":106823798,"package_name":"pry-byebug","ecosystem":"rubygems","requirements":"\u003e= 0","direct":true,"kind":"development","optional":false}]},{"ecosystem":"actions","filepath":".github/workflows/test.yml","sha":null,"kind":"manifest","created_at":"2023-01-13T10:45:38.108Z","updated_at":"2023-01-13T10:45:38.108Z","repository_link":"https://github.com/SAML-Toolkits/ruby-saml/blob/master/.github/workflows/test.yml","dependencies":[{"id":6875558962,"package_name":"actions/checkout","ecosystem":"actions","requirements":"v2","direct":true,"kind":"composite","optional":false},{"id":6875558963,"package_name":"ruby/setup-ruby","ecosystem":"actions","requirements":"v1","direct":true,"kind":"composite","optional":false},{"id":6875558964,"package_name":"coverallsapp/github-action","ecosystem":"actions","requirements":"master","direct":true,"kind":"composite","optional":false}]},{"ecosystem":"rubygems","filepath":"Gemfile","sha":null,"kind":"manifest","created_at":"2023-09-11T17:11:15.731Z","updated_at":"2023-09-11T17:11:15.731Z","repository_link":"https://github.com/SAML-Toolkits/ruby-saml/blob/master/Gemfile","dependencies":[]}],"score":33.161911779127195,"created_at":"2024-12-15T21:38:07.735Z","updated_at":"2026-04-30T19:30:27.456Z","avatar_url":"https://github.com/SAML-Toolkits.png","language":"Ruby","monthly_downloads":0,"readme":"# Ruby SAML\n[![ruby-saml CI](https://github.com/SAML-Toolkits/ruby-saml/actions/workflows/test.yml/badge.svg)](https://github.com/SAML-Toolkits/ruby-saml/actions/workflows/test.yml)\n[![Coverage Status](https://coveralls.io/repos/github/SAML-Toolkits/ruby-saml/badge.svg?branch=master)](https://coveralls.io/github/SAML-Toolkits/ruby-saml?branch=master)\n[![Rubygem Version](https://badge.fury.io/rb/ruby-saml.svg)](https://badge.fury.io/rb/ruby-saml)\n[![GitHub version](https://badge.fury.io/gh/SAML-Toolkits%2Fruby-saml.svg)](https://badge.fury.io/gh/SAML-Toolkits%2Fruby-saml) ![GitHub](https://img.shields.io/github/license/SAML-Toolkits/ruby-saml) ![Gem](https://img.shields.io/gem/dtv/ruby-saml?label=gem%20downloads%20latest) ![Gem](https://img.shields.io/gem/dt/ruby-saml?label=gem%20total%20downloads)\n\nMinor and patch versions of Ruby SAML may introduce breaking changes. Please read\n[UPGRADING.md](UPGRADING.md) for guidance on upgrading to new Ruby SAML versions.\n\n\n## Vulnerability Notice\n\n[CVE-2025-66568](https://github.com/SAML-Toolkits/ruby-saml/security/advisories/GHSA-x4h9-gwv3-r4m4) and [CVE-2025-66567](https://github.com/SAML-Toolkits/ruby-saml/security/advisories/GHSA-9v8j-x534-2fx3). affects version ruby-saml \u003c 1.18.0 (including 1.12.4), upgrade to 1.18.1\n\nCVE-2025-54572 affects version ruby-saml \u003c 1.18.1\n\nThere are critical vulnerabilities affecting ruby-saml \u003c 1.18.0, two of them allows SAML authentication bypass (CVE-2025-25291, CVE-2025-25292, CVE-2025-25293). Please upgrade to a fixed version (1.18.0)\n\n### Vulnerability Reporting\n\nIf you believe you have discovered a security vulnerability in this gem, please report\nit by email to the maintainer: sixto.martin.garcia+security@gmail.com\n\n\n## Sponsors\n\nThanks to the following sponsors for securing the open source ecosystem:\n\n#### [\u003cimg class=\"circle\" src=\"https://avatars.githubusercontent.com/u/34724717\" width=\"26\" height=\"26\" alt=\"@serpapi\"\u003e](https://serpapi.com) [\u003csup\u003eSerpApi\u003c/sup\u003e](https://github.com/serpapi)\n\u003csup\u003e*A real-time API to access Google search results. It handle proxies, solve captchas, and parse all rich structured data for you*\u003c/sup\u003e\n\n#### [\u003cimg class=\"circle\" src=\"https://avatars.githubusercontent.com/u/9919\" width=\"26\" height=\"26\" alt=\"@github\"\u003e](https://github.com/) [\u003csup\u003eGithub\u003c/sup\u003e](https://github.com/github)\n\u003csup\u003e*The complete developer platform to build, scale, and deliver secure software.*\u003c/sup\u003e\n\n#### [\u003cimg alt=\"84codes\" src=\"https://avatars.githubusercontent.com/u/5353257\" width=\"26\" height=\"26\"\u003e](https://www.84codes.com) [\u003csup\u003e84codes\u003c/sup\u003e](https://github.com/84codes)\n\u003csup\u003e*Simplifying Message Queuing and Streaming. Leave server management to the experts, so you can focus on building great applications.*\u003c/sup\u003e\n\n## Overview\n\nThe Ruby SAML library is for implementing the client side of a SAML authorization,\ni.e. it provides a means for managing authorization initialization and confirmation\nrequests from identity providers.\n\nSAML authorization is a two-step process and you are expected to implement support for both.\n\nWe created a demo project for Rails 4 that uses the latest version of this library:\n[ruby-saml-example](https://github.com/saml-toolkits/ruby-saml-example)\n\n\n### Security Considerations\n\n- **Validation of the IdP Metadata URL:** When loading IdP Metadata from a URLs,\n  Ruby SAML requires you (the developer/administrator) to ensure the supplied URL is correct\n  and from a trusted source. Ruby SAML does not perform any validation that the URL\n  you entered is correct and/or safe.\n- **False-Positive Security Warnings:** Some tools may incorrectly report Ruby SAML as a\n  potential security vulnerability, due to its dependency on Nokogiri. Such warnings can\n  be ignored; Ruby SAML uses Nokogiri in a safe way, by always disabling its DTDLOAD option\n  and enabling its NONET option.\n- **Prevent Replay attacks:** A replay attack occurs when an attacker intercepts\n  a valid SAML assertion and reuses it to gain unauthorized access. The\n  `ruby-saml` library provides tools to help mitigate this risk, but **it is\n  your responsibility to implement the necessary logic.** See\n  [Preventing Replay Attacks](#preventing-replay-attacks) for additional\n  guidance.\n\n\n### Supported Ruby Versions\n\nThe following Ruby versions are covered by CI testing:\n\n* Ruby (MRI) 2.1 to 3.4\n* JRuby 9.1 to 9.4\n* TruffleRuby (latest)\n\n\n## Getting Started\n\nIn order to use Ruby SAML you will need to install the gem (either manually or using Bundler),\nand require the library in your Ruby application:\n\nUsing `Gemfile`\n\n```ruby\n# latest stable\ngem 'ruby-saml', '~\u003e 1.18.0'\n\n# or track master for bleeding-edge\ngem 'ruby-saml', :github =\u003e 'saml-toolkit/ruby-saml'\n```\n\nUsing RubyGems\n\n```sh\ngem install ruby-saml\n```\n\nYou may require the entire Ruby SAML gem:\n\n```ruby\nrequire 'onelogin/ruby-saml'\n```\n\nor just the required components individually:\n\n```ruby\nrequire 'onelogin/ruby-saml/authrequest'\n```\n\n### Installation on Ruby 1.8.7\n\nThis gem uses Nokogiri as a dependency, which dropped support for Ruby 1.8.x in Nokogiri 1.6.\nWhen installing this gem on Ruby 1.8.7, you will need to make sure a version of Nokogiri\nprior to 1.6 is installed or specified if it hasn't been already.\n\nUsing `Gemfile`\n\n```ruby\ngem 'nokogiri', '~\u003e 1.5.10'\n```\n\nUsing RubyGems\n\n```sh\ngem install nokogiri --version '~\u003e 1.5.10'\n````\n\n### Configuring Logging\n\nWhen troubleshooting SAML integration issues, you will find it extremely helpful to examine the\noutput of this gem's business logic. By default, log messages are emitted to `RAILS_DEFAULT_LOGGER`\nwhen the gem is used in a Rails context, and to `STDOUT` when the gem is used outside of Rails.\n\nTo override the default behavior and control the destination of log messages, provide\na ruby Logger object to the gem's logging singleton:\n\n```ruby\nOneLogin::RubySaml::Logging.logger = Logger.new('/var/log/ruby-saml.log')\n```\n\n## The Initialization Phase\n\nThis is the first request you will get from the identity provider. It will hit your application\nat a specific URL that you've announced as your SAML initialization point. The response to\nthis initialization is a redirect back to the identity provider, which can look something\nlike this (ignore the saml_settings method call for now):\n\n```ruby\ndef init\n  request = OneLogin::RubySaml::Authrequest.new\n  redirect_to(request.create(saml_settings))\nend\n```\n\nIf the SP knows who should be authenticated in the IdP, it can provide that info as follows:\n\n```ruby\ndef init\n  request = OneLogin::RubySaml::Authrequest.new\n  saml_settings.name_identifier_value_requested = \"testuser@example.com\"\n  saml_settings.name_identifier_format = \"urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress\"\n  redirect_to(request.create(saml_settings))\nend\n```\n\nOnce you've redirected back to the identity provider, it will ensure that the user has been\nauthorized and redirect back to your application for final consumption.\nThis can look something like this (the `authorize_success` and `authorize_failure`\nmethods are specific to your application):\n\n```ruby\ndef consume\n  response = OneLogin::RubySaml::Response.new(params[:SAMLResponse], :settings =\u003e saml_settings)\n\n  # We validate the SAML Response and check if the user already exists in the system\n  if response.is_valid?\n     # authorize_success, log the user\n     session[:userid] = response.nameid\n     session[:attributes] = response.attributes\n  else\n    authorize_failure  # This method shows an error message\n    # List of errors is available in response.errors array\n  end\nend\n```\n\nIn the above there are a few assumptions, one being that `response.nameid` is an email address.\nThis is all handled with how you specify the settings that are in play via the `saml_settings` method.\nThat could be implemented along the lines of this:\n\n```\nresponse = OneLogin::RubySaml::Response.new(params[:SAMLResponse])\nresponse.settings = saml_settings\n```\n\nIf the assertion of the SAMLResponse is not encrypted, you can initialize the Response\nwithout the `:settings` parameter and set it later. If the SAMLResponse contains an encrypted\nassertion, you need to provide the settings in the initialize method in order to obtain the\ndecrypted assertion, using the service provider private key in order to decrypt.\nIf you don't know what expect, always use the former (set the settings on initialize).\n\n```ruby\ndef saml_settings\n  settings = OneLogin::RubySaml::Settings.new\n\n  settings.assertion_consumer_service_url = \"http://#{request.host}/saml/consume\"\n  settings.sp_entity_id                   = \"http://#{request.host}/saml/metadata\"\n  settings.idp_entity_id                  = \"https://app.onelogin.com/saml/metadata/#{OneLoginAppId}\"\n  settings.idp_sso_service_url            = \"https://app.onelogin.com/trust/saml2/http-post/sso/#{OneLoginAppId}\"\n  settings.idp_sso_service_binding        = \"urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST\" # or :post, :redirect\n  settings.idp_slo_service_url            = \"https://app.onelogin.com/trust/saml2/http-redirect/slo/#{OneLoginAppId}\"\n  settings.idp_slo_service_binding        = \"urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect\" # or :post, :redirect\n  settings.idp_cert_fingerprint           = OneLoginAppCertFingerPrint\n  settings.idp_cert_fingerprint_algorithm = \"http://www.w3.org/2000/09/xmldsig#sha1\"\n  settings.name_identifier_format         = \"urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress\"\n\n  # Optional for most SAML IdPs\n  settings.authn_context = \"urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport\"\n  # or as an array\n  settings.authn_context = [\n    \"urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport\",\n    \"urn:oasis:names:tc:SAML:2.0:ac:classes:Password\"\n  ]\n\n  # Optional bindings (defaults to Redirect for logout POST for ACS)\n  settings.single_logout_service_binding      = \"urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect\" # or :post, :redirect\n  settings.assertion_consumer_service_binding = \"urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST\" # or :post, :redirect\n\n  settings\nend\n```\n\nThe use of `settings.issuer` is deprecated in favor of `settings.sp_entity_id` since version 1.11.0\n\nSome assertion validations can be skipped by passing parameters to `OneLogin::RubySaml::Response.new()`.\nFor example, you can skip the `AuthnStatement`, `Conditions`, `Recipient`, or the `SubjectConfirmation`\nvalidations by initializing the response with different options:\n\n```ruby\nresponse = OneLogin::RubySaml::Response.new(params[:SAMLResponse], {skip_authnstatement: true}) # skips AuthnStatement\nresponse = OneLogin::RubySaml::Response.new(params[:SAMLResponse], {skip_conditions: true}) # skips conditions\nresponse = OneLogin::RubySaml::Response.new(params[:SAMLResponse], {skip_subject_confirmation: true}) # skips subject confirmation\nresponse = OneLogin::RubySaml::Response.new(params[:SAMLResponse], {skip_recipient_check: true}) # doesn't skip subject confirmation, but skips the recipient check which is a sub check of the subject_confirmation check\nresponse = OneLogin::RubySaml::Response.new(params[:SAMLResponse], {skip_audience: true}) # skips audience check\n```\n\nAll that's left is to wrap everything in a controller and reference it in the initialization and\nconsumption URLs in OneLogin. A full controller example could look like this:\n\n```ruby\n# This controller expects you to use the URLs /saml/init and /saml/consume in your OneLogin application.\nclass SamlController \u003c ApplicationController\n  def init\n    request = OneLogin::RubySaml::Authrequest.new\n    redirect_to(request.create(saml_settings))\n  end\n\n  def consume\n    response          = OneLogin::RubySaml::Response.new(params[:SAMLResponse])\n    response.settings = saml_settings\n\n    # We validate the SAML Response and check if the user already exists in the system\n    if response.is_valid?\n       # authorize_success, log the user\n       session[:userid] = response.nameid\n       session[:attributes] = response.attributes\n    else\n      authorize_failure  # This method shows an error message\n      # List of errors is available in response.errors array\n    end\n  end\n\n  private\n\n  def saml_settings\n    settings = OneLogin::RubySaml::Settings.new\n\n    settings.assertion_consumer_service_url = \"http://#{request.host}/saml/consume\"\n    settings.sp_entity_id                   = \"http://#{request.host}/saml/metadata\"\n    settings.idp_sso_service_url             = \"https://app.onelogin.com/saml/signon/#{OneLoginAppId}\"\n    settings.idp_cert_fingerprint           = OneLoginAppCertFingerPrint\n    settings.name_identifier_format         = \"urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress\"\n\n    # Optional for most SAML IdPs\n    settings.authn_context = \"urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport\"\n\n    # Optional. Describe according to IdP specification (if supported) which attributes the SP desires to receive in SAMLResponse.\n    settings.attributes_index = 5\n    # Optional. Describe an attribute consuming service for support of additional attributes.\n    settings.attribute_consuming_service.configure do\n      service_name \"Service\"\n      service_index 5\n      add_attribute :name =\u003e \"Name\", :name_format =\u003e \"Name Format\", :friendly_name =\u003e \"Friendly Name\"\n    end\n\n    settings\n  end\nend\n```\n\n## Signature Validation\n\nRuby SAML allows different ways to validate the signature of the SAMLResponse:\n- You can provide the IdP X.509 public certificate at the `idp_cert` setting.\n- You can provide the IdP X.509 public certificate in fingerprint format using the\n `idp_cert_fingerprint` setting parameter and additionally the `idp_cert_fingerprint_algorithm` parameter.\n\nWhen validating the signature of redirect binding, the fingerprint is useless and the certificate\nof the IdP is required in order to execute the validation. You can pass the option\n`:relax_signature_validation` to `SloLogoutrequest` and `Logoutresponse` if want to avoid signature\nvalidation if no certificate of the IdP is provided.\n\nIn production also we highly recommend to register on the settings the IdP certificate instead\nof using the fingerprint method. The fingerprint, is a hash, so at the end is open to a collision\nattack that can end on a signature validation bypass. Other SAML toolkits deprecated that mechanism,\nwe maintain it for compatibility and also to be used on test environment.\n\n## Handling Multiple IdP Certificates\n\nIf the IdP metadata XML includes multiple certificates, you may specify the `idp_cert_multi`\nparameter. When used, the `idp_cert` and `idp_cert_fingerprint` parameters are ignored.\nThis is useful in the following scenarios:\n\n* The IdP uses different certificates for signing versus encryption.\n* The IdP is undergoing a key rollover and is publishing the old and new certificates in parallel.\n\nThe `idp_cert_multi` must be a `Hash` as follows. The `:signing` and `:encryption` arrays below,\nadd the IdP X.509 public certificates which were published in the IdP metadata.\n\n```ruby\n{\n  :signing =\u003e [],\n  :encryption =\u003e []\n}\n```\n\n## Metadata Based Configuration\n\nThe method above requires a little extra work to manually specify attributes about both the IdP and your SP application.\nThere's an easier method: use a metadata exchange. Metadata is an XML file that defines the capabilities of both the IdP\nand the SP application. It also contains the X.509 public key certificates which add to the trusted relationship.\nThe IdP administrator can also configure custom settings for an SP based on the metadata.\n\nUsing `IdpMetadataParser#parse_remote`, the IdP metadata will be added to the settings.\n\n```ruby\ndef saml_settings\n\n  idp_metadata_parser = OneLogin::RubySaml::IdpMetadataParser.new\n  # Returns OneLogin::RubySaml::Settings pre-populated with IdP metadata\n  settings = idp_metadata_parser.parse_remote(\"https://example.com/auth/saml2/idp/metadata\")\n\n  settings.assertion_consumer_service_url = \"http://#{request.host}/saml/consume\"\n  settings.sp_entity_id                   = \"http://#{request.host}/saml/metadata\"\n  settings.name_identifier_format         = \"urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress\"\n  # Optional for most SAML IdPs\n  settings.authn_context = \"urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport\"\n\n  settings\nend\n```\n\nThe following attributes are set:\n  * idp_entity_id\n  * name_identifier_format\n  * idp_sso_service_url\n  * idp_slo_service_url\n  * idp_attribute_names\n  * idp_cert\n  * idp_cert_fingerprint\n  * idp_cert_multi\n\n### Retrieve one Entity Descriptor when many exist in Metadata\n\nIf the Metadata contains several entities, the relevant Entity\nDescriptor can be specified when retrieving the settings from the\nIdpMetadataParser by its Entity Id value:\n\n```ruby\n  validate_cert = true\n  settings = idp_metadata_parser.parse_remote(\n               \"https://example.com/auth/saml2/idp/metadata\",\n               validate_cert,\n               entity_id: \"http//example.com/target/entity\"\n             )\n```\n\n### Retrieve one Entity Descriptor with a specific binding and nameid format when several are available\n\nIf the metadata contains multiple bindings and NameID formats, the relevant ones\ncan be specified when retrieving the settings from the IdpMetadataParser\nby the values of binding and NameID:\n\n```ruby\n  validate_cert = true\n  options = {\n    entity_id: \"http//example.com/target/entity\",\n    name_id_format: \"urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress\",\n    sso_binding: \"urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST\",\n    slo_binding: \"urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST\"\n  }\n  settings = idp_metadata_parser.parse_remote(\n               \"https://example.com/auth/saml2/idp/metadata\",\n               validate_cert,\n               options\n             )\n```\n\n### Parsing Metadata into an Hash\n\nThe `OneLogin::RubySaml::IdpMetadataParser` also provides the methods `#parse_to_hash` and `#parse_remote_to_hash`.\nThose return an Hash instead of a `Settings` object, which may be useful for configuring\n[omniauth-saml](https://github.com/omniauth/omniauth-saml), for instance.\n\n\n### Validating Signature of Metadata and retrieve settings\n\nRight now there is no method at ruby_saml to validate the signature of the metadata that is going to be parsed, but it can be done as follows:\n\n* Download the XML.\n* Validate the Signature, providing the cert.\n* Provide the XML to the parse method if the signature was validated\n\n```ruby\nrequire \"xml_security\"\nrequire \"onelogin/ruby-saml/utils\"\nrequire \"onelogin/ruby-saml/idp_metadata_parser\"\n\nurl = \"\u003curl_to_the_metadata\u003e\"\nidp_metadata_parser = OneLogin::RubySaml::IdpMetadataParser.new\n\nuri = URI.parse(url)\nraise ArgumentError.new(\"url must begin with http or https\") unless /^https?/ =~ uri.scheme\nhttp = Net::HTTP.new(uri.host, uri.port)\nif uri.scheme == \"https\"\n    http.use_ssl = true\n    http.verify_mode = OpenSSL::SSL::VERIFY_PEER\nend\n\nget = Net::HTTP::Get.new(uri.request_uri)\nget.basic_auth uri.user, uri.password if uri.user\nresponse = http.request(get)\nxml = response.body\nerrors = []\ndoc = XMLSecurity::SignedDocument.new(xml, errors)\ncert_str = \"\u003cinclude_cert_here\u003e\"\ncert = OneLogin::RubySaml::Utils.format_cert(\"cert_str\")\nmetadata_sign_cert = OpenSSL::X509::Certificate.new(cert)\nvalid = doc.validate_document_with_cert(metadata_sign_cert, true)\nif valid\n  settings = idp_metadata_parser.parse(\n    xml,\n    entity_id: \"\u003centity_id_of_the_entity_to_be_retrieved\u003e\"\n  )\nelse\n  print \"Metadata Signature failed to be verified with the cert provided\"\nend\n```\n\n## Retrieving Attributes\n\nIf you are using `saml:AttributeStatement` to transfer data, such as the username, you can access all the attributes through `response.attributes`. It contains all the `saml:AttributeStatement`s with its 'Name' as an indifferent key and one or more `saml:AttributeValue`s as values. The value returned depends on the value of the\n`single_value_compatibility` (when activated, only the first value is returned)\n\n```ruby\nresponse = OneLogin::RubySaml::Response.new(params[:SAMLResponse])\nresponse.settings = saml_settings\n\nresponse.attributes[:username]\n```\n\nImagine this `saml:AttributeStatement`\n\n```xml\n  \u003csaml:AttributeStatement\u003e\n    \u003csaml:Attribute Name=\"uid\"\u003e\n      \u003csaml:AttributeValue xmlns:xs=\"http://www.w3.org/2001/XMLSchema\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:type=\"xs:string\"\u003edemo\u003c/saml:AttributeValue\u003e\n    \u003c/saml:Attribute\u003e\n    \u003csaml:Attribute Name=\"another_value\"\u003e\n      \u003csaml:AttributeValue xmlns:xs=\"http://www.w3.org/2001/XMLSchema\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:type=\"xs:string\"\u003evalue1\u003c/saml:AttributeValue\u003e\n      \u003csaml:AttributeValue xmlns:xs=\"http://www.w3.org/2001/XMLSchema\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:type=\"xs:string\"\u003evalue2\u003c/saml:AttributeValue\u003e\n    \u003c/saml:Attribute\u003e\n    \u003csaml:Attribute Name=\"role\"\u003e\n      \u003csaml:AttributeValue xmlns:xs=\"http://www.w3.org/2001/XMLSchema\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:type=\"xs:string\"\u003erole1\u003c/saml:AttributeValue\u003e\n    \u003c/saml:Attribute\u003e\n    \u003csaml:Attribute Name=\"role\"\u003e\n      \u003csaml:AttributeValue xmlns:xs=\"http://www.w3.org/2001/XMLSchema\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:type=\"xs:string\"\u003erole2\u003c/saml:AttributeValue\u003e\n      \u003csaml:AttributeValue xmlns:xs=\"http://www.w3.org/2001/XMLSchema\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:type=\"xs:string\"\u003erole3\u003c/saml:AttributeValue\u003e\n    \u003c/saml:Attribute\u003e\n    \u003csaml:Attribute Name=\"attribute_with_nil_value\"\u003e\n      \u003csaml:AttributeValue xmlns:xs=\"http://www.w3.org/2001/XMLSchema\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:nil=\"true\"/\u003e\n    \u003c/saml:Attribute\u003e\n    \u003csaml:Attribute Name=\"attribute_with_nils_and_empty_strings\"\u003e\n      \u003csaml:AttributeValue/\u003e\n      \u003csaml:AttributeValue\u003evaluePresent\u003c/saml:AttributeValue\u003e\n      \u003csaml:AttributeValue xmlns:xs=\"http://www.w3.org/2001/XMLSchema\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:nil=\"true\"/\u003e\n      \u003csaml:AttributeValue xmlns:xs=\"http://www.w3.org/2001/XMLSchema\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:nil=\"1\"/\u003e\n    \u003c/saml:Attribute\u003e\n    \u003csaml:Attribute Name=\"http://schemas.xmlsoap.org/ws/2005/05/identity/claims/givenname\"\u003e\n      \u003csaml:AttributeValue\u003eusersName\u003c/saml:AttributeValue\u003e\n    \u003c/saml:Attribute\u003e\n  \u003c/saml:AttributeStatement\u003e\n```\n\n```ruby\npp(response.attributes)   # is an OneLogin::RubySaml::Attributes object\n# =\u003e @attributes=\n  {\"uid\"=\u003e[\"demo\"],\n   \"another_value\"=\u003e[\"value1\", \"value2\"],\n   \"role\"=\u003e[\"role1\", \"role2\", \"role3\"],\n   \"attribute_with_nil_value\"=\u003e[nil],\n   \"attribute_with_nils_and_empty_strings\"=\u003e[\"\", \"valuePresent\", nil, nil]\n   \"http://schemas.xmlsoap.org/ws/2005/05/identity/claims/givenname\"=\u003e[\"usersName\"]}\u003e\n\n# Active single_value_compatibility\nOneLogin::RubySaml::Attributes.single_value_compatibility = true\n\npp(response.attributes[:uid])\n# =\u003e \"demo\"\n\npp(response.attributes[:role])\n# =\u003e \"role1\"\n\npp(response.attributes.single(:role))\n# =\u003e \"role1\"\n\npp(response.attributes.multi(:role))\n# =\u003e [\"role1\", \"role2\", \"role3\"]\n\npp(response.attributes.fetch(:role))\n# =\u003e \"role1\"\n\npp(response.attributes[:attribute_with_nil_value])\n# =\u003e nil\n\npp(response.attributes[:attribute_with_nils_and_empty_strings])\n# =\u003e \"\"\n\npp(response.attributes[:not_exists])\n# =\u003e nil\n\npp(response.attributes.single(:not_exists))\n# =\u003e nil\n\npp(response.attributes.multi(:not_exists))\n# =\u003e nil\n\npp(response.attributes.fetch(/givenname/))\n# =\u003e \"usersName\"\n\n# Deprecated single_value_compatibility\nOneLogin::RubySaml::Attributes.single_value_compatibility = false\n\npp(response.attributes[:uid])\n# =\u003e [\"demo\"]\n\npp(response.attributes[:role])\n# =\u003e [\"role1\", \"role2\", \"role3\"]\n\npp(response.attributes.single(:role))\n# =\u003e \"role1\"\n\npp(response.attributes.multi(:role))\n# =\u003e [\"role1\", \"role2\", \"role3\"]\n\npp(response.attributes.fetch(:role))\n# =\u003e [\"role1\", \"role2\", \"role3\"]\n\npp(response.attributes[:attribute_with_nil_value])\n# =\u003e [nil]\n\npp(response.attributes[:attribute_with_nils_and_empty_strings])\n# =\u003e [\"\", \"valuePresent\", nil, nil]\n\npp(response.attributes[:not_exists])\n# =\u003e nil\n\npp(response.attributes.single(:not_exists))\n# =\u003e nil\n\npp(response.attributes.multi(:not_exists))\n# =\u003e nil\n\npp(response.attributes.fetch(/givenname/))\n# =\u003e [\"usersName\"]\n```\n\nThe `saml:AuthnContextClassRef` of the AuthNRequest can be provided by `settings.authn_context`; possible values are described at [SAMLAuthnCxt]. The comparison method can be set using `settings.authn_context_comparison` parameter. Possible values include: 'exact', 'better', 'maximum' and 'minimum' (default value is 'exact').\nTo add a `saml:AuthnContextDeclRef`, define `settings.authn_context_decl_ref`.\n\nIn a SP-initiated flow, the SP can indicate to the IdP the subject that should be authenticated. This is done by defining the `settings.name_identifier_value_requested` before\nbuilding the authrequest object.\n\n## Service Provider Metadata\n\nTo form a trusted pair relationship with the IdP, the SP (you) need to provide metadata XML\nto the IdP for various good reasons. (Caching, certificate lookups, relaying party permissions, etc)\n\nThe class `OneLogin::RubySaml::Metadata` takes care of this by reading the Settings and returning XML.  All you have to do is add a controller to return the data, then give this URL to the IdP administrator.\n\nThe metadata will be polled by the IdP every few minutes, so updating your settings should propagate\nto the IdP settings.\n\n```ruby\nclass SamlController \u003c ApplicationController\n  # ... the rest of your controller definitions ...\n  def metadata\n    settings = Account.get_saml_settings\n    meta = OneLogin::RubySaml::Metadata.new\n    render :xml =\u003e meta.generate(settings), :content_type =\u003e \"application/samlmetadata+xml\"\n  end\nend\n```\n\nYou can add `ValidUntil` and `CacheDuration` to the SP Metadata XML using instead:\n\n```ruby\n  # Valid until =\u003e 2 days from now\n  # Cache duration = 604800s = 1 week\n  valid_until = Time.now + 172800\n  cache_duration = 604800\n  meta.generate(settings, false, valid_until, cache_duration)\n```\n\n## Signing and Decryption\n\nRuby SAML supports the following functionality:\n\n1. Signing your SP Metadata XML\n2. Signing your SP SAML messages\n3. Decrypting IdP Assertion messages upon receipt (EncryptedAssertion)\n4. Verifying signatures on SAML messages and IdP Assertions\n\nIn order to use functions 1-3 above, you must first define your SP public certificate and private key:\n\n```ruby\n  settings.certificate = \"CERTIFICATE TEXT WITH BEGIN/END HEADER AND FOOTER\"\n  settings.private_key = \"PRIVATE KEY TEXT WITH BEGIN/END HEADER AND FOOTER\"\n```\n\nNote that the same certificate (and its associated private key) are used to perform\nall decryption and signing-related functions (1-4) above. Ruby SAML does not currently allow\nto specify different certificates for each function.\n\nYou may also globally set the SP signature and digest method, to be used in SP signing (functions 1 and 2 above):\n\n```ruby\n  settings.security[:digest_method]    = XMLSecurity::Document::SHA1\n  settings.security[:signature_method] = XMLSecurity::Document::RSA_SHA1\n```\n\n#### Signing SP Metadata\n\nYou may add a `\u003cds:Signature\u003e` digital signature element to your SP Metadata XML using the following setting:\n\n```ruby\n  settings.certificate = \"CERTIFICATE TEXT WITH BEGIN/END HEADER AND FOOTER\"\n  settings.private_key = \"PRIVATE KEY TEXT WITH BEGIN/END HEADER AND FOOTER\"\n\n  settings.security[:metadata_signed] = true # Enable signature on Metadata\n```\n\n#### Signing SP SAML Messages\n\nRuby SAML supports SAML request signing. The Service Provider will sign the\nrequest/responses with its private key. The Identity Provider will then validate the signature\nof the received request/responses with the public X.509 cert of the Service Provider.\n\nTo enable, please first set your certificate and private key. This will add `\u003cmd:KeyDescriptor use=\"signing\"\u003e`\nto your SP Metadata XML, to be read by the IdP.\n\n```ruby\n  settings.certificate = \"CERTIFICATE TEXT WITH BEGIN/END HEADER AND FOOTER\"\n  settings.private_key = \"PRIVATE KEY TEXT WITH BEGIN/END HEADER AND FOOTER\"\n```\n\nNext, you may specify the specific SP SAML messages you would like to sign:\n\n```ruby\n  settings.security[:authn_requests_signed]   = true  # Enable signature on AuthNRequest\n  settings.security[:logout_requests_signed]  = true  # Enable signature on Logout Request\n  settings.security[:logout_responses_signed] = true  # Enable signature on Logout Response\n```\n\nSignatures will be handled automatically for both `HTTP-Redirect` and `HTTP-POST` Binding.\nNote that the RelayState parameter is used when creating the Signature on the `HTTP-Redirect` Binding.\nRemember to provide it to the Signature builder if you are sending a `GET RelayState` parameter or the\nsignature validation process will fail at the Identity Provider.\n\n#### Decrypting IdP SAML Assertions\n\nRuby SAML supports EncryptedAssertion. The Identity Provider will encrypt the Assertion with the\npublic cert of the Service Provider. The Service Provider will decrypt the EncryptedAssertion with its private key.\n\nYou may enable EncryptedAssertion as follows. This will add `\u003cmd:KeyDescriptor use=\"encryption\"\u003e` to your\nSP Metadata XML, to be read by the IdP.\n\n```ruby\n  settings.certificate = \"CERTIFICATE TEXT WITH BEGIN/END HEADER AND FOOTER\"\n  settings.private_key = \"PRIVATE KEY TEXT WITH BEGIN/END HEADER AND FOOTER\"\n\n  settings.security[:want_assertions_encrypted] = true # Invalidate SAML messages without an EncryptedAssertion\n```\n\n#### Verifying Signature on IdP Assertions\n\nYou may require the IdP to sign its SAML Assertions using the following setting.\nThis will add `\u003cmd:SPSSODescriptor WantAssertionsSigned=\"true\"\u003e` to your SP Metadata XML.\nThe signature will be checked against the `\u003cmd:KeyDescriptor use=\"signing\"\u003e` element\npresent in the IdP's metadata.\n\n```ruby\n  settings.security[:want_assertions_signed]  = true  # Require the IdP to sign its SAML Assertions\n```\n\n#### Certificate and Signature Validation\n\nYou may require SP and IdP certificates to be non-expired using the following settings:\n\n```ruby\n  settings.security[:check_idp_cert_expiration] = true  # Raise error if IdP X.509 cert is expired\n  settings.security[:check_sp_cert_expiration] = true   # Raise error SP X.509 cert is expired\n```\n\nBy default, Ruby SAML will raise a `OneLogin::RubySaml::ValidationError` if a signature or certificate\nvalidation fails. You may disable such exceptions using the `settings.security[:soft]` parameter.\n\n```ruby\n  settings.security[:soft] = true  # Do not raise error on failed signature/certificate validations\n```\n\n#### Advanced SP Certificate Usage \u0026 Key Rollover\n\nRuby SAML provides the `settings.sp_cert_multi` parameter to enable the following\nadvanced usage scenarios:\n- Rotating SP certificates and private keys without disruption of service.\n- Specifying separate SP certificates for signing and encryption.\n\nThe `sp_cert_multi` parameter replaces `certificate` and `private_key`\n(you may not specify both parameters at the same time.) `sp_cert_multi` has the following shape:\n\n```ruby\nsettings.sp_cert_multi = {\n  signing: [\n    { certificate: cert1, private_key: private_key1 },\n    { certificate: cert2, private_key: private_key2 }\n  ],\n  encryption: [\n    { certificate: cert1, private_key: private_key1 },\n    { certificate: cert3, private_key: private_key1 }\n  ],\n}\n```\n\nCertificate rotation is acheived by inserting new certificates at the bottom of each list,\nand then removing the old certificates from the top of the list once your IdPs have migrated.\nA common practice is for apps to publish the current SP metadata at a URL endpoint and have\nthe IdP regularly poll for updates.\n\nNote the following:\n- You may re-use the same certificate and/or private key in multiple places, including for both signing and encryption.\n- The IdP should attempt to verify signatures with *all* `:signing` certificates,\n  and permit if *any one* succeeds. When signing, Ruby SAML will use the first SP certificate\n  in the `sp_cert_multi[:signing]` array. This will be the first active/non-expired certificate\n  in the array if `settings.security[:check_sp_cert_expiration]` is true.\n- The IdP may encrypt with any of the SP certificates in the `sp_cert_multi[:encryption]`\n  array. When decrypting, Ruby SAML attempt to decrypt with each SP private key in\n  `sp_cert_multi[:encryption]` until the decryption is successful. This will skip private\n  keys for inactive/expired certificates if `:check_sp_cert_expiration` is true.\n- If `:check_sp_cert_expiration` is true, the generated SP metadata XML will not include\n  inactive/expired certificates. This avoids validation errors when the IdP reads the SP\n  metadata.\n\n#### Audience Validation\n\nA service provider should only consider a SAML response valid if the IdP includes an \u003cAudienceRestriction\u003e\nelement containing an \u003cAudience\u003e element that uniquely identifies the service provider. Unless you specify\nthe `skip_audience` option, Ruby SAML will validate that each SAML response includes an \u003cAudience\u003e element\nwhose contents matches `settings.sp_entity_id`.\n\nBy default, Ruby SAML considers an \u003cAudienceRestriction\u003e element containing only empty \u003cAudience\u003e elements\nto be valid. That means an otherwise valid SAML response with a condition like this would be valid:\n\n```xml\n\u003cAudienceRestriction\u003e\n  \u003cAudience /\u003e\n\u003c/AudienceRestriction\u003e\n```\n\nYou may enforce that an \u003cAudienceRestriction\u003e element containing only empty \u003cAudience\u003e elements\nis invalid using the `settings.security[:strict_audience_validation]` parameter.\n\n```ruby\nsettings.security[:strict_audience_validation] = true\n```\n\n## Single Log Out\n\nRuby SAML supports SP-initiated Single Logout and IdP-Initiated Single Logout.\n\nHere is an example that we could add to our previous controller to generate and send a SAML Logout Request to the IdP:\n\n```ruby\n# Create a SP initiated SLO\ndef sp_logout_request\n  # LogoutRequest accepts plain browser requests w/o paramters\n  settings = saml_settings\n\n  if settings.idp_slo_service_url.nil?\n    logger.info \"SLO IdP Endpoint not found in settings, then executing a normal logout'\"\n    delete_session\n  else\n\n    logout_request = OneLogin::RubySaml::Logoutrequest.new\n    logger.info \"New SP SLO for userid '#{session[:userid]}' transactionid '#{logout_request.uuid}'\"\n\n    if settings.name_identifier_value.nil?\n      settings.name_identifier_value = session[:userid]\n    end\n\n    # Ensure user is logged out before redirect to IdP, in case anything goes wrong during single logout process (as recommended by saml2int [SDP-SP34])\n    logged_user = session[:userid]\n    logger.info \"Delete session for '#{session[:userid]}'\"\n    delete_session\n\n    # Save the transaction_id to compare it with the response we get back\n    session[:transaction_id] = logout_request.uuid\n    session[:logged_out_user] = logged_user\n\n    relayState = url_for(controller: 'saml', action: 'index')\n    redirect_to(logout_request.create(settings, :RelayState =\u003e relayState))\n  end\nend\n```\n\nThis method processes the SAML Logout Response sent by the IdP as the reply of the SAML Logout Request:\n\n```ruby\n# After sending an SP initiated LogoutRequest to the IdP, we need to accept\n# the LogoutResponse, verify it, then actually delete our session.\ndef process_logout_response\n  settings = Account.get_saml_settings\n\n  if session.has_key? :transaction_id\n    logout_response = OneLogin::RubySaml::Logoutresponse.new(params[:SAMLResponse], settings, :matches_request_id =\u003e session[:transaction_id])\n  else\n    logout_response = OneLogin::RubySaml::Logoutresponse.new(params[:SAMLResponse], settings)\n  end\n\n  logger.info \"LogoutResponse is: #{logout_response.to_s}\"\n\n  # Validate the SAML Logout Response\n  if not logout_response.validate\n    logger.error \"The SAML Logout Response is invalid\"\n  else\n    # Actually log out this session\n    logger.info \"SLO completed for '#{session[:logged_out_user]}'\"\n    delete_session\n  end\nend\n\n# Delete a user's session.\ndef delete_session\n  session[:userid] = nil\n  session[:attributes] = nil\n  session[:transaction_id] = nil\n  session[:logged_out_user] = nil\nend\n```\n\nHere is an example that we could add to our previous controller to process a SAML Logout Request from the IdP and reply with a SAML Logout Response to the IdP:\n\n```ruby\n# Method to handle IdP initiated logouts\ndef idp_logout_request\n  settings = Account.get_saml_settings\n  # ADFS URL-Encodes SAML data as lowercase, and the toolkit by default uses\n  # uppercase. Turn it True for ADFS compatibility on signature verification\n  settings.security[:lowercase_url_encoding] = true\n\n  logout_request = OneLogin::RubySaml::SloLogoutrequest.new(\n    params[:SAMLRequest], settings: settings\n  )\n  if !logout_request.is_valid?\n    logger.error \"IdP initiated LogoutRequest was not valid!\"\n    return render :inline =\u003e logger.error\n  end\n  logger.info \"IdP initiated Logout for #{logout_request.name_id}\"\n\n  # Actually log out this session\n  delete_session\n\n  # Generate a response to the IdP.\n  logout_request_id = logout_request.id\n  logout_response = OneLogin::RubySaml::SloLogoutresponse.new.create(settings, logout_request_id, nil, :RelayState =\u003e params[:RelayState])\n  redirect_to logout_response\nend\n```\n\nAll the mentioned methods could be handled in a unique view:\n\n```ruby\n# Trigger SP and IdP initiated Logout requests\ndef logout\n  # If we're given a logout request, handle it in the IdP logout initiated method\n  if params[:SAMLRequest]\n    return idp_logout_request\n  # We've been given a response back from the IdP, process it\n  elsif params[:SAMLResponse]\n    return process_logout_response\n  # Initiate SLO (send Logout Request)\n  else\n    return sp_logout_request\n  end\nend\n```\n\n## Clock Drift\n\nServer clocks tend to drift naturally. If during validation of the response you get the error \"Current time is earlier than NotBefore condition\", this may be due to clock differences between your system and that of the Identity Provider.\n\nFirst, ensure that both systems synchronize their clocks, using for example the industry standard [Network Time Protocol (NTP)](http://en.wikipedia.org/wiki/Network_Time_Protocol).\n\nEven then you may experience intermittent issues, as the clock of the Identity Provider may drift slightly ahead of your system clocks. To allow for a small amount of clock drift, you can initialize the response by passing in an option named `:allowed_clock_drift`. Its value must be given in a number (and/or fraction) of seconds. The value given is added to the current time at which the response is validated before it's tested against the `NotBefore` assertion. For example:\n\n```ruby\nresponse = OneLogin::RubySaml::Response.new(params[:SAMLResponse], :allowed_clock_drift =\u003e 1.second)\n```\n\nMake sure to keep the value as comfortably small as possible to keep security risks to a minimum.\n\n## Deflation Limit\n\nTo protect against decompression bombs (a form of DoS attack), SAML messages are limited to 250,000 bytes by default.\nSometimes legitimate SAML messages will exceed this limit,\nfor example due to custom claims like including groups a user is a member of.\nIf you want to customize this limit, you need to provide a different setting when initializing the response object.\nExample:\n\n```ruby\ndef consume\n  response = OneLogin::RubySaml::Response.new(params[:SAMLResponse], { settings: saml_settings })\n  ...\nend\n\nprivate\n\ndef saml_settings\n  OneLogin::RubySaml::Settings.new(message_max_bytesize: 500_000)\nend\n```\n\n## Attribute Service\n\nTo request attributes from the IdP the SP must provide an attribute service within its metadata and reference the index in the assertion.\n\n```ruby\nsettings = OneLogin::RubySaml::Settings.new\nsettings.attributes_index = 5\nsettings.attribute_consuming_service.configure do\n  service_name \"Service\"\n  service_index 5\n  add_attribute :name =\u003e \"Name\", :name_format =\u003e \"Name Format\", :friendly_name =\u003e \"Friendly Name\"\n  add_attribute :name =\u003e \"Another Attribute\", :name_format =\u003e \"Name Format\", :friendly_name =\u003e \"Friendly Name\", :attribute_value =\u003e \"Attribute Value\"\nend\n```\n\nThe `attribute_value` option additionally accepts an array of possible values.\n\n## Custom Metadata Fields\n\nSome IdPs may require SPs to add additional fields (Organization, ContactPerson, etc.)\ninto the SP metadata. This can be achieved by extending the `OneLogin::RubySaml::Metadata`\nclass and overriding the `#add_extras` method as per the following example:\n\n```ruby\nclass MyMetadata \u003c OneLogin::RubySaml::Metadata\n  def add_extras(root, _settings)\n    org = root.add_element(\"md:Organization\")\n    org.add_element(\"md:OrganizationName\", 'xml:lang' =\u003e \"en-US\").text = 'ACME Inc.'\n    org.add_element(\"md:OrganizationDisplayName\", 'xml:lang' =\u003e \"en-US\").text = 'ACME'\n    org.add_element(\"md:OrganizationURL\", 'xml:lang' =\u003e \"en-US\").text = 'https://www.acme.com'\n\n    cp = root.add_element(\"md:ContactPerson\", 'contactType' =\u003e 'technical')\n    cp.add_element(\"md:GivenName\").text = 'ACME SAML Team'\n    cp.add_element(\"md:EmailAddress\").text = 'saml@acme.com'\n  end\nend\n\n# Output XML with custom metadata\nMyMetadata.new.generate(settings)\n```\n\n### Preventing Replay Attacks\n\nA replay attack is when an attacker intercepts a valid SAML assertion and \"replays\" it at a later time to gain unauthorized access.\n\nThe library only checks the assertion's validity window (`NotBefore` and `NotOnOrAfter` conditions). An attacker can replay a valid assertion as many times as they want within this window.\n\nA robust defense requires tracking of assertion IDs to ensure any given assertion is only accepted once.\n\n#### 1. Extract the Assertion ID after Validation\n\nAfter a response has been successfully validated, get the assertion ID. The library makes this available via `response.assertion_id`.\n\n\n#### 2. Store the ID with an Expiry\n\nYou must store this ID in a persistent cache (like Redis or Memcached) that is shared across your servers. Do not store it in the user's session, as that is not a secure cache.\n\nThe ID should be stored until the assertion's validity window has passed. You will need to check how long the trusted IdPs consider the assertion valid and then add the allowed_clock_drift.\n\nYou can define a global value, or set this value dinamically based on the `not_on_or_after` value of the re + `allowed_clock_drift`.\n\n```ruby\n# In your `consume` action, after a successful validation:\nif response.is_valid?\n  # Prevent replay of this specific assertion\n  assertion_id = response.assertion_id\n  authorize_failure(\"Assertion ID is mandatory\") if assertion_id.nil?\n\n  assertion_not_on_or_after = response.not_on_or_after\n  # We set a default of 5 min expiration in case is not provided\n  assertion_expiry = (Time.now.utc + 300) if assertion_not_on_or_after.nil?\n\n  # `is_new_assertion?` is your application's method to check and set the ID\n  # in a shared, persistent cache (e.g., Redis, Memcached).\n  if is_new_assertion?(assertion_id, expires_at: assertion_expiry)\n    # This is a new assertion, so we can proceed\n    session[:userid] = response.nameid\n    session[:attributes] = response.attributes\n    # ...\n  else\n    # This assertion ID has been seen before. This is a REPLAY ATTACK.\n    # Log the security event and reject the user.\n    authorize_failure(\"Replay attack detected\")\n  end\nelse\n  authorize_failure(\"Invalid response\")\nend\n```\n\nYour `is_new_assertion?` method would look something like this (example for Redis):\n\n```ruby\n\ndef is_new_assertion?(assertion_id, expires_at)\n  ttl = (expires_at - Time.now.utc).to_i\n  return false if ttl \u003c= 0 # The assertion has already expired\n\n  # The 'nx' option tells Redis to only set the key if it does not already exist.\n  # The command returns `true` if the key was set, `false` otherwise.\n  $redis.set(\"saml_assertion_ids:#{assertion_id}\", \"1\", ex: ttl, nx: true)\nend\n```\n\n### Enforce SP-Initiated Flow with `InResponseTo` validation\n\nThis is the best way to prevent IdP-initiated logins and ensure that you only accept assertions that you recently requested.\n\n#### 1. Store the `AuthnRequest` ID\n\nWhen you create an `AuthnRequest`, the library assigns it a unique ID. You must store this ID, for example in the user's session *before* redirecting them to the IdP.\n\n```ruby\ndef init\n  request = OneLogin::RubySaml::Authrequest.new\n  # The unique ID of the request is in request.uuid\n  session[:saml_request_id] = request.uuid\n  redirect_to(request.create(saml_settings))\nend\n```\n\n#### 2. Validate the `InResponseTo` value of the `Response` with the Stored ID\n\nWhen you process the `SAMLResponse`, retrieve the ID from the session and pass it to the `Response` constructor. Use `session.delete` to ensure the ID can only be used once.\n\n```ruby\ndef consume\n  request_id = session.delete(:saml_request_id) # Use delete to prevent re-use\n\n  # You can reject the response if no previous saml_request_id was stored\n  raise \"IdP-initiaited detected\" if request_id.nil?\n\n  response = OneLogin::RubySaml::Response.new(\n    params[:SAMLResponse],\n    settings: saml_settings,\n    matches_request_id: request_id\n  )\n\n  if response.is_valid?\n    # ... authorize user\n  else\n    # Response is invalid, errors in response.errors\n  end\nend\n```\n\n## Contributing\n\n### Pay it Forward: Support RubySAML and Strengthen Open-Source Security\n\nRubySAML is a trusted authentication library used by startups and enterprises alike—\na community-driven alternative to costly third-party services.\n\nBut security doesn't happen in a vacuum. Vulnerabilities in authentication libraries can\nhave widespread consequences. Maintaining open-source security requires continuous\neffort, expertise, and funding. By supporting RubySAML, you’re not just securing your\nown systems—you’re strengthening auth security globally. Instead of paying for closed\nsolutions, consider investing in the community that does the real security work.\n\n#### How you can help\n\n* Sponsor RubySAML: [GitHub Sponsors](https://github.com/sponsors/SAML-Toolkits)\n* Contribute to secure-by-design improvements\n* Responsibly report vulnerabilities (see \"Vulnerability Reporting\" above)\n\nSecurity is a shared responsibility. If RubySAML has helped your organization, please\nconsider giving back. Together, we can keep authentication secure—without putting it\nbehind paywalls.\n\n#### Adding Features, Pull Requests\n\n* Fork the repository\n* Make your feature addition or bug fix\n* Add tests for your new features. This is important so we don't break any features in a future version unintentionally.\n* Ensure all tests pass by running `bundle exec rake test`.\n* Do not change Rakefile, version, or history.\n* Open a pull request, following [this template](https://gist.github.com/Lordnibbler/11002759).\n\n### Sponsors\n\nThanks to the following sponsors for securing the open source ecosystem:\n\n#### [\u003cimg class=\"circle\" src=\"https://avatars.githubusercontent.com/u/34724717\" width=\"26\" height=\"26\" alt=\"@serpapi\"\u003e](https://serpapi.com) [\u003csup\u003eSerpApi\u003c/sup\u003e](https://github.com/serpapi)\n\u003csup\u003e*A real-time API to access Google search results. It handle proxies, solve captchas, and parse all rich structured data for you*\u003c/sup\u003e\n\n#### [\u003cimg class=\"circle\" src=\"https://avatars.githubusercontent.com/u/9919\" width=\"26\" height=\"26\" alt=\"@github\"\u003e](https://github.com/) [\u003csup\u003eGithub\u003c/sup\u003e](https://github.com/github)\n\u003csup\u003e*The complete developer platform to build, scale, and deliver secure software.*\u003c/sup\u003e\n\n#### [\u003cimg alt=\"84codes\" src=\"https://avatars.githubusercontent.com/u/5353257\" width=\"26\" height=\"26\"\u003e](https://www.84codes.com) [\u003csup\u003e84codes\u003c/sup\u003e](https://github.com/84codes)\n\u003csup\u003e*Simplifying Message Queuing and Streaming. Leave server management to the experts, so you can focus on building great applications.*\u003c/sup\u003e\n\n\n## License\n\nRuby SAML is made available under the MIT License. Refer to [LICENSE](LICENSE).\n","funding_links":["https://github.com/sponsors/SAML-Toolkits"],"readme_doi_urls":[],"works":{},"citation_counts":{},"total_citations":0,"keywords_from_contributors":["activerecord","activejob","mvc","rubygems","crash-reporting","rack","rspec","feature-flag","sinatra","error-monitoring"],"project_url":"https://ruby.ecosyste.ms/api/v1/projects/322","html_url":"https://ruby.ecosyste.ms/projects/322"}