access_token_agent 3.2.1 → 3.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: d5ec0e33d5b8651068da895025676ccabbfb5ee9
4
- data.tar.gz: 8011321f27a7516eca30fcf5f4e5bd0cb3ba42fd
3
+ metadata.gz: 515e66f424f27274679e49bfcbbf7a3aaed85054
4
+ data.tar.gz: 50c9d660e90a2eb12f24a494a9a5006ee8b76261
5
5
  SHA512:
6
- metadata.gz: 387d0a36878d74ae3e1847a194d09fbc928da667eae6ae08e5be695841255484063ce9afb563ccb9fffcb44ed2aa454c61a6f0d33cd1e967465d4bc6722d4758
7
- data.tar.gz: 2ae9d61ea98aa63835a9fc8eb8a434fb42a622660ba9359b7e7f9fc188d66007095a69b87aa880a29609fa4e011fa44bd4c3b2f37744b19a489df0cad9dbc895
6
+ metadata.gz: a1c6a0ba6263f9378ea6b4481748a30f6166cf475872205766a8f63c7fb7b3470d8c240c0caa51850fac61e3929ad5546717aa5f36a522e6c3c44f009300e56c
7
+ data.tar.gz: 310906cd857492000660581b8fe314a417ef7a7fd4cee338da50263f2d62dfb503a1adcf57d02d231b7cdcd54973a69cce9635d3599b14294e24b47160beba4d
data/.rubocop.yml CHANGED
@@ -1,28 +1,34 @@
1
1
  AllCops:
2
- TargetRubyVersion: 2.1
3
2
  Exclude:
3
+ - 'bin/**/*'
4
4
  - 'db/schema.rb'
5
5
  - 'doc/**/*'
6
- - 'Gemfile'
7
- - '*.gemspec'
6
+ - 'docker_app/**/*'
7
+ - 'Guardfile'
8
+ - 'tmp/**/*'
9
+ - 'vendor/**/*'
8
10
 
9
- Style/AsciiComments:
10
- Enabled: false
11
+ # We need to configure exemptions for blocks that we generally accept to be
12
+ # long, since they are less comparable to methods and more comparable to
13
+ # modules/classes.
14
+ Metrics/BlockLength:
15
+ ExcludedMethods:
16
+ - context
17
+ - describe
18
+ - namespace
19
+ Exclude:
20
+ - 'config/environments/*.rb' # instead of excluding all :configure methods
21
+ - 'config/routes.rb'
11
22
 
12
23
  Style/Documentation:
13
24
  Enabled: false
14
25
 
15
- # Encoding comments are not neccessary in all 2.x versions of ruby, since
16
- # UTF-8 has become the default encoding.
17
- Style/Encoding:
18
- EnforcedStyle: never
19
- Enabled: true
20
-
21
26
  # This cop tries to make you use module_funtion instead of extend self
22
27
  # This is bad because both have their own use-case and should not be used
23
28
  # and sometimes cannot be used to do the same thing
24
29
  Style/ModuleFunction:
25
30
  Enabled: false
31
+
26
32
  # While it is very often useful to separate numbers after every three digits
27
33
  # for readability, this mostly doesn't make sense if the number doesn't
28
34
  # represent an amount but rather an identifier. Thus the use of underscores
data/.travis.yml CHANGED
@@ -1,4 +1,9 @@
1
1
  language: ruby
2
2
  script:
3
- - bundle exec rspec
3
+ - bundle exec rspec && codeclimate-test-reporter
4
4
  - bundle exec rubocop
5
+
6
+ addons:
7
+ code_climate:
8
+ repo_token:
9
+ secure: "tsEpSMfYQHfnm5l9zkdksmTcdV/hjq28HsKh7+tXefWbNbMksrzWlonuZsoQSeLx8OdG5dcGREY3JVbWUl8CxILZ/j8rse0CBpW1S/sy7sz7KQEaBgTq+BxJiFyjPibul91X7TcMHVLpo2c2bIM353HJW4Sf0gT5rhbykek2YHXsvHXlDv4dkE/PL0yZylgDi8zC6dXl9IrjsqgPcTwtCAOM2o1+NhNBiyBWJqQyfhv2N72dml3mk8rQ9WszyRhHmIUhHehdgYcbOrydlEclOHwuszIQd0z2wpJ9HMlvQFtmH/muW4XTf/VNu3XaZr1OYwzBZBeC9Ngfoqn/7Bs0p815NrRcKc9oq+hIyjyd6Mj7Asqcs1+JxakzcVdW6Enf3ZL7F7fsmmB4mQkATEcpBv8G4aN3lFkBmIZdx16oyMQWrLPPzsFXgSdARdUczdtgfnAFT3IB311CnT6zxPCL8FBI/KiHK9FXc6FBGv030doIhr3pDUjMkx35VYN5cvixf+oHMYg4/XuoO+HGwdViA/P8gAUGs5bQL5kY6jcYSTsa8KlzKfgUcK1buWblHfTSEKdMOnKRSBvfS9S3VcPt5ZpZ62Cfbqfjn4lPa5UxcOyb3abk3s2ikKbftGUQk8k4qlhednki3yV71xKhpQsiO/ufNCnp6jXAV2p/KoM2QjA="
data/CHANGELOG.md CHANGED
@@ -2,6 +2,10 @@
2
2
 
