diff --git a/.idea/oauth2.iml b/.idea/oauth2.iml
index 52e08626..5c3d6b0d 100755
--- a/.idea/oauth2.iml
+++ b/.idea/oauth2.iml
@@ -51,7 +51,7 @@
-
+
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 88c942ea..96ae3017 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,30 +1,55 @@
# Changelog
+
+[![SemVer 2.0.0][📌semver-img]][📌semver] [![Keep-A-Changelog 1.0.0][📗keep-changelog-img]][📗keep-changelog]
+
All notable changes to this project will be documented in this file.
-The format (since v2) is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
-and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
+The format is based on [Keep a Changelog][📗keep-changelog],
+and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html),
+and [yes][📌major-versions-not-sacred], platform and engine support are part of the [public API][📌semver-breaking].
+Please file a bug if you notice a violation of semantic versioning.
+
+[📌semver]: https://semver.org/spec/v2.0.0.html
+[📌semver-img]: https://img.shields.io/badge/semver-2.0.0-FFDD67.svg?style=flat
+[📌semver-breaking]: https://github.com/semver/semver/issues/716#issuecomment-869336139
+[📌major-versions-not-sacred]: https://tom.preston-werner.com/2022/05/23/major-version-numbers-are-not-sacred.html
+[📗keep-changelog]: https://keepachangelog.com/en/1.0.0/
+[📗keep-changelog-img]: https://img.shields.io/badge/keep--a--changelog-1.0.0-FFDD67.svg?style=flat
## [Unreleased]
### Added
+### Changed
+### Deprecated
+### Removed
+### Fixed
+### Security
+
+## [2.0.14] - 2025-08-31
+- TAG: [v2.0.14][2.0.14t]
+- COVERAGE: 100.00% -- 519/519 lines in 14 files
+- BRANCH COVERAGE: 100.00% -- 174/174 branches in 14 files
+- 90.48% documented
+### Added
- improved documentation by @pboling
-- Document Mutual TLS (mTLS) usage with example in README (connection_opts.ssl client_cert/client_key and auth_scheme: :tls_client_auth)
-- Document usage of flat query params using Faraday::FlatParamsEncoder, with example URI, in README
-- Spec: verify flat params are preserved with Faraday::FlatParamsEncoder (skips on Faraday without FlatParamsEncoder)
-- documentation notes in code comments and README highlighting OAuth 2.1 differences, with references, such as:
+- [gh665][gh665] - Document Mutual TLS (mTLS) usage with example in README (connection_opts.ssl client_cert/client_key and auth_scheme: :tls_client_auth) by @pboling
+- [gh666][gh666] - Document usage of flat query params using Faraday::FlatParamsEncoder, with example URI, in README by @pboling
+ - Spec: verify flat params are preserved with Faraday::FlatParamsEncoder (skips on Faraday without FlatParamsEncoder)
+- [gh662][gh662] - documentation notes in code comments and README highlighting OAuth 2.1 differences, with references, such as: by @pboling
- PKCE required for auth code,
- exact redirect URI match,
- implicit/password grants omitted,
- avoid bearer tokens in query,
- refresh token guidance for public clients,
- simplified client definitions)
-- document how to implement an OIDC client with this gem in OIDC.md
+- [gh663][gh663] - document how to implement an OIDC client with this gem in OIDC.md by @pboling
- also, list libraries built on top of the oauth2 gem that implement OIDC
-- README: Add example for JHipster UAA (Spring Cloud) password grant, converted from Postman/Net::HTTP
-### Changed
-### Deprecated
-### Removed
-### Fixed
-### Security
+- [gh664][gh664] - README: Add example for JHipster UAA (Spring Cloud) password grant, converted from Postman/Net::HTTP by @pboling
+
+[gh662]: https://github.com/ruby-oauth/oauth2/pull/662
+[gh663]: https://github.com/ruby-oauth/oauth2/pull/663
+[gh664]: https://github.com/ruby-oauth/oauth2/pull/664
+[gh665]: https://github.com/ruby-oauth/oauth2/pull/665
+[gh666]: https://github.com/ruby-oauth/oauth2/pull/666
## [2.0.13] - 2025-08-30
- TAG: [v2.0.13][2.0.13t]
@@ -615,106 +640,108 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
[gemfiles/readme]: gemfiles/README.md
-[Unreleased]: https://gitlab.com/ruby-oauth/oauth2/-/compare/v2.0.12...HEAD
-[0.0.1]: https://github.com/ruby-oauth/oauth2/compare/311d9f4...v0.0.1
-[0.0.1t]: https://github.com/ruby-oauth/oauth2/releases/tag/v0.0.1
-[0.0.2]: https://gitlab.com/ruby-oauth/oauth2/-/compare/v0.0.1...v0.0.2
-[0.0.2t]: https://github.com/ruby-oauth/oauth2/releases/tag/v0.0.2
-[0.0.3]: https://gitlab.com/ruby-oauth/oauth2/-/compare/v0.0.2...v0.0.3
-[0.0.3t]: https://github.com/ruby-oauth/oauth2/releases/tag/v0.0.3
-[0.0.4]: https://gitlab.com/ruby-oauth/oauth2/-/compare/v0.0.3...v0.0.4
-[0.0.4t]: https://github.com/ruby-oauth/oauth2/releases/tag/v0.0.4
-[0.0.5]: https://gitlab.com/ruby-oauth/oauth2/-/compare/v0.0.4...v0.0.5
-[0.0.5t]: https://github.com/ruby-oauth/oauth2/releases/tag/v0.0.5
-[0.0.6]: https://gitlab.com/ruby-oauth/oauth2/-/compare/v0.0.5...v0.0.6
-[0.0.6t]: https://github.com/ruby-oauth/oauth2/releases/tag/v0.0.6
-[0.0.7]: https://gitlab.com/ruby-oauth/oauth2/-/compare/v0.0.6...v0.0.7
-[0.0.7t]: https://github.com/ruby-oauth/oauth2/releases/tag/v0.0.7
-[0.0.8]: https://gitlab.com/ruby-oauth/oauth2/-/compare/v0.0.7...v0.0.8
-[0.0.8t]: https://github.com/ruby-oauth/oauth2/releases/tag/v0.0.8
-[0.0.9]: https://gitlab.com/ruby-oauth/oauth2/-/compare/v0.0.8...v0.0.9
-[0.0.9t]: https://github.com/ruby-oauth/oauth2/releases/tag/v0.0.9
-[0.0.10]: https://gitlab.com/ruby-oauth/oauth2/-/compare/v0.0.9...v0.0.10
-[0.0.10t]: https://github.com/ruby-oauth/oauth2/releases/tag/v0.0.10
-[0.0.11]: https://gitlab.com/ruby-oauth/oauth2/-/compare/v0.0.10...v0.0.11
-[0.0.11t]: https://github.com/ruby-oauth/oauth2/releases/tag/v0.0.11
-[0.0.12]: https://gitlab.com/ruby-oauth/oauth2/-/compare/v0.0.11...v0.0.12
-[0.0.12t]: https://github.com/ruby-oauth/oauth2/releases/tag/v0.0.12
-[0.0.13]: https://gitlab.com/ruby-oauth/oauth2/-/compare/v0.0.12...v0.0.13
-[0.0.13t]: https://github.com/ruby-oauth/oauth2/releases/tag/v0.0.13
-[0.1.0]: https://gitlab.com/ruby-oauth/oauth2/-/compare/v0.0.13...v0.1.0
-[0.1.0t]: https://github.com/ruby-oauth/oauth2/releases/tag/v0.1.0
-[0.1.1]: https://gitlab.com/ruby-oauth/oauth2/-/compare/v0.1.0...v0.1.1
-[0.1.1t]: https://github.com/ruby-oauth/oauth2/releases/tag/v0.1.1
-[0.2.0]: https://gitlab.com/ruby-oauth/oauth2/-/compare/v0.1.1...v0.2.0
-[0.2.0t]: https://github.com/ruby-oauth/oauth2/releases/tag/v0.2.0
-[0.3.0]: https://gitlab.com/ruby-oauth/oauth2/-/compare/v0.2.0...v0.3.0
-[0.3.0t]: https://github.com/ruby-oauth/oauth2/releases/tag/v0.3.0
-[0.4.0]: https://gitlab.com/ruby-oauth/oauth2/-/compare/v0.3.0...v0.4.0
-[0.4.0t]: https://github.com/ruby-oauth/oauth2/releases/tag/v0.4.0
-[0.4.1]: https://gitlab.com/ruby-oauth/oauth2/-/compare/v0.4.0...v0.4.1
-[0.4.1t]: https://github.com/ruby-oauth/oauth2/releases/tag/v0.4.1
-[0.5.0]: https://gitlab.com/ruby-oauth/oauth2/-/compare/v0.4.1...v0.5.0
-[0.5.0t]: https://github.com/ruby-oauth/oauth2/releases/tag/v0.5.0
-[1.0.0]: https://gitlab.com/ruby-oauth/oauth2/-/compare/v0.9.4...v1.0.0
-[1.0.0t]: https://github.com/ruby-oauth/oauth2/releases/tag/v1.0.0
-[1.1.0]: https://gitlab.com/ruby-oauth/oauth2/-/compare/v1.0.0...v1.1.0
-[1.1.0t]: https://github.com/ruby-oauth/oauth2/releases/tag/v1.1.0
-[1.2.0]: https://gitlab.com/ruby-oauth/oauth2/-/compare/v1.1.0...v1.2.0
-[1.2.0t]: https://github.com/ruby-oauth/oauth2/releases/tag/v1.2.0
-[1.3.0]: https://gitlab.com/ruby-oauth/oauth2/-/compare/v1.2.0...v1.3.0
-[1.3.0t]: https://github.com/ruby-oauth/oauth2/releases/tag/v1.3.0
-[1.3.1]: https://gitlab.com/ruby-oauth/oauth2/-/compare/v1.3.0...v1.3.1
-[1.3.1t]: https://github.com/ruby-oauth/oauth2/releases/tag/v1.3.1
-[1.4.0]: https://gitlab.com/ruby-oauth/oauth2/-/compare/v1.3.1...v1.4.0
-[1.4.0t]: https://github.com/ruby-oauth/oauth2/releases/tag/v1.4.0
-[1.4.1]: https://gitlab.com/ruby-oauth/oauth2/-/compare/v1.4.0...v1.4.1
-[1.4.1t]: https://github.com/ruby-oauth/oauth2/releases/tag/v1.4.1
-[1.4.2]: https://gitlab.com/ruby-oauth/oauth2/-/compare/v1.4.1...v1.4.2
-[1.4.2t]: https://github.com/ruby-oauth/oauth2/releases/tag/v1.4.2
-[1.4.3]: https://gitlab.com/ruby-oauth/oauth2/-/compare/v1.4.2...v1.4.3
-[1.4.3t]: https://github.com/ruby-oauth/oauth2/releases/tag/v1.4.3
-[1.4.4]: https://gitlab.com/ruby-oauth/oauth2/-/compare/v1.4.3...v1.4.4
-[1.4.4t]: https://github.com/ruby-oauth/oauth2/releases/tag/v1.4.4
-[1.4.5]: https://gitlab.com/ruby-oauth/oauth2/-/compare/v1.4.4...v1.4.5
-[1.4.5t]: https://github.com/ruby-oauth/oauth2/releases/tag/v1.4.5
-[1.4.6]: https://gitlab.com/ruby-oauth/oauth2/-/compare/v1.4.5...v1.4.6
-[1.4.6t]: https://github.com/ruby-oauth/oauth2/releases/tag/v1.4.6
-[1.4.7]: https://gitlab.com/ruby-oauth/oauth2/-/compare/v1.4.6...v1.4.7
-[1.4.7t]: https://github.com/ruby-oauth/oauth2/releases/tag/v1.4.7
-[1.4.8]: https://gitlab.com/ruby-oauth/oauth2/-/compare/v1.4.7...v1.4.8
-[1.4.8t]: https://github.com/ruby-oauth/oauth2/releases/tag/v1.4.8
-[1.4.9]: https://gitlab.com/ruby-oauth/oauth2/-/compare/v1.4.8...v1.4.9
-[1.4.9t]: https://github.com/ruby-oauth/oauth2/releases/tag/v1.4.9
-[1.4.10]: https://gitlab.com/ruby-oauth/oauth2/-/compare/v1.4.9...v1.4.10
-[1.4.10t]: https://github.com/ruby-oauth/oauth2/releases/tag/v1.4.10
-[1.4.11]: https://gitlab.com/ruby-oauth/oauth2/-/compare/v1.4.10...v1.4.11
-[1.4.11t]: https://github.com/ruby-oauth/oauth2/releases/tag/v1.4.11
-[2.0.0]: https://gitlab.com/ruby-oauth/oauth2/-/compare/v1.4.11...v2.0.0
-[2.0.0t]: https://github.com/ruby-oauth/oauth2/releases/tag/v2.0.0
-[2.0.1]: https://gitlab.com/ruby-oauth/oauth2/-/compare/v2.0.0...v2.0.1
-[2.0.1t]: https://github.com/ruby-oauth/oauth2/releases/tag/v2.0.1
-[2.0.2]: https://gitlab.com/ruby-oauth/oauth2/-/compare/v2.0.1...v2.0.2
-[2.0.2t]: https://github.com/ruby-oauth/oauth2/releases/tag/v2.0.2
-[2.0.3]: https://gitlab.com/ruby-oauth/oauth2/-/compare/v2.0.2...v2.0.3
-[2.0.3t]: https://github.com/ruby-oauth/oauth2/releases/tag/v2.0.3
-[2.0.4]: https://gitlab.com/ruby-oauth/oauth2/-/compare/v2.0.3...v2.0.4
-[2.0.4t]: https://github.com/ruby-oauth/oauth2/releases/tag/v2.0.4
-[2.0.5]: https://gitlab.com/ruby-oauth/oauth2/-/compare/v2.0.4...v2.0.5
-[2.0.5t]: https://github.com/ruby-oauth/oauth2/releases/tag/v2.0.5
-[2.0.6]: https://gitlab.com/ruby-oauth/oauth2/-/compare/v2.0.5...v2.0.6
-[2.0.6t]: https://github.com/ruby-oauth/oauth2/releases/tag/v2.0.6
-[2.0.7]: https://gitlab.com/ruby-oauth/oauth2/-/compare/v2.0.6...v2.0.7
-[2.0.7t]: https://github.com/ruby-oauth/oauth2/releases/tag/v2.0.7
-[2.0.8]: https://gitlab.com/ruby-oauth/oauth2/-/compare/v2.0.7...v2.0.8
-[2.0.8t]: https://github.com/ruby-oauth/oauth2/releases/tag/v2.0.8
-[2.0.9]: https://gitlab.com/ruby-oauth/oauth2/-/compare/v2.0.8...v2.0.9
-[2.0.9t]: https://github.com/ruby-oauth/oauth2/releases/tag/v2.0.9
-[2.0.10]: https://gitlab.com/ruby-oauth/oauth2/-/compare/v2.0.9...v2.0.10
-[2.0.10t]: https://github.com/ruby-oauth/oauth2/releases/tag/v2.0.10
-[2.0.11]: https://gitlab.com/ruby-oauth/oauth2/-/compare/v2.0.10...v2.0.11
-[2.0.11t]: https://github.com/ruby-oauth/oauth2/releases/tag/v2.0.11
-[2.0.12]: https://gitlab.com/ruby-oauth/oauth2/-/compare/v2.0.11...v2.0.12
-[2.0.12t]: https://github.com/ruby-oauth/oauth2/releases/tag/v2.0.12
+[Unreleased]: https://github.com/ruby-oauth/oauth2/compare/v2.0.14...HEAD
+[2.0.14]: https://github.com/ruby-oauth/oauth2/compare/v2.0.13...v2.0.14
+[2.0.14t]: https://github.com/ruby-oauth/oauth2/releases/tag/v2.0.14
[2.0.13]: https://github.com/ruby-oauth/oauth2/compare/v2.0.12...v2.0.13
[2.0.13t]: https://github.com/ruby-oauth/oauth2/releases/tag/v2.0.13
+[2.0.12]: https://gitlab.com/ruby-oauth/oauth2/-/compare/v2.0.11...v2.0.12
+[2.0.12t]: https://github.com/ruby-oauth/oauth2/releases/tag/v2.0.12
+[2.0.11]: https://gitlab.com/ruby-oauth/oauth2/-/compare/v2.0.10...v2.0.11
+[2.0.11t]: https://github.com/ruby-oauth/oauth2/releases/tag/v2.0.11
+[2.0.10]: https://gitlab.com/ruby-oauth/oauth2/-/compare/v2.0.9...v2.0.10
+[2.0.10t]: https://github.com/ruby-oauth/oauth2/releases/tag/v2.0.10
+[2.0.9]: https://gitlab.com/ruby-oauth/oauth2/-/compare/v2.0.8...v2.0.9
+[2.0.9t]: https://github.com/ruby-oauth/oauth2/releases/tag/v2.0.9
+[2.0.8]: https://gitlab.com/ruby-oauth/oauth2/-/compare/v2.0.7...v2.0.8
+[2.0.8t]: https://github.com/ruby-oauth/oauth2/releases/tag/v2.0.8
+[2.0.7]: https://gitlab.com/ruby-oauth/oauth2/-/compare/v2.0.6...v2.0.7
+[2.0.7t]: https://github.com/ruby-oauth/oauth2/releases/tag/v2.0.7
+[2.0.6]: https://gitlab.com/ruby-oauth/oauth2/-/compare/v2.0.5...v2.0.6
+[2.0.6t]: https://github.com/ruby-oauth/oauth2/releases/tag/v2.0.6
+[2.0.5]: https://gitlab.com/ruby-oauth/oauth2/-/compare/v2.0.4...v2.0.5
+[2.0.5t]: https://github.com/ruby-oauth/oauth2/releases/tag/v2.0.5
+[2.0.4]: https://gitlab.com/ruby-oauth/oauth2/-/compare/v2.0.3...v2.0.4
+[2.0.4t]: https://github.com/ruby-oauth/oauth2/releases/tag/v2.0.4
+[2.0.3]: https://gitlab.com/ruby-oauth/oauth2/-/compare/v2.0.2...v2.0.3
+[2.0.3t]: https://github.com/ruby-oauth/oauth2/releases/tag/v2.0.3
+[2.0.2]: https://gitlab.com/ruby-oauth/oauth2/-/compare/v2.0.1...v2.0.2
+[2.0.2t]: https://github.com/ruby-oauth/oauth2/releases/tag/v2.0.2
+[2.0.1]: https://gitlab.com/ruby-oauth/oauth2/-/compare/v2.0.0...v2.0.1
+[2.0.1t]: https://github.com/ruby-oauth/oauth2/releases/tag/v2.0.1
+[2.0.0]: https://gitlab.com/ruby-oauth/oauth2/-/compare/v1.4.11...v2.0.0
+[2.0.0t]: https://github.com/ruby-oauth/oauth2/releases/tag/v2.0.0
+[1.4.11]: https://gitlab.com/ruby-oauth/oauth2/-/compare/v1.4.10...v1.4.11
+[1.4.11t]: https://github.com/ruby-oauth/oauth2/releases/tag/v1.4.11
+[1.4.10]: https://gitlab.com/ruby-oauth/oauth2/-/compare/v1.4.9...v1.4.10
+[1.4.10t]: https://github.com/ruby-oauth/oauth2/releases/tag/v1.4.10
+[1.4.9]: https://gitlab.com/ruby-oauth/oauth2/-/compare/v1.4.8...v1.4.9
+[1.4.9t]: https://github.com/ruby-oauth/oauth2/releases/tag/v1.4.9
+[1.4.8]: https://gitlab.com/ruby-oauth/oauth2/-/compare/v1.4.7...v1.4.8
+[1.4.8t]: https://github.com/ruby-oauth/oauth2/releases/tag/v1.4.8
+[1.4.7]: https://gitlab.com/ruby-oauth/oauth2/-/compare/v1.4.6...v1.4.7
+[1.4.7t]: https://github.com/ruby-oauth/oauth2/releases/tag/v1.4.7
+[1.4.6]: https://gitlab.com/ruby-oauth/oauth2/-/compare/v1.4.5...v1.4.6
+[1.4.6t]: https://github.com/ruby-oauth/oauth2/releases/tag/v1.4.6
+[1.4.5]: https://gitlab.com/ruby-oauth/oauth2/-/compare/v1.4.4...v1.4.5
+[1.4.5t]: https://github.com/ruby-oauth/oauth2/releases/tag/v1.4.5
+[1.4.4]: https://gitlab.com/ruby-oauth/oauth2/-/compare/v1.4.3...v1.4.4
+[1.4.4t]: https://github.com/ruby-oauth/oauth2/releases/tag/v1.4.4
+[1.4.3]: https://gitlab.com/ruby-oauth/oauth2/-/compare/v1.4.2...v1.4.3
+[1.4.3t]: https://github.com/ruby-oauth/oauth2/releases/tag/v1.4.3
+[1.4.2]: https://gitlab.com/ruby-oauth/oauth2/-/compare/v1.4.1...v1.4.2
+[1.4.2t]: https://github.com/ruby-oauth/oauth2/releases/tag/v1.4.2
+[1.4.1]: https://gitlab.com/ruby-oauth/oauth2/-/compare/v1.4.0...v1.4.1
+[1.4.1t]: https://github.com/ruby-oauth/oauth2/releases/tag/v1.4.1
+[1.4.0]: https://gitlab.com/ruby-oauth/oauth2/-/compare/v1.3.1...v1.4.0
+[1.4.0t]: https://github.com/ruby-oauth/oauth2/releases/tag/v1.4.0
+[1.3.1]: https://gitlab.com/ruby-oauth/oauth2/-/compare/v1.3.0...v1.3.1
+[1.3.1t]: https://github.com/ruby-oauth/oauth2/releases/tag/v1.3.1
+[1.3.0]: https://gitlab.com/ruby-oauth/oauth2/-/compare/v1.2.0...v1.3.0
+[1.3.0t]: https://github.com/ruby-oauth/oauth2/releases/tag/v1.3.0
+[1.2.0]: https://gitlab.com/ruby-oauth/oauth2/-/compare/v1.1.0...v1.2.0
+[1.2.0t]: https://github.com/ruby-oauth/oauth2/releases/tag/v1.2.0
+[1.1.0]: https://gitlab.com/ruby-oauth/oauth2/-/compare/v1.0.0...v1.1.0
+[1.1.0t]: https://github.com/ruby-oauth/oauth2/releases/tag/v1.1.0
+[1.0.0]: https://gitlab.com/ruby-oauth/oauth2/-/compare/v0.9.4...v1.0.0
+[1.0.0t]: https://github.com/ruby-oauth/oauth2/releases/tag/v1.0.0
+[0.5.0]: https://gitlab.com/ruby-oauth/oauth2/-/compare/v0.4.1...v0.5.0
+[0.5.0t]: https://github.com/ruby-oauth/oauth2/releases/tag/v0.5.0
+[0.4.1]: https://gitlab.com/ruby-oauth/oauth2/-/compare/v0.4.0...v0.4.1
+[0.4.1t]: https://github.com/ruby-oauth/oauth2/releases/tag/v0.4.1
+[0.4.0]: https://gitlab.com/ruby-oauth/oauth2/-/compare/v0.3.0...v0.4.0
+[0.4.0t]: https://github.com/ruby-oauth/oauth2/releases/tag/v0.4.0
+[0.3.0]: https://gitlab.com/ruby-oauth/oauth2/-/compare/v0.2.0...v0.3.0
+[0.3.0t]: https://github.com/ruby-oauth/oauth2/releases/tag/v0.3.0
+[0.2.0]: https://gitlab.com/ruby-oauth/oauth2/-/compare/v0.1.1...v0.2.0
+[0.2.0t]: https://github.com/ruby-oauth/oauth2/releases/tag/v0.2.0
+[0.1.1]: https://gitlab.com/ruby-oauth/oauth2/-/compare/v0.1.0...v0.1.1
+[0.1.1t]: https://github.com/ruby-oauth/oauth2/releases/tag/v0.1.1
+[0.1.0]: https://gitlab.com/ruby-oauth/oauth2/-/compare/v0.0.13...v0.1.0
+[0.1.0t]: https://github.com/ruby-oauth/oauth2/releases/tag/v0.1.0
+[0.0.13]: https://gitlab.com/ruby-oauth/oauth2/-/compare/v0.0.12...v0.0.13
+[0.0.13t]: https://github.com/ruby-oauth/oauth2/releases/tag/v0.0.13
+[0.0.12]: https://gitlab.com/ruby-oauth/oauth2/-/compare/v0.0.11...v0.0.12
+[0.0.12t]: https://github.com/ruby-oauth/oauth2/releases/tag/v0.0.12
+[0.0.11]: https://gitlab.com/ruby-oauth/oauth2/-/compare/v0.0.10...v0.0.11
+[0.0.11t]: https://github.com/ruby-oauth/oauth2/releases/tag/v0.0.11
+[0.0.10]: https://gitlab.com/ruby-oauth/oauth2/-/compare/v0.0.9...v0.0.10
+[0.0.10t]: https://github.com/ruby-oauth/oauth2/releases/tag/v0.0.10
+[0.0.9]: https://gitlab.com/ruby-oauth/oauth2/-/compare/v0.0.8...v0.0.9
+[0.0.9t]: https://github.com/ruby-oauth/oauth2/releases/tag/v0.0.9
+[0.0.8]: https://gitlab.com/ruby-oauth/oauth2/-/compare/v0.0.7...v0.0.8
+[0.0.8t]: https://github.com/ruby-oauth/oauth2/releases/tag/v0.0.8
+[0.0.7]: https://gitlab.com/ruby-oauth/oauth2/-/compare/v0.0.6...v0.0.7
+[0.0.7t]: https://github.com/ruby-oauth/oauth2/releases/tag/v0.0.7
+[0.0.6]: https://gitlab.com/ruby-oauth/oauth2/-/compare/v0.0.5...v0.0.6
+[0.0.6t]: https://github.com/ruby-oauth/oauth2/releases/tag/v0.0.6
+[0.0.5]: https://gitlab.com/ruby-oauth/oauth2/-/compare/v0.0.4...v0.0.5
+[0.0.5t]: https://github.com/ruby-oauth/oauth2/releases/tag/v0.0.5
+[0.0.4]: https://gitlab.com/ruby-oauth/oauth2/-/compare/v0.0.3...v0.0.4
+[0.0.4t]: https://github.com/ruby-oauth/oauth2/releases/tag/v0.0.4
+[0.0.3]: https://gitlab.com/ruby-oauth/oauth2/-/compare/v0.0.2...v0.0.3
+[0.0.3t]: https://github.com/ruby-oauth/oauth2/releases/tag/v0.0.3
+[0.0.2]: https://gitlab.com/ruby-oauth/oauth2/-/compare/v0.0.1...v0.0.2
+[0.0.2t]: https://github.com/ruby-oauth/oauth2/releases/tag/v0.0.2
+[0.0.1]: https://github.com/ruby-oauth/oauth2/compare/311d9f4...v0.0.1
+[0.0.1t]: https://github.com/ruby-oauth/oauth2/releases/tag/v0.0.1
diff --git a/Gemfile.lock b/Gemfile.lock
index b5941c10..8f4b5353 100644
--- a/Gemfile.lock
+++ b/Gemfile.lock
@@ -13,7 +13,7 @@ GIT
PATH
remote: .
specs:
- oauth2 (2.0.13)
+ oauth2 (2.0.14)
faraday (>= 0.17.3, < 4.0)
jwt (>= 1.0, < 4.0)
logger (~> 1.2)
@@ -100,7 +100,7 @@ GEM
json (2.13.2)
jwt (3.1.2)
base64
- kettle-dev (1.0.23)
+ kettle-dev (1.0.24)
appraisal2 (~> 3.0)
bundler-audit (~> 0.9.2)
gitmoji-regex (~> 1.0, >= 1.0.3)
@@ -334,7 +334,7 @@ DEPENDENCIES
benchmark (~> 0.4, >= 0.4.1)
debug (>= 1.0.0)
gem_bench (~> 2.0, >= 2.0.5)
- kettle-dev (~> 1.0, >= 1.0.23)
+ kettle-dev (~> 1.0, >= 1.0.24)
kettle-soup-cover (~> 1.0, >= 1.0.10)
kramdown (~> 2.5, >= 2.5.1)
kramdown-parser-gfm (~> 1.1)
diff --git a/README.md b/README.md
index 40ec87b4..f7c2449c 100644
--- a/README.md
+++ b/README.md
@@ -1337,7 +1337,7 @@ Thanks for RTFM. ☺️
[🚂maint-contact-img]: https://img.shields.io/badge/Contact-Maintainer-0093D0.svg?style=flat&logo=rubyonrails&logoColor=red
[💖🖇linkedin]: http://www.linkedin.com/in/peterboling
[💖🖇linkedin-img]: https://img.shields.io/badge/PeterBoling-LinkedIn-0B66C2?style=flat&logo=newjapanprowrestling
-[💖✌️wellfound]: https://wellfound.com/u/peter-boling/u/peter-boling
+[💖✌️wellfound]: https://wellfound.com/u/peter-boling
[💖✌️wellfound-img]: https://img.shields.io/badge/peter--boling-orange?style=flat&logo=wellfound
[💖💲crunchbase]: https://www.crunchbase.com/person/peter-boling
[💖💲crunchbase-img]: https://img.shields.io/badge/peter--boling-purple?style=flat&logo=crunchbase
diff --git a/Rakefile b/Rakefile
index 89411e7e..249ef930 100644
--- a/Rakefile
+++ b/Rakefile
@@ -1,6 +1,6 @@
# frozen_string_literal: true
-# kettle-dev Rakefile v1.0.23 - 2025-08-30
+# kettle-dev Rakefile v1.0.24 - 2025-08-31
# Ruby 2.3 (Safe Navigation) or higher required
#
# MIT License (see License.txt)
diff --git a/docs/OAuth2.html b/docs/OAuth2.html
index c86bff71..ccec48b0 100644
--- a/docs/OAuth2.html
+++ b/docs/OAuth2.html
@@ -415,7 +415,7 @@
LICENSE
- CITATION
-
-
- oauth2-2.0.10.gem
-
-
- oauth2-2.0.11.gem
-
-
- oauth2-2.0.12.gem
-
-
- oauth2-2.0.13.gem
-
-
- oauth2-2.0.10.gem
-
-
- oauth2-2.0.11.gem
-
-
- oauth2-2.0.12.gem
-
-
- oauth2-2.0.13.gem
-
-
- REEK
-
-
- access_token
-
-
- authenticator
-
-
- client
-
-
- error
-
-
- filtered_attributes
-
-
- response
-
-
- strategy
-
-
- version
-
-
- oauth2
-
-
@@ -366,7 +309,7 @@ Namespace Listing A-Z
diff --git a/docs/file.CHANGELOG.html b/docs/file.CHANGELOG.html
index 61e1d9ba..779c63b6 100644
--- a/docs/file.CHANGELOG.html
+++ b/docs/file.CHANGELOG.html
@@ -58,19 +58,45 @@
Changelog
+
+

