bosh_cli 1.2981.0 → 1.2982.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/cli/base_command.rb +9 -4
- data/lib/cli/client/uaa/access_info.rb +12 -12
- data/lib/cli/client/uaa/client.rb +2 -1
- data/lib/cli/client/uaa/token_provider.rb +10 -17
- data/lib/cli/version.rb +1 -1
- metadata +9 -9
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6f9901f35b38a8d19557f025c539b6429ad6d1cb
|
4
|
+
data.tar.gz: c0b59a2d9ddfa2d1c5827d3cb899eb97cf278b27
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f80da0368d9d91d331e37d0c225e250a287e9881a7ea5f587158487149a0e1bc1c16c34f4ecfdb9f401d5ee7eb8b2f48fe475d2289e5742865446de18ff75336
|
7
|
+
data.tar.gz: 08a5c19f09873e03bf20b6208330ca167549d248387df76d813746c92d672ef3c1f070c337cc91f543e4c42af5a4298f2e8c17932bbfdf1fbf0a98fbe30168bb
|
data/lib/cli/base_command.rb
CHANGED
@@ -100,10 +100,6 @@ module Bosh::Cli
|
|
100
100
|
end
|
101
101
|
|
102
102
|
def credentials
|
103
|
-
director_client = Client::Director.new(target)
|
104
|
-
auth_info = Client::Uaa::AuthInfo.new(director_client, ENV, config.ca_cert(target))
|
105
|
-
token_decoder = Client::Uaa::TokenDecoder.new
|
106
|
-
uaa_token_provider = Client::Uaa::TokenProvider.new(auth_info, config, token_decoder, target)
|
107
103
|
auth_token = uaa_token_provider.token
|
108
104
|
return Client::UaaCredentials.new(auth_token) if auth_token
|
109
105
|
|
@@ -114,6 +110,15 @@ module Bosh::Cli
|
|
114
110
|
nil
|
115
111
|
end
|
116
112
|
|
113
|
+
def uaa_token_provider
|
114
|
+
@uaa_token_provider ||= begin
|
115
|
+
director_client = Client::Director.new(target)
|
116
|
+
auth_info = Client::Uaa::AuthInfo.new(director_client, ENV, config.ca_cert(target))
|
117
|
+
token_decoder = Client::Uaa::TokenDecoder.new
|
118
|
+
Client::Uaa::TokenProvider.new(auth_info, config, token_decoder, target)
|
119
|
+
end
|
120
|
+
end
|
121
|
+
|
117
122
|
def target_name
|
118
123
|
options[:target] || config.target_name || target_url
|
119
124
|
end
|
@@ -5,18 +5,6 @@ module Bosh
|
|
5
5
|
class AccessInfo
|
6
6
|
EXPIRATION_DEADLINE_IN_SECONDS = 30
|
7
7
|
|
8
|
-
def self.from_config(config_access_token, refresh_token, token_decoder)
|
9
|
-
token_type, access_token = config_access_token.split(' ')
|
10
|
-
return nil unless token_type && access_token
|
11
|
-
|
12
|
-
token_info = CF::UAA::TokenInfo.new({
|
13
|
-
access_token: access_token,
|
14
|
-
refresh_token: refresh_token,
|
15
|
-
token_type: token_type,
|
16
|
-
})
|
17
|
-
new(token_info, token_decoder)
|
18
|
-
end
|
19
|
-
|
20
8
|
def initialize(token_info, token_decoder)
|
21
9
|
@token_info = token_info
|
22
10
|
@token_decoder = token_decoder
|
@@ -58,6 +46,18 @@ module Bosh
|
|
58
46
|
end
|
59
47
|
|
60
48
|
class PasswordAccessInfo < AccessInfo
|
49
|
+
def self.create(full_access_token, refresh_token, token_decoder)
|
50
|
+
token_type, access_token = full_access_token.split(' ')
|
51
|
+
return nil unless token_type && access_token
|
52
|
+
|
53
|
+
token_info = CF::UAA::TokenInfo.new({
|
54
|
+
access_token: access_token,
|
55
|
+
refresh_token: refresh_token,
|
56
|
+
token_type: token_type,
|
57
|
+
})
|
58
|
+
new(token_info, token_decoder)
|
59
|
+
end
|
60
|
+
|
61
61
|
def username
|
62
62
|
token_data['user_name']
|
63
63
|
end
|
@@ -11,6 +11,7 @@ module Bosh
|
|
11
11
|
class Client
|
12
12
|
def initialize(target, auth_info, config)
|
13
13
|
@target = target
|
14
|
+
@auth_info = auth_info
|
14
15
|
token_decoder = TokenDecoder.new
|
15
16
|
if auth_info.client_auth?
|
16
17
|
token_issuer = ClientTokenIssuer.new(auth_info, token_decoder)
|
@@ -47,7 +48,7 @@ module Bosh
|
|
47
48
|
|
48
49
|
def with_save
|
49
50
|
access_info = yield
|
50
|
-
if access_info.auth_header
|
51
|
+
if access_info.auth_header && !@auth_info.client_auth?
|
51
52
|
@config.set_credentials(@target, access_info.to_hash)
|
52
53
|
@config.save
|
53
54
|
end
|
@@ -13,12 +13,10 @@ module Bosh
|
|
13
13
|
end
|
14
14
|
|
15
15
|
def token
|
16
|
-
config_access_token = @config.access_token(@target)
|
17
|
-
|
18
16
|
if @auth_info.client_auth?
|
19
|
-
access_info = client_access_info
|
17
|
+
access_info = client_access_info
|
20
18
|
else
|
21
|
-
access_info = password_access_info
|
19
|
+
access_info = password_access_info
|
22
20
|
end
|
23
21
|
|
24
22
|
access_info.auth_header if access_info
|
@@ -30,24 +28,19 @@ module Bosh
|
|
30
28
|
@uaa_client ||= Bosh::Cli::Client::Uaa::Client.new(@target, @auth_info, @config)
|
31
29
|
end
|
32
30
|
|
33
|
-
def client_access_info
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
access_info = ClientAccessInfo.from_config(config_access_token, nil, @token_decoder)
|
39
|
-
return nil unless access_info
|
40
|
-
|
41
|
-
if access_info.was_issued_for?(@auth_info.client_id)
|
42
|
-
return refresh_if_needed(access_info)
|
31
|
+
def client_access_info
|
32
|
+
if !@client_access_info.nil? && @client_access_info.was_issued_for?(@auth_info.client_id)
|
33
|
+
@client_access_info = refresh_if_needed(@client_access_info)
|
34
|
+
else
|
35
|
+
@client_access_info = uaa_client.access_info({})
|
43
36
|
end
|
44
|
-
uaa_client.access_info({})
|
45
37
|
end
|
46
38
|
|
47
|
-
def password_access_info
|
39
|
+
def password_access_info
|
40
|
+
config_access_token = @config.access_token(@target)
|
48
41
|
return nil unless config_access_token
|
49
42
|
|
50
|
-
access_info = PasswordAccessInfo.
|
43
|
+
access_info = PasswordAccessInfo.create(config_access_token, @config.refresh_token(@target), @token_decoder)
|
51
44
|
return nil unless access_info
|
52
45
|
|
53
46
|
refresh_if_needed(access_info)
|
data/lib/cli/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: bosh_cli
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.2982.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- VMware
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-06-
|
11
|
+
date: 2015-06-10 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bosh_common
|
@@ -16,28 +16,28 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: 1.
|
19
|
+
version: 1.2982.0
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: 1.
|
26
|
+
version: 1.2982.0
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: bosh-template
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
31
|
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: 1.
|
33
|
+
version: 1.2982.0
|
34
34
|
type: :runtime
|
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: 1.
|
40
|
+
version: 1.2982.0
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: cf-uaa-lib
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -128,14 +128,14 @@ dependencies:
|
|
128
128
|
requirements:
|
129
129
|
- - "~>"
|
130
130
|
- !ruby/object:Gem::Version
|
131
|
-
version: 1.
|
131
|
+
version: 1.2982.0
|
132
132
|
type: :runtime
|
133
133
|
prerelease: false
|
134
134
|
version_requirements: !ruby/object:Gem::Requirement
|
135
135
|
requirements:
|
136
136
|
- - "~>"
|
137
137
|
- !ruby/object:Gem::Version
|
138
|
-
version: 1.
|
138
|
+
version: 1.2982.0
|
139
139
|
- !ruby/object:Gem::Dependency
|
140
140
|
name: net-ssh
|
141
141
|
requirement: !ruby/object:Gem::Requirement
|
@@ -306,7 +306,7 @@ dependencies:
|
|
306
306
|
version: '0'
|
307
307
|
description: |-
|
308
308
|
BOSH CLI
|
309
|
-
|
309
|
+
30e5c6
|
310
310
|
email: support@cloudfoundry.com
|
311
311
|
executables:
|
312
312
|
- bosh
|