cfoundry_helper 0.3.1 → 0.3.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,15 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 537df23f74bd2092dbf4e29f0c81002251763424
4
- data.tar.gz: 0fc6be2168d5bd780a557dcfaae57d3534285e62
5
- SHA512:
6
- metadata.gz: f8ca889bf78357bfc20032681b658f15c92f76ae961bbe86e041ffa46d0d61e9f8999f908258c3451b0d40ff07cb8fc53da5e24eccb6b2a831f146d49433acd9
7
- data.tar.gz: eb658526e019a09b72161ea95b993170ff5061fc2e31c2e78a76076d473d520a8498136e36076f08229c5c4f81dc4792dc402389ce810674ee78e1f85163970d
2
+ !binary "U0hBMQ==":
3
+ metadata.gz: !binary |-
4
+ MDQ0NGVkYWQzNWEyMzc4ZWI1MWZhOTRmZTMyOTBiYmI0MWQ5ZWE0Ng==
5
+ data.tar.gz: !binary |-
6
+ NWY3NjhhNzA3Njg5YmJmZjY3M2E0M2Y4OTdmZmNiY2Q0MWQzM2ViOQ==
7
+ !binary "U0hBNTEy":
8
+ metadata.gz: !binary |-
9
+ YTgzZTViY2FhMmM0ZjY5YjFhYTMwMjUyNTQ5MTE4YWNlYzRkMzZhOTJkYWNh
10
+ NzI4MTgwNTYzMDNkZDFiNGJmYmQ4NzI3ODY2NjU4ZjA0YTI2MzEyOGM0NTY4
11
+ NzhlOWQyYzU1ZTZhZTc1ZDY3OGFlOTk1NzBjYWRkMmVjOTUzYTI=
12
+ data.tar.gz: !binary |-
13
+ ZjNlNmYyMjk2M2FkZDUzOGM3ODUxYjIyNGNhZGM1ZjI3ZjgzZTZmOGE4ZTFi
14
+ ZDdmNDdhMWYyZjg2MDgwODZhOWE1OGEwZDZlMzgyOGMxMzAxNmM0NmI4ZDBi
15
+ ODM5OTAzZDk5OGIwNmIxOTI5MGE1MjVmMWYxMWE2MGQ0Mjk5MWY=
data/CHANGELOG.textile CHANGED
@@ -1,3 +1,6 @@
1
+ h2. v0.3.2
2
+ * requests a new token from the uaa if the token is expired
3
+
1
4
  h2. v0.3.1
2
5
  * removes env
3
6
  * removes necessary configuration file
data/Gemfile.lock CHANGED
@@ -1,9 +1,10 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- cfoundry_helper (0.3.1)
4
+ cfoundry_helper (0.3.2)
5
5
  activesupport
6
6
  cfoundry
7
+ jwt
7
8
 
8
9
  GEM
9
10
  remote: https://rubygems.org/
@@ -21,7 +22,7 @@ GEM
21
22
  builder (3.1.4)
22
23
  cf-uaa-lib (2.0.0)
23
24
  multi_json
24
- cfoundry (4.5.3)
25
+ cfoundry (4.6.1)
25
26
  activemodel (>= 3.2.13, < 5.0.0)
26
27
  cf-uaa-lib (~> 2.0.0)
27
28
  multi_json (~> 1.7)
@@ -41,6 +42,8 @@ GEM
41
42
  httpclient (2.3.4.1)
42
43
  i18n (0.6.5)
43
44
  json_pure (1.8.0)
45
+ jwt (0.1.8)
46
+ multi_json (>= 1.5)
44
47
  method_source (0.8.2)
45
48
  minitest (4.7.5)
46
49
  multi_json (1.8.2)
data/README.textile CHANGED
@@ -15,6 +15,7 @@ b) You can also configure the targets by passing in a configuration hash:
15
15
 
16
16
 
17
17
  h2. Target Selection
18
+
18
19
  Since cfoundry_helper now supports multiple CF targets you have to set your desired target by using the
19
20
  CFoundryHelper::Helpers::ClientHelper.current_target_url= method for selecting a target from your service configuration file.
20
21
  You can list all configured targets using the CFoundryHelper.available_targets method.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.2.2
1
+ 0.3.2
@@ -36,4 +36,5 @@ Gem::Specification.new do |spec|
36
36
 
37
37
  spec.add_dependency "cfoundry"
38
38
  spec.add_dependency "activesupport"
39
+ spec.add_dependency "jwt"
39
40
  end
@@ -1,4 +1,5 @@
1
1
  require 'yaml'
2
+ require 'jwt'
2
3
 
3
4
  module CFoundryHelper::Helpers