+
All notable changes to this project will be documented in this file.
-
The format (since v2) is based on Keep a Changelog
-and this project adheres to Semantic Versioning.
+
The format is based on Keep a Changelog,
+and this project adheres to Semantic Versioning,
+and yes, platform and engine support are part of the public API.
+Please file a bug if you notice a violation of semantic versioning.
-
Unreleased
+
Unreleased
Added
+
Changed
+
Deprecated
+
Removed
+
Fixed
+
Security
+
+
+2.0.14 - 2025-08-31
+ - TAG: v2.0.14
+
+ - COVERAGE: 100.00% – 519/519 lines in 14 files
+ - BRANCH COVERAGE: 100.00% – 174/174 branches in 14 files
+ - 90.48% documented
+
Added
+
- improved documentation by @pboling
- - Document Mutual TLS (mTLS) usage with example in README (connection_opts.ssl client_cert/client_key and auth_scheme: :tls_client_auth)
- - Document usage of flat query params using Faraday::FlatParamsEncoder, with example URI, in README
- - Spec: verify flat params are preserved with Faraday::FlatParamsEncoder (skips on Faraday without FlatParamsEncoder)
- - documentation notes in code comments and README highlighting OAuth 2.1 differences, with references, such as:
+
-
+gh665 - Document Mutual TLS (mTLS) usage with example in README (connection_opts.ssl client_cert/client_key and auth_scheme: :tls_client_auth) by @pboling
+ -
+gh666 - Document usage of flat query params using Faraday::FlatParamsEncoder, with example URI, in README by @pboling
+
+ - Spec: verify flat params are preserved with Faraday::FlatParamsEncoder (skips on Faraday without FlatParamsEncoder)
+
+
+ -
+gh662 - documentation notes in code comments and README highlighting OAuth 2.1 differences, with references, such as: by @pboling
- PKCE required for auth code,
- exact redirect URI match,
@@ -80,18 +106,14 @@ Added
- simplified client definitions)
- - document how to implement an OIDC client with this gem in OIDC.md
+
-
+gh663 - document how to implement an OIDC client with this gem in OIDC.md by @pboling
- also, list libraries built on top of the oauth2 gem that implement OIDC
- - README: Add example for JHipster UAA (Spring Cloud) password grant, converted from Postman/Net::HTTP
-
Changed
- Deprecated
- Removed
- Fixed
- Security
-
+ -
+gh664 - README: Add example for JHipster UAA (Spring Cloud) password grant, converted from Postman/Net::HTTP by @pboling
@@ -102,7 +124,7 @@
COVERAGE: 100.00% – 519/519 lines in 14 files
BRANCH COVERAGE: 100.00% – 174/174 branches in 14 files
90.48% documented
- Added
+ Added
gh656 - Support revocation with URL-encoded parameters
@@ -137,7 +159,7 @@
Line Coverage: 100.0% (520 / 520)
Branch Coverage: 100.0% (174 / 174)
80.00% documented
- Added
+ Added
gh652 - Support IETF rfc7515 JSON Web Signature - JWS by @mridang
@@ -172,7 +194,7 @@
COVERAGE: 100.00% – 518/518 lines in 14 files
BRANCH COVERAGE: 100.00% – 172/172 branches in 14 files
80.00% documented
- Added
+ Added
gh651 - :snaky_hash_klass option (@pboling)
@@ -234,7 +256,7 @@
COVERAGE: 100.00% – 518/518 lines in 14 files
BRANCH COVERAGE: 100.00% – 170/170 branches in 14 files
79.05% documented
- Added
+ Added
gh!632 - Added funding.yml (@Aboling0)
@@ -377,7 +399,7 @@
2.0.9 - 2022-09-16
- TAG: v2.0.9
-
Added
+ Added
- More specs (@pboling)
Changed
@@ -396,7 +418,7 @@ Changed
!630 - Extract snaky_hash to external dependency (@pboling)
-
!630 - Extract snaky_hash to external dependency (@pboling)
-
Added
+ Added
-
!631 - New global configuration option OAuth2.config.silence_extra_tokens_warning (default: false) fixes #628
@@ -410,7 +432,7 @@
2.0.7 - 2022-08-22
- TAG: v2.0.7
-
Added
+ Added
-
!629 - Allow POST of JSON to get token (@pboling, @terracatta)
@@ -489,7 +511,7 @@
2.0.3 - 2022-06-28
- TAG: v2.0.3
-
Added
+ Added
-
!611 - Proper deprecation warnings for
extract_access_token argument (@pboling)
@@ -535,7 +557,7 @@
2.0.1 - 2022-06-22
- TAG: v2.0.1
-
Added
+ Added
- Documentation improvements (@pboling)
- Increased test coverage to 99% (@pboling)
@@ -545,7 +567,7 @@
2.0.0 - 2022-06-21
- TAG: v2.0.0
-
Added
+ Added
-
!158, !344 - Optionally pass raw response to parsers (@niels)
@@ -1086,7 +1108,7 @@
1.0.0 - 2014-07-09
- TAG: v1.0.0
-
Added
+ Added
- Add an implementation of the MAC token spec.
Fixed
@@ -1248,7 +1270,7 @@
diff --git a/docs/file.CITATION.html b/docs/file.CITATION.html
index 571eccfa..23e11a4e 100644
--- a/docs/file.CITATION.html
+++ b/docs/file.CITATION.html
@@ -82,7 +82,7 @@
diff --git a/docs/file.CODE_OF_CONDUCT.html b/docs/file.CODE_OF_CONDUCT.html
index b68c6647..26a942ff 100644
--- a/docs/file.CODE_OF_CONDUCT.html
+++ b/docs/file.CODE_OF_CONDUCT.html
@@ -191,7 +191,7 @@ Attribution
diff --git a/docs/file.CONTRIBUTING.html b/docs/file.CONTRIBUTING.html
index 33182acd..6ef3587f 100644
--- a/docs/file.CONTRIBUTING.html
+++ b/docs/file.CONTRIBUTING.html
@@ -274,7 +274,7 @@ Manual process
diff --git a/docs/file.FUNDING.html b/docs/file.FUNDING.html
index 60c5082a..1fedcb50 100644
--- a/docs/file.FUNDING.html
+++ b/docs/file.FUNDING.html
@@ -104,7 +104,7 @@ Another Way to Support Open
diff --git a/docs/file.LICENSE.html b/docs/file.LICENSE.html
index 0cecdb01..480f4c6e 100644
--- a/docs/file.LICENSE.html
+++ b/docs/file.LICENSE.html
@@ -60,7 +60,7 @@
MIT License
Copyright (c) 2017-2025 Peter H. Boling, of Galtzo.com, and oauth2 contributors
Copyright (c) 2011-2013 Michael Bleigh and Intridea, Inc.
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
diff --git a/docs/file.OIDC.html b/docs/file.OIDC.html
index e6c66e82..5e3a8840 100644
--- a/docs/file.OIDC.html
+++ b/docs/file.OIDC.html
@@ -247,7 +247,7 @@ Raw OIDC with ruby-oauth/oauth2
diff --git a/docs/file.README.html b/docs/file.README.html
index 893af48b..f5091b9a 100644
--- a/docs/file.README.html
+++ b/docs/file.README.html
@@ -199,7 +199,7 @@ 💡 Info you can shake a stick at
... 💖 |
- 🧊 🐙 🛖 🧪
+ 🧊 🐙 🛖 🧪
|
@@ -1322,7 +1322,7 @@ 🔐 Security
🤝 Contributing
If you need some ideas of where to help, you could work on adding more code coverage,
-or if it is already 💯 (see below) check reek, issues, or PRs,
+or if it is already 💯 (see below) check reek, issues, or PRs,
or use the gem and think about how it could be better.
We
so if you make changes, remember to update it.
@@ -1468,7 +1468,7 @@ Please give the project a star ⭐ ♥
diff --git a/docs/file.REEK.html b/docs/file.REEK.html
index b064d230..8c73688c 100644
--- a/docs/file.REEK.html
+++ b/docs/file.REEK.html
@@ -61,7 +61,7 @@
diff --git a/docs/file.RUBOCOP.html b/docs/file.RUBOCOP.html
index ee1b3370..d38c64b7 100644
--- a/docs/file.RUBOCOP.html
+++ b/docs/file.RUBOCOP.html
@@ -161,7 +161,7 @@ Benefits of rubocop_gradual
diff --git a/docs/file.SECURITY.html b/docs/file.SECURITY.html
index 53ad1d22..6c1acc92 100644
--- a/docs/file.SECURITY.html
+++ b/docs/file.SECURITY.html
@@ -113,7 +113,7 @@ Enterprise Support
diff --git a/docs/file.access_token.html b/docs/file.access_token.html
index e947e9b5..7f015385 100644
--- a/docs/file.access_token.html
+++ b/docs/file.access_token.html
@@ -84,7 +84,7 @@
diff --git a/docs/file.authenticator.html b/docs/file.authenticator.html
index b55ae39b..18932761 100644
--- a/docs/file.authenticator.html
+++ b/docs/file.authenticator.html
@@ -81,7 +81,7 @@
diff --git a/docs/file.client.html b/docs/file.client.html
index 0b92d6ca..47d73f54 100644
--- a/docs/file.client.html
+++ b/docs/file.client.html
@@ -111,7 +111,7 @@
diff --git a/docs/file.error.html b/docs/file.error.html
index 8548b09b..c78eeb6f 100644
--- a/docs/file.error.html
+++ b/docs/file.error.html
@@ -68,7 +68,7 @@
diff --git a/docs/file.filtered_attributes.html b/docs/file.filtered_attributes.html
index 83557a79..43abd8b3 100644
--- a/docs/file.filtered_attributes.html
+++ b/docs/file.filtered_attributes.html
@@ -66,7 +66,7 @@
diff --git a/docs/file.oauth2-2.0.10.gem.html b/docs/file.oauth2-2.0.10.gem.html
index 2ffc9eda..7dc04858 100644
--- a/docs/file.oauth2-2.0.10.gem.html
+++ b/docs/file.oauth2-2.0.10.gem.html
@@ -61,7 +61,7 @@
diff --git a/docs/file.oauth2-2.0.11.gem.html b/docs/file.oauth2-2.0.11.gem.html
index da2c6757..f72382ae 100644
--- a/docs/file.oauth2-2.0.11.gem.html
+++ b/docs/file.oauth2-2.0.11.gem.html
@@ -61,7 +61,7 @@
diff --git a/docs/file.oauth2-2.0.12.gem.html b/docs/file.oauth2-2.0.12.gem.html
index 340caa14..a60110e6 100644
--- a/docs/file.oauth2-2.0.12.gem.html
+++ b/docs/file.oauth2-2.0.12.gem.html
@@ -61,7 +61,7 @@
diff --git a/docs/file.oauth2-2.0.13.gem.html b/docs/file.oauth2-2.0.13.gem.html
index d18bc2e8..22904708 100644
--- a/docs/file.oauth2-2.0.13.gem.html
+++ b/docs/file.oauth2-2.0.13.gem.html
@@ -61,7 +61,7 @@
diff --git a/docs/file.oauth2.html b/docs/file.oauth2.html
index 4f8019ea..4ee5fc0e 100644
--- a/docs/file.oauth2.html
+++ b/docs/file.oauth2.html
@@ -69,7 +69,7 @@
diff --git a/docs/file.response.html b/docs/file.response.html
index e148314f..d74ce57a 100644
--- a/docs/file.response.html
+++ b/docs/file.response.html
@@ -77,7 +77,7 @@
diff --git a/docs/file.strategy.html b/docs/file.strategy.html
index 1bda5575..1dcb6081 100644
--- a/docs/file.strategy.html
+++ b/docs/file.strategy.html
@@ -93,7 +93,7 @@
diff --git a/docs/file.version.html b/docs/file.version.html
index 59dd25c8..fb5f4ee1 100644
--- a/docs/file.version.html
+++ b/docs/file.version.html
@@ -65,7 +65,7 @@
diff --git a/docs/file_list.html b/docs/file_list.html
index 4f34dca7..62595c8f 100644
--- a/docs/file_list.html
+++ b/docs/file_list.html
@@ -92,101 +92,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/docs/index.html b/docs/index.html
index 9230e816..8a05c08b 100644
--- a/docs/index.html
+++ b/docs/index.html
@@ -199,7 +199,7 @@ 💡 Info you can shake a stick at
... 💖 |
- 🧊 🐙 🛖 🧪
+ 🧊 🐙 🛖 🧪
|
@@ -1322,7 +1322,7 @@ 🔐 Security
🤝 Contributing
If you need some ideas of where to help, you could work on adding more code coverage,
-or if it is already 💯 (see below) check reek, issues, or PRs,
+or if it is already 💯 (see below) check reek, issues, or PRs,
or use the gem and think about how it could be better.
We
so if you make changes, remember to update it.
@@ -1468,7 +1468,7 @@ Please give the project a star ⭐ ♥
diff --git a/docs/top-level-namespace.html b/docs/top-level-namespace.html
index 804b5068..c67c53bc 100644
--- a/docs/top-level-namespace.html
+++ b/docs/top-level-namespace.html
@@ -100,7 +100,7 @@ Defined Under Namespace
diff --git a/lib/oauth2/version.rb b/lib/oauth2/version.rb
index e1b505eb..201418e0 100644
--- a/lib/oauth2/version.rb
+++ b/lib/oauth2/version.rb
@@ -2,6 +2,6 @@
module OAuth2
module Version
- VERSION = "2.0.13"
+ VERSION = "2.0.14"
end
end
diff --git a/oauth2.gemspec b/oauth2.gemspec
index eeeea00e..9c8bf0c8 100644
--- a/oauth2.gemspec
+++ b/oauth2.gemspec
@@ -151,7 +151,7 @@ Thanks, @pboling / @galtzo
# Dev, Test, & Release Tasks
spec.add_development_dependency("addressable", "~> 2.8", ">= 2.8.7") # ruby >= 2.2
spec.add_development_dependency("backports", "~> 3.25", ">= 3.25.1") # ruby >= 0
- spec.add_development_dependency("kettle-dev", "~> 1.0", ">= 1.0.23") # ruby >= 2.3
+ spec.add_development_dependency("kettle-dev", "~> 1.0", ">= 1.0.24") # ruby >= 2.3
spec.add_development_dependency("nkf", "~> 0.2") # ruby >= 2.3
spec.add_development_dependency("rexml", "~> 3.2", ">= 3.2.5") # ruby >= 0
end