Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package rubygem-json-jwt for
openSUSE:Factory checked in at 2022-09-03 23:18:47
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/rubygem-json-jwt (Old)
and /work/SRC/openSUSE:Factory/.rubygem-json-jwt.new.2083 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "rubygem-json-jwt"
Sat Sep 3 23:18:47 2022 rev:9 rq:1000910 version:1.15.3
Changes:
--------
--- /work/SRC/openSUSE:Factory/rubygem-json-jwt/rubygem-json-jwt.changes
2022-08-09 15:26:48.457360360 +0200
+++
/work/SRC/openSUSE:Factory/.rubygem-json-jwt.new.2083/rubygem-json-jwt.changes
2022-09-03 23:18:57.223795919 +0200
@@ -1,0 +2,6 @@
+Mon Aug 29 06:52:06 UTC 2022 - Stephan Kulow <[email protected]>
+
+updated to version 1.15.3
+ no changelog found
+
+-------------------------------------------------------------------
Old:
----
json-jwt-1.14.0.gem
New:
----
json-jwt-1.15.3.gem
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ rubygem-json-jwt.spec ++++++
--- /var/tmp/diff_new_pack.fQEAWO/_old 2022-09-03 23:18:58.415799035 +0200
+++ /var/tmp/diff_new_pack.fQEAWO/_new 2022-09-03 23:18:58.419799045 +0200
@@ -24,7 +24,7 @@
#
Name: rubygem-json-jwt
-Version: 1.14.0
+Version: 1.15.3
Release: 0
%define mod_name json-jwt
%define mod_full_name %{mod_name}-%{version}
++++++ json-jwt-1.14.0.gem -> json-jwt-1.15.3.gem ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/.github/workflows/test_ruby.yml
new/.github/workflows/test_ruby.yml
--- old/.github/workflows/test_ruby.yml 1970-01-01 01:00:00.000000000 +0100
+++ new/.github/workflows/test_ruby.yml 2022-08-18 07:49:42.000000000 +0200
@@ -0,0 +1,30 @@
+name: Test Ruby
+
+on:
+ push:
+ pull_request:
+
+permissions:
+ contents: read
+
+jobs:
+ test:
+ strategy:
+ matrix:
+ os: ['ubuntu-20.04']
+ ruby-version: ['2.6', '2.7', '3.0', '3.1']
+ # ubuntu 22.04 only supports ssl 3 and thus only ruby 3.1
+ include:
+ - os: 'ubuntu-22.04'
+ ruby-version: '3.1'
+ runs-on: ${{ matrix.os }}
+
+ steps:
+ - uses: actions/checkout@v3
+ - name: Set up Ruby
+ uses: ruby/setup-ruby@v1
+ with:
+ ruby-version: ${{ matrix.ruby-version }}
+ bundler-cache: true
+ - name: Run tests
+ run: bundle exec rake
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/.travis.yml new/.travis.yml
--- old/.travis.yml 2022-07-09 11:30:48.000000000 +0200
+++ new/.travis.yml 2022-08-18 07:49:42.000000000 +0200
@@ -3,10 +3,10 @@
- git submodule update --init --recursive
rvm:
- - 2.5.8
- - 2.6.6
- - 2.7.2
- - 3.0.2
+ - 2.6.10
+ - 2.7.6
+ - 3.0.4
+ - 3.1.2
jdk:
- openjdk11
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/README.md new/README.md
--- old/README.md 2022-07-09 11:30:48.000000000 +0200
+++ new/README.md 2022-08-18 07:49:42.000000000 +0200
@@ -49,6 +49,17 @@
JSON::JWT.decode(input, public_key)
```
+If you need to get a JWK from `jwks_uri` of OpenID Connect IdP, you can use
`JSON::JWK::Set::Fetcher` to fetch (& optionally cache) it.
+
+```ruby
+# JWK Set Fetching & Caching
+# NOTE: Optionally by setting cache instance, JWKs are cached by kid.
+JSON::JWK::Set::Fetcher.cache = Rails.cache
+
+JSON::JWK::Set::Fetcher.fetch(jwks_uri, kid: kid)
+# => returns JSON::JWK instance or raise JSON::JWK::Set::KidNotFound
+```
+
For more details, read [Documentation
Wiki](https://github.com/nov/json-jwt/wiki).
## Note on Patches/Pull Requests
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/VERSION new/VERSION
--- old/VERSION 2022-07-09 11:30:48.000000000 +0200
+++ new/VERSION 2022-08-18 07:49:42.000000000 +0200
@@ -1 +1 @@
-1.14.0
\ No newline at end of file
+1.15.3
\ No newline at end of file
Binary files old/checksums.yaml.gz and new/checksums.yaml.gz differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/json-jwt.gemspec new/json-jwt.gemspec
--- old/json-jwt.gemspec 2022-07-09 11:30:48.000000000 +0200
+++ new/json-jwt.gemspec 2022-08-18 07:49:42.000000000 +0200
@@ -16,8 +16,10 @@
gem.add_runtime_dependency 'activesupport', '>= 4.2'
gem.add_runtime_dependency 'bindata'
gem.add_runtime_dependency 'aes_key_wrap'
+ gem.add_runtime_dependency 'httpclient'
gem.add_development_dependency 'rake'
gem.add_development_dependency 'simplecov'
+ gem.add_development_dependency 'webmock'
gem.add_development_dependency 'rspec'
gem.add_development_dependency 'rspec-its'
end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/lib/json/jose.rb new/lib/json/jose.rb
--- old/lib/json/jose.rb 2022-07-09 11:30:48.000000000 +0200
+++ new/lib/json/jose.rb 2022-08-18 07:49:42.000000000 +0200
@@ -26,9 +26,7 @@
when JSON::JWK
key.to_key
when JSON::JWK::Set
- key.detect do |jwk|
- jwk[:kid] && jwk[:kid] == kid
- end&.to_key or raise JWK::Set::KidNotFound
+ key[kid]&.to_key or raise JWK::Set::KidNotFound
else
key
end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/lib/json/jwk/set/fetcher/debugger/request_filter.rb
new/lib/json/jwk/set/fetcher/debugger/request_filter.rb
--- old/lib/json/jwk/set/fetcher/debugger/request_filter.rb 1970-01-01
01:00:00.000000000 +0100
+++ new/lib/json/jwk/set/fetcher/debugger/request_filter.rb 2022-08-18
07:49:42.000000000 +0200
@@ -0,0 +1,34 @@
+module JSON
+ class JWK
+ class Set
+ module Fetcher
+ module Debugger
+ class RequestFilter
+ # Callback called in HTTPClient (before sending a request)
+ # request:: HTTP::Message
+ def filter_request(request)
+ started = "======= [JSON::JWK::Set::Fetcher] HTTP REQUEST
STARTED ======="
+ log started, request.dump
+ end
+
+ # Callback called in HTTPClient (after received a response)
+ # request:: HTTP::Message
+ # response:: HTTP::Message
+ def filter_response(request, response)
+ finished = "======= [JSON::JWK::Set::Fetcher] HTTP REQUEST
FINISHED ======="
+ log '-' * 50, response.dump, finished
+ end
+
+ private
+
+ def log(*outputs)
+ outputs.each do |output|
+ JSON::JWK::Set::Fetcher.logger.info output
+ end
+ end
+ end
+ end
+ end
+ end
+ end
+end
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/lib/json/jwk/set/fetcher.rb
new/lib/json/jwk/set/fetcher.rb
--- old/lib/json/jwk/set/fetcher.rb 1970-01-01 01:00:00.000000000 +0100
+++ new/lib/json/jwk/set/fetcher.rb 2022-08-18 07:49:42.000000000 +0200
@@ -0,0 +1,87 @@
+module JSON
+ class JWK
+ class Set
+ module Fetcher
+ class Cache
+ def fetch(cache_key, options = {})
+ yield
+ end
+ end
+
+ def self.logger
+ @@logger
+ end
+ def self.logger=(logger)
+ @@logger = logger
+ end
+ self.logger = Logger.new(STDOUT)
+ self.logger.progname = 'JSON::JWK::Set::Fetcher'
+
+ def self.debugging?
+ @@debugging
+ end
+ def self.debugging=(boolean)
+ @@debugging = boolean
+ end
+ def self.debug!
+ self.debugging = true
+ end
+ def self.debug(&block)
+ original = self.debugging?
+ debug!
+ yield
+ ensure
+ self.debugging = original
+ end
+ self.debugging = false
+
+ def self.http_client
+ _http_client_ = HTTPClient.new(
+ agent_name: "JSON::JWK::Set::Fetcher (#{JSON::JWT::VERSION})"
+ )
+
+ # NOTE: httpclient gem seems stopped maintaining root certtificate
set, use OS default.
+ _http_client_.ssl_config.clear_cert_store
+ _http_client_.ssl_config.cert_store.set_default_paths
+
+ _http_client_.request_filter << Debugger::RequestFilter.new if
debugging?
+ http_config.try(:call, _http_client_)
+ _http_client_
+ end
+ def self.http_config(&block)
+ @@http_config ||= block
+ end
+
+ def self.cache=(cache)
+ @@cache = cache
+ end
+ def self.cache
+ @@cache
+ end
+ self.cache = Cache.new
+
+ def self.fetch(jwks_uri, kid:, auto_detect: true, **options)
+ cache_key = [
+ 'json:jwk:set',
+ OpenSSL::Digest::MD5.hexdigest(jwks_uri),
+ kid
+ ].collect(&:to_s).join(':')
+
+ jwks = Set.new(
+ JSON.parse(
+ cache.fetch(cache_key, options) do
+ http_client.get_content(jwks_uri)
+ end
+ )
+ )
+
+ if auto_detect
+ jwks[kid] or raise KidNotFound
+ else
+ jwks
+ end
+ end
+ end
+ end
+ end
+end
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/lib/json/jwk/set.rb new/lib/json/jwk/set.rb
--- old/lib/json/jwk/set.rb 2022-07-09 11:30:48.000000000 +0200
+++ new/lib/json/jwk/set.rb 2022-08-18 07:49:42.000000000 +0200
@@ -19,6 +19,12 @@
'application/jwk-set+json'
end
+ def [](kid)
+ detect do |jwk|
+ jwk[:kid] && jwk[:kid] == kid
+ end
+ end
+
def as_json(options = {})
# NOTE: Array.new wrapper is requied to avoid CircularReferenceError
{keys: Array.new(self)}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/lib/json/jwt.rb new/lib/json/jwt.rb
--- old/lib/json/jwt.rb 2022-07-09 11:30:48.000000000 +0200
+++ new/lib/json/jwt.rb 2022-08-18 07:49:42.000000000 +0200
@@ -1,11 +1,16 @@
require 'openssl'
require 'base64'
+require 'httpclient'
require 'active_support'
require 'active_support/core_ext'
require 'json/jose'
module JSON
class JWT < ActiveSupport::HashWithIndifferentAccess
+ VERSION = ::File.read(
+ ::File.join(::File.dirname(__FILE__), '../../VERSION')
+ ).chomp
+
attr_accessor :blank_payload
attr_accessor :signature
@@ -132,3 +137,5 @@
require 'json/jwk'
require 'json/jwk/jwkizable'
require 'json/jwk/set'
+require 'json/jwk/set/fetcher'
+require 'json/jwk/set/fetcher/debugger/request_filter'
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/metadata new/metadata
--- old/metadata 2022-07-09 11:30:48.000000000 +0200
+++ new/metadata 2022-08-18 07:49:42.000000000 +0200
@@ -1,14 +1,14 @@
--- !ruby/object:Gem::Specification
name: json-jwt
version: !ruby/object:Gem::Version
- version: 1.14.0
+ version: 1.15.3
platform: ruby
authors:
- nov matake
autorequire:
bindir: bin
cert_chain: []
-date: 2022-07-09 00:00:00.000000000 Z
+date: 2022-08-18 00:00:00.000000000 Z
dependencies:
- !ruby/object:Gem::Dependency
name: activesupport
@@ -53,6 +53,20 @@
- !ruby/object:Gem::Version
version: '0'
- !ruby/object:Gem::Dependency
+ name: httpclient
+ requirement: !ruby/object:Gem::Requirement
+ requirements:
+ - - ">="
+ - !ruby/object:Gem::Version
+ version: '0'
+ type: :runtime
+ prerelease: false
+ version_requirements: !ruby/object:Gem::Requirement
+ requirements:
+ - - ">="
+ - !ruby/object:Gem::Version
+ version: '0'
+- !ruby/object:Gem::Dependency
name: rake
requirement: !ruby/object:Gem::Requirement
requirements:
@@ -81,6 +95,20 @@
- !ruby/object:Gem::Version
version: '0'
- !ruby/object:Gem::Dependency
+ name: webmock
+ requirement: !ruby/object:Gem::Requirement
+ requirements:
+ - - ">="
+ - !ruby/object:Gem::Version
+ version: '0'
+ type: :development
+ prerelease: false
+ version_requirements: !ruby/object:Gem::Requirement
+ requirements:
+ - - ">="
+ - !ruby/object:Gem::Version
+ version: '0'
+- !ruby/object:Gem::Dependency
name: rspec
requirement: !ruby/object:Gem::Requirement
requirements:
@@ -117,6 +145,7 @@
extra_rdoc_files: []
files:
- ".github/FUNDING.yml"
+- ".github/workflows/test_ruby.yml"
- ".gitignore"
- ".gitmodules"
- ".rspec"
@@ -132,6 +161,8 @@
- lib/json/jwk.rb
- lib/json/jwk/jwkizable.rb
- lib/json/jwk/set.rb
+- lib/json/jwk/set/fetcher.rb
+- lib/json/jwk/set/fetcher/debugger/request_filter.rb
- lib/json/jws.rb
- lib/json/jwt.rb
homepage: https://github.com/nov/json-jwt