4
5
  module ClientHelper
@@ -20,7 +21,7 @@ module CFoundryHelper::Helpers
20
21
  end
21
22
 
22
23
  def self.get_auth_token
23
- self.cloud_controller_client if @@auth_token.nil?
24
+ self.cloud_controller_client
24
25
  return @@auth_token
25
26
  end
26
27
 
@@ -54,19 +55,16 @@ module CFoundryHelper::Helpers
54
55
  # just return the already initialized client if present
55
56
  raise CFoundryHelper::Errors::ConfigurationError, "The ClientHelper's current target url is not defined in the configuration!" if CFoundryHelper.config[@@current_target_url].nil?
56
57
 
57
-
58
- # just return the already initialized client if it was explicit setted.
59
- # Don't cache the client in this method because long running apps will
60
- # have some trouble with expired auth tokens.
61
- # TODO: Refresh the token with the uaa refresh method.
62
- return @@cloud_controller_client if @@cloud_controller_client
58
+ # just return the already initialized client if the auth token is not expired.
59
+ return @@cloud_controller_client unless is_auth_token_expired?
63
60
 
64
61
  token_issuer = CF::UAA::TokenIssuer.new(CFoundryHelper.config[@@current_target_url]['uaa']['site'], "cf")
65
62
  token_info = token_issuer.implicit_grant_with_creds(CFoundryHelper.config[@@current_target_url]['cloud_controller'])
66
63
  access_token = token_info.info["access_token"]
67
64
  token = CFoundry::AuthToken.from_hash({:token => "bearer #{access_token}"})
68
65
  @@auth_token = token
69
- CFoundry::V2::Client.new(CFoundryHelper.config[@@current_target_url]['cloud_controller']['site'], token)
66
+ cc_client = CFoundry::V2::Client.new(CFoundryHelper.config[@@current_target_url]['cloud_controller']['site'], token)
67
+ set_cc_client(cc_client)
70
68
  end
71
69
 
72
70
  def self.set_scim_client(client)
@@ -76,5 +74,18 @@ module CFoundryHelper::Helpers
76
74
  def self.set_cc_client(client)
77
75
  @@cloud_controller_client = client
78
76
  end
77
+
78
+ private
79
+
80
+ # Check that the Cloud Foundry auth token isn't expierd.
81
+ # Returns true if the auth_token is expired or uninitialized.
82
+ def self.is_auth_token_expired?
83
+ return true if @@auth_token.nil?
84
+
85
+ decoded_token = ::JWT.decode(@@auth_token.auth_header.split(' ')[1], nil, false)
86
+
87
+ return true if Time.at(decoded_token['exp']) < Time.now
88
+ return false
89
+ end
79
90
  end
80
91
  end
@@ -1,3 +1,3 @@
1
1
  module CFoundryHelper
2
- VERSION = "0.3.1"
2
+ VERSION = "0.3.2"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cfoundry_helper
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.1
4
+ version: 0.3.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Julian Weber
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-10-28 00:00:00.000000000 Z
11
+ date: 2013-11-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -28,154 +28,168 @@ dependencies:
28
28
  name: rake
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - '>='
31
+ - - ! '>='
32
32
  - !ruby/object:Gem::Version
33
33
  version: '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
40
  version: '0'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: nats
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - '>='
45
+ - - ! '>='
46
46
  - !ruby/object:Gem::Version
47
47
  version: '0'
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - '>='
52
+ - - ! '>='
53
53
  - !ruby/object:Gem::Version
54
54
  version: '0'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: rspec
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - '>='
59
+ - - ! '>='
60
60
  - !ruby/object:Gem::Version
61
61
  version: '0'
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
68
  version: '0'
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: cf-uaa-lib
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
- - - '>='
73
+ - - ! '>='
74
74
  - !ruby/object:Gem::Version
75
75
  version: '0'
76
76
  type: :development
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
- - - '>='
80
+ - - ! '>='
81
81
  - !ruby/object:Gem::Version
82
82
  version: '0'
83
83
  - !ruby/object:Gem::Dependency
84
84
  name: activesupport
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
- - - '>='
87
+ - - ! '>='
88
88
  - !ruby/object:Gem::Version
89
89
  version: '0'
90
90
  type: :development
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
- - - '>='
94
+ - - ! '>='
95
95
  - !ruby/object:Gem::Version
96
96
  version: '0'
97
97
  - !ruby/object:Gem::Dependency
98
98
  name: httpclient
99
99
  requirement: !ruby/object:Gem::Requirement
100
100
  requirements:
101
- - - '>='
101
+ - - ! '>='
102
102
  - !ruby/object:Gem::Version