3
3
  *no unreleased changes*
4
4
 
5
+ ## 3.3.0
6
+
7
+ - Add `instance` accessor to `AccessTokenAgent::Connector`
8
+
5
9
  ## 3.2.1
6
10
 
7
11
  - Use a string as key in HTTP headers, to be compatible with Ruby < 2.3
data/Gemfile CHANGED
@@ -1,4 +1,4 @@
1
- # encoding: UTF-8
1
+
2
2
  source 'https://rubygems.org'
3
3
 
4
4
  # Specify your gem's dependencies in auth_connector.gemspec
data/README.md CHANGED
@@ -1,4 +1,7 @@
1
+ [![Gem Version](https://badge.fury.io/rb/access_token_agent.svg)](https://badge.fury.io/rb/access_token_agent)
1
2
  [![Build Status](https://travis-ci.org/kaeuferportal/access_token_agent.svg?branch=master)](https://travis-ci.org/kaeuferportal/access_token_agent)
3
+ [![Code Climate](https://codeclimate.com/github/kaeuferportal/access_token_agent/badges/gpa.svg)](https://codeclimate.com/github/kaeuferportal/access_token_agent)
4
+ [![Test Coverage](https://codeclimate.com/github/kaeuferportal/access_token_agent/badges/coverage.svg)](https://codeclimate.com/github/kaeuferportal/access_token_agent/coverage)
2
5
 
3
6
  # AccessTokenAgent
4
7
 
@@ -29,30 +32,43 @@ Needs the following parameters to instantiate:
29
32
  * `host` - the server address where the auth provider is running.
30
33
  * `client_id` - the client_id of the application using this gem.
31
34
  * `client_secret` - the client_secret of the application using this gem.
32
- * `access_token_path` - Allows to customize the HTTP path where the
33
- access token needs to be requested.
34
- **Default:** `/oauth/token`
35
35
 
36
36
  Optional parameters:
37
37
 
38
38
  * `fake_auth` - if true, do not connect to the auth service and return
39
39
  a faked access token.
40
+ * `access_token_path` - Allows to customize the HTTP path where the
41
+ access token needs to be requested.
42
+ **Default:** `/oauth/token`
40
43
 
41
44
  ### Example
42
45
 
43
46
  ```ruby
44
- AccessTokenAgent::Connector.new(host: 'https://auth.kaeuferportal.de',
45
- client_id: 'my_client',
46
- client_secret: 'very_secure_and_secret')
47
+ @connector = AccessTokenAgent::Connector.new(host: 'https://auth.kaeuferportal.de',
48
+ client_id: 'my_client',
49
+ client_secret: 'very_secure_and_secret')
50
+ ```
51
+
52
+ ## Sharing a connector
53
+
54
+ When connecting to multiple endpoints you will commonly come across the need
55
+ to share a single instance of a connector in multiple places, because your
56
+ application will use the same configuration everywhere.
57
+
58
+ You can use the convenience accessor `instance` for that:
59
+
60
+ ```ruby
61
+ AccessTokenAgent::Connector.instance = AccessTokenAgent::Connector.new(...)
47
62
  ```
48
63
 
49
64
  ## Usage
50
65
 
51
66
  Setup an AcccessTokenAgent::Connector instance (see Configuration) and call
52
- authenticate on it to receive your access_token.
67
+ `authenticate` on it to receive your access_token.
53
68
 
54
- ```
55
- @access_token_agent.authenticate
69
+ ```ruby
70
+ AccessTokenAgent::Connector.instance.authenticate
71
+ => "XYZ"
56
72
  ```
57
73
 
58
74
  When no valid AccessToken is present a call to authenticate returns one of the
@@ -65,3 +81,12 @@ following:
65
81
  As long as a valid AccessToken is present a call to authenticate simply returns
66
82
  that AccessToken. An AccessToken is valid for a limited time. The exact value is
67
83
  determined by the auth response which contains an `expires_at` parameter.
84
+
85
+ ### As HTTP Header
86
+
87
+ Since the most common use case is to include the access token as [RFC 6750](https://tools.ietf.org/html/rfc6750) bearer token, there is a method that returns the `Authorization: Bearer XYZ` header as hash:
88
+
89
+ ```ruby
90
+ AccessTokenAgent::Connector.instance.http_auth_header
91
+ => { "Authorization" => "Bearer XYZ" }
92
+ ```
@@ -1,5 +1,3 @@
1
- # coding: utf-8
2
-
3
1
  lib = File.expand_path('../lib', __FILE__)
4
2
  $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
5
3
  require 'access_token_agent/version'
@@ -19,10 +17,11 @@ Gem::Specification.new do |s|
19
17
  .reject { |f| f.match(%r{^spec/}) }
20
18
 
21
19
  s.add_development_dependency 'bundler', '~> 1.11'
22
- s.add_development_dependency 'rspec', '~> 3.4'
20
+ s.add_development_dependency 'codeclimate-test-reporter', '~> 1.0'
23
21
  s.add_development_dependency 'pry', '~> 0.10'
24
- s.add_development_dependency 'rubocop', '~> 0.39'
22
+ s.add_development_dependency 'rspec', '~> 3.4'
23
+ s.add_development_dependency 'rubocop', '0.51'
24
+ s.add_development_dependency 'simplecov', '~> 0.11'
25
25
  s.add_development_dependency 'vcr', '~> 3.0'
26
26
  s.add_development_dependency 'webmock', '~> 1.24'
27
- s.add_development_dependency 'simplecov', '~> 0.11'
28
27
  end
@@ -4,6 +4,10 @@ module AccessTokenAgent
4
4
  class Connector
5
5
  FAKE_TOKEN = 'FakeAuthToken'.freeze
6
6
 
7
+ class << self
8
+ attr_accessor :instance
9
+ end
10
+
7
11
  def initialize(host:,
8
12
  client_id:,
9
13
  client_secret:,
@@ -28,7 +32,8 @@ module AccessTokenAgent
28
32
  end
29
33
 
30
34
  def authenticate
31
- warn '[DEPRECATION] `authenticate` is deprecated. Use `token` instead.'
35
+ warn "[DEPRECATION] `#{self.class}.authenticate` is deprecated. " \
36
+ 'Use `token` instead.'
32
37
  token
33
38
  end
34
39
 
@@ -1,3 +1,3 @@
1
1
  module AccessTokenAgent
2
- VERSION = '3.2.1'.freeze
2
+ VERSION = '3.3.0'.freeze
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: access_token_agent
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.2.1
4
+ version: 3.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Beko Käuferportal GmbH
@@ -25,19 +25,19 @@ dependencies:
25
25
  - !ruby/object:Gem::Version
26
26
  version: '1.11'
27
27
  - !ruby/object:Gem::Dependency
28
- name: rspec
28
+ name: codeclimate-test-reporter
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: '3.4'
33
+ version: '1.0'
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: '3.4'
40
+ version: '1.0'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: pry
43
43
  requirement: !ruby/object:Gem::Requirement
@@ -53,61 +53,75 @@ dependencies:
53
53
  - !ruby/object:Gem::Version
54
54
  version: '0.10'
55
55
  - !ruby/object:Gem::Dependency
56
- name: rubocop
56
+ name: rspec
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
59
  - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: '0.39'
61
+ version: '3.4'
62
62
  type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
66
  - - "~>"
67
67
  - !ruby/object:Gem::Version
68
- version: '0.39'
68
+ version: '3.4'
69
69
  - !ruby/object:Gem::Dependency
70
- name: vcr
70
+ name: rubocop
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - '='
74
+ - !ruby/object:Gem::Version
75
+ version: '0.51'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - '='
81
+ - !ruby/object:Gem::Version
82
+ version: '0.51'
83
+ - !ruby/object:Gem::Dependency
84
+ name: simplecov
71
85
  requirement: !ruby/object:Gem::Requirement
72
86
  requirements:
73
87
  - - "~>"
74
88
  - !ruby/object:Gem::Version
75
- version: '3.0'
89
+ version: '0.11'
76
90
  type: :development
77
91
  prerelease: false
78
92
  version_requirements: !ruby/object:Gem::Requirement
79
93
  requirements:
80
94
  - - "~>"
81
95
  - !ruby/object:Gem::Version
82
- version: '3.0'
96
+ version: '0.11'
83
97
  - !ruby/object:Gem::Dependency
84
- name: webmock
98
+ name: vcr
85
99
  requirement: !ruby/object:Gem::Requirement
86
100
  requirements:
87
101
  - - "~>"
88
102
  - !ruby/object:Gem::Version
89
- version: '1.24'
103
+ version: '3.0'
90
104
  type: :development
91
105
  prerelease: false
92
106
  version_requirements: !ruby/object:Gem::Requirement
93
107
  requirements:
94
108
  - - "~>"
95
109
  - !ruby/object:Gem::Version
96
- version: '1.24'
110
+ version: '3.0'
97
111
  - !ruby/object:Gem::Dependency
98
- name: simplecov
112
+ name: webmock
99
113
  requirement: !ruby/object:Gem::Requirement
100
114
  requirements:
101
115
  - - "~>"
102
116
  - !ruby/object:Gem::Version
103
- version: '0.11'
117
+ version: '1.24'
104
118
  type: :development
105
119
  prerelease: false
106
120
  version_requirements: !ruby/object:Gem::Requirement
107
121
  requirements:
108
122
  - - "~>"
109
123
  - !ruby/object:Gem::Version
110
- version: '0.11'
124
+ version: '1.24'
111
125
  description: Retrieves an access token from an OAuth2 providerusing the supplied credentials.
112
126
  email: oss@kaeuferportal.de
113
127
  executables: []