103
103
  version: '0'
104
104
  type: :development
105
105
  prerelease: false
106
106
  version_requirements: !ruby/object:Gem::Requirement
107
107
  requirements:
108
- - - '>='
108
+ - - ! '>='
109
109
  - !ruby/object:Gem::Version
110
110
  version: '0'
111
111
  - !ruby/object:Gem::Dependency
112
112
  name: yajl-ruby
113
113
  requirement: !ruby/object:Gem::Requirement
114
114
  requirements:
115
- - - '>='
115
+ - - ! '>='
116
116
  - !ruby/object:Gem::Version
117
117
  version: '0'
118
118
  type: :development
119
119
  prerelease: false
120
120
  version_requirements: !ruby/object:Gem::Requirement
121
121
  requirements:
122
- - - '>='
122
+ - - ! '>='
123
123
  - !ruby/object:Gem::Version
124
124
  version: '0'
125
125
  - !ruby/object:Gem::Dependency
126
126
  name: pry
127
127
  requirement: !ruby/object:Gem::Requirement
128
128
  requirements:
129
- - - '>='
129
+ - - ! '>='
130
130
  - !ruby/object:Gem::Version
131
131
  version: '0'
132
132
  type: :development
133
133
  prerelease: false
134
134
  version_requirements: !ruby/object:Gem::Requirement
135
135
  requirements:
136
- - - '>='
136
+ - - ! '>='
137
137
  - !ruby/object:Gem::Version
138
138
  version: '0'
139
139
  - !ruby/object:Gem::Dependency
140
140
  name: pry-debugger
141
141
  requirement: !ruby/object:Gem::Requirement
142
142
  requirements:
143
- - - '>='
143
+ - - ! '>='
144
144
  - !ruby/object:Gem::Version
145
145
  version: '0'
146
146
  type: :development
147
147
  prerelease: false
148
148
  version_requirements: !ruby/object:Gem::Requirement
149
149
  requirements:
150
- - - '>='
150
+ - - ! '>='
151
151
  - !ruby/object:Gem::Version
152
152
  version: '0'
153
153
  - !ruby/object:Gem::Dependency
154
154
  name: cfoundry
155
155
  requirement: !ruby/object:Gem::Requirement
156
156
  requirements:
157
- - - '>='
157
+ - - ! '>='
158
158
  - !ruby/object:Gem::Version
159
159
  version: '0'
160
160
  type: :runtime
161
161
  prerelease: false
162
162
  version_requirements: !ruby/object:Gem::Requirement
163
163
  requirements:
164
- - - '>='
164
+ - - ! '>='
165
165
  - !ruby/object:Gem::Version
166
166
  version: '0'
167
167
  - !ruby/object:Gem::Dependency
168
168
  name: activesupport
169
169
  requirement: !ruby/object:Gem::Requirement
170
170
  requirements:
171
- - - '>='
171
+ - - ! '>='
172
172
  - !ruby/object:Gem::Version
173
173
  version: '0'
174
174
  type: :runtime
175
175
  prerelease: false
176
176
  version_requirements: !ruby/object:Gem::Requirement
177
177
  requirements:
178
- - - '>='
178
+ - - ! '>='
179
+ - !ruby/object:Gem::Version
180
+ version: '0'
181
+ - !ruby/object:Gem::Dependency
182
+ name: jwt
183
+ requirement: !ruby/object:Gem::Requirement
184
+ requirements:
185
+ - - ! '>='
186
+ - !ruby/object:Gem::Version
187
+ version: '0'
188
+ type: :runtime
189
+ prerelease: false
190
+ version_requirements: !ruby/object:Gem::Requirement
191
+ requirements:
192
+ - - ! '>='
179
193
  - !ruby/object:Gem::Version
180
194
  version: '0'
181
195
  description: This gem provides additional helper classes and scripts for the cfoundry
@@ -225,17 +239,17 @@ require_paths:
225
239
  - lib
226
240
  required_ruby_version: !ruby/object:Gem::Requirement
227
241
  requirements:
228
- - - '>='
242
+ - - ! '>='
229
243
  - !ruby/object:Gem::Version
230
244
  version: 1.9.3
231
245
  required_rubygems_version: !ruby/object:Gem::Requirement
232
246
  requirements:
233
- - - '>='
247
+ - - ! '>='
234
248
  - !ruby/object:Gem::Version
235
249
  version: '0'
236
250
  requirements: []
237
251
  rubyforge_project:
238
- rubygems_version: 2.0.6
252
+ rubygems_version: 2.0.7
239
253
  signing_key:
240
254
  specification_version: 4
241
255
  summary: This gem provides additional helper classes and scripts for the cfoundry