cf-uaac 4.4.0 → 4.5.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +2 -2
- data/cf-uaac.gemspec +1 -1
- data/lib/uaa/cli/base.rb +2 -1
- data/lib/uaa/cli/client_reg.rb +4 -0
- data/lib/uaa/cli/common.rb +5 -2
- data/lib/uaa/cli/info.rb +0 -4
- data/lib/uaa/cli/token.rb +3 -1
- data/lib/uaa/cli/user.rb +2 -2
- data/lib/uaa/stub/scim.rb +1 -1
- data/spec/client_reg_spec.rb +1 -1
- data/spec/common_spec.rb +1 -1
- data/spec/info_spec.rb +0 -5
- data/version.txt +1 -1
- metadata +4 -10
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 36488b9610f3cc86a06d229903f29beda0e6394d533894390199e89851e225de
|
4
|
+
data.tar.gz: 00b0ea7818b49c8871e78ebb1286982dcd569ac33decd42a96d9fa10cec0aea7
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 349d0003eb1dba666f54fadc9017b644269d15cf89edb83cf210e22c5fac38b4faf70e0b12b07afeec378572c158ea8db77cb7242f998ad73d1258b75d285c4a
|
7
|
+
data.tar.gz: b669538c9b836c36ac8f493c3e0539303c0269c08fa3a6704e7f4f26140333016ec748e6e594b54932f04f993ecfaf259800c294e1f727c00b249dc060ff1476
|
data/README.md
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
# CloudFoundry UAA Command Line Client
|
2
2
|
|
3
|
-
|
3
|
+
![Build status](https://github.com/cloudfoundry/cf-uaac/actions/workflows/ruby.yml/badge.svg)
|
4
4
|
[![Gem Version](https://badge.fury.io/rb/cf-uaac.png)](https://rubygems.org/gems/cf-uaac)
|
5
5
|
|
6
6
|
## Installation
|
@@ -67,4 +67,4 @@ export UAA_CLIENT_ID="admin"
|
|
67
67
|
export UAA_CLIENT_SECRET="adminsecret"
|
68
68
|
export UAA_CLIENT_TARGET="http://localhost:8080/uaa"
|
69
69
|
bundle exec rake test
|
70
|
-
```
|
70
|
+
```
|
data/cf-uaac.gemspec
CHANGED
@@ -31,7 +31,7 @@ Gem::Specification.new do |s|
|
|
31
31
|
s.require_paths = ['lib']
|
32
32
|
|
33
33
|
# dependencies
|
34
|
-
s.add_runtime_dependency 'cf-uaa-lib', '~>
|
34
|
+
s.add_runtime_dependency 'cf-uaa-lib', '~> 4.0'
|
35
35
|
s.add_development_dependency 'rake', '>= 10.3.1', '~> 13.0'
|
36
36
|
s.add_development_dependency 'rspec', '>= 2.14.1', '~> 3.9'
|
37
37
|
s.add_development_dependency 'simplecov', '~> 0.21.2'
|
data/lib/uaa/cli/base.rb
CHANGED
@@ -14,6 +14,7 @@
|
|
14
14
|
require 'highline'
|
15
15
|
require 'optparse'
|
16
16
|
require 'json/pure'
|
17
|
+
require 'io/console'
|
17
18
|
|
18
19
|
module CF; module UAA end end
|
19
20
|
|
@@ -65,7 +66,7 @@ class Topic
|
|
65
66
|
|
66
67
|
def terminal_columns
|
67
68
|
return @terminal_columns ||= 0 if @terminal_columns || !@output.tty?
|
68
|
-
cols =
|
69
|
+
cols = IO.console.winsize.last rescue 0 if $stdin.tty?
|
69
70
|
@terminal_columns = !cols || cols < 40 ? 0 : cols
|
70
71
|
end
|
71
72
|
|
data/lib/uaa/cli/client_reg.rb
CHANGED
@@ -28,6 +28,7 @@ class ClientCli < CommonCli
|
|
28
28
|
:refresh_token_validity => 'seconds',
|
29
29
|
:redirect_uri => 'list',
|
30
30
|
:autoapprove => 'list',
|
31
|
+
:allowedproviders => 'list',
|
31
32
|
:'signup_redirect_url' => 'url'
|
32
33
|
}
|
33
34
|
CLIENT_SCHEMA.each { |k, v| define_option(k, "--#{k} <#{v}>") }
|
@@ -51,6 +52,9 @@ class ClientCli < CommonCli
|
|
51
52
|
info[k] = Util.arglist(info[k]) if p == 'list'
|
52
53
|
info.delete(k) unless info[k]
|
53
54
|
end
|
55
|
+
if opts.key?(k) && k == :allowedproviders && (info[k].join('') == 'all' || info[k].join('') == 'null' || info[k].join('') == 'nil')
|
56
|
+
info[:allowedproviders] = nil
|
57
|
+
end
|
54
58
|
end
|
55
59
|
end
|
56
60
|
|
data/lib/uaa/cli/common.rb
CHANGED
@@ -31,7 +31,7 @@ class CommonCli < Topic
|
|
31
31
|
|
32
32
|
def username(name); name || ask("User name") end
|
33
33
|
def userpwd(pwd = opts[:password]); pwd || ask_pwd("Password") end
|
34
|
-
def passcode(passcode = opts[:passcode]); passcode || ask("Passcode (from #{Config.target}/passcode)") end
|
34
|
+
def passcode(passcode = opts[:passcode]); passcode || ask("Passcode ( from #{Config.target}/passcode )") end
|
35
35
|
def clientid(id = opts[:client]); id || ask("Client ID") end
|
36
36
|
def clientsecret(secret = opts[:secret]); secret || ask_pwd("Client secret") end
|
37
37
|
def clientname(name = opts[:name]); name end
|
@@ -186,7 +186,8 @@ class MiscCli < CommonCli
|
|
186
186
|
define_option :ca_cert, "--ca-cert [file]", "use the given CA certificate to validate the target's SSL certificate"
|
187
187
|
define_option :skip_ssl_validation, "--skip-ssl-validation", "do not attempt to validate ssl certificate"
|
188
188
|
define_option :force, "--[no-]force", "-f", "set even if target does not respond"
|
189
|
-
|
189
|
+
define_option :basic_auth, "--[no-]basic_auth", "set if you need basic or oauth2 (url encoded) client authentication"
|
190
|
+
desc "target [uaa_url]", "Display current or set new target", :force, :ca_cert, :skip_ssl_validation, :basic_auth do |uaa_url|
|
190
191
|
msg, info = nil, {}
|
191
192
|
if uaa_url
|
192
193
|
if uaa_url.to_i.to_s == uaa_url
|
@@ -204,6 +205,8 @@ class MiscCli < CommonCli
|
|
204
205
|
Config.target = url # we now have a canonical url set to https if possible
|
205
206
|
Config.target_opts(skip_ssl_validation: true) if opts[:skip_ssl_validation]
|
206
207
|
Config.target_opts(ca_cert: opts[:ca_cert])
|
208
|
+
Config.target_opts(basic_auth: true) if opts[:basic_auth] == true
|
209
|
+
Config.target_opts(basic_auth: false) if opts[:basic_auth] == false
|
207
210
|
update_target_info(info) if info[:prompts]
|
208
211
|
end
|
209
212
|
return say "no target set" unless Config.target
|
data/lib/uaa/cli/info.rb
CHANGED
@@ -47,10 +47,6 @@ class InfoCli < CommonCli
|
|
47
47
|
pp info
|
48
48
|
end
|
49
49
|
|
50
|
-
desc "stats", "Show UAA's current usage statistics", :client, :secret do
|
51
|
-
pp misc_request { @cli_class.uaa_info_client.varz(clientid, clientsecret) }
|
52
|
-
end
|
53
|
-
|
54
50
|
desc "password strength [password]", "calculate strength score of a password" do |pwd|
|
55
51
|
pp misc_request { @cli_class.uaa_info_client.password_strength(userpwd(pwd)) }
|
56
52
|
end
|
data/lib/uaa/cli/token.rb
CHANGED
@@ -25,6 +25,7 @@ class TokenCatcher < Stub::Base
|
|
25
25
|
secret = server.info.delete(:client_secret)
|
26
26
|
ti = TokenIssuer.new(Config.target, server.info.delete(:client_id), secret,
|
27
27
|
{ token_target: Config.target_value(:token_target),
|
28
|
+
basic_auth: Config.target_value(:basic_auth),
|
28
29
|
skip_ssl_validation: Config.target_value(:skip_ssl_validation)})
|
29
30
|
tkn = secret ? ti.authcode_grant(server.info.delete(:uri), data) :
|
30
31
|
ti.implicit_grant(server.info.delete(:uri), data)
|
@@ -88,8 +89,9 @@ class TokenCli < CommonCli
|
|
88
89
|
|
89
90
|
def issuer_request(client_id, secret = nil)
|
90
91
|
update_target_info
|
91
|
-
yield TokenIssuer.new(Config.target.to_s,
|
92
|
+
yield TokenIssuer.new(Config.target.to_s, client_id, secret,
|
92
93
|
{ token_target: Config.target_value(:token_endpoint),
|
94
|
+
basic_auth: Config.target_value(:basic_auth),
|
93
95
|
skip_ssl_validation: Config.target_value(:skip_ssl_validation),
|
94
96
|
ssl_ca_file: Config.target_value(:ca_cert) })
|
95
97
|
rescue Exception => e
|
data/lib/uaa/cli/user.rb
CHANGED
@@ -19,12 +19,12 @@ class UserCli < CommonCli
|
|
19
19
|
|
20
20
|
topic 'User Accounts', 'account'
|
21
21
|
|
22
|
+
define_option :origin, '--origin <name>, select user to update by identity provider origin. Defaults to UAA'
|
22
23
|
define_option :givenName, '--given_name <name>'
|
23
24
|
define_option :familyName, '--family_name <name>'
|
24
25
|
define_option :emails, '--emails <addresses>'
|
25
26
|
define_option :phoneNumbers, '--phones <phone_numbers>'
|
26
|
-
|
27
|
-
USER_INFO_OPTS = [:givenName, :familyName, :emails, :phoneNumbers, :origin]
|
27
|
+
USER_INFO_OPTS = [:origin, :givenName, :familyName, :emails, :phoneNumbers]
|
28
28
|
|
29
29
|
def user_opts(info = {})
|
30
30
|
[:emails, :phoneNumbers].each do |o|
|
data/lib/uaa/stub/scim.rb
CHANGED
@@ -65,7 +65,7 @@ class StubScim
|
|
65
65
|
:authorizations, :groups].to_set,
|
66
66
|
client: [*COMMON_ATTRS, :client_id, :name, :client_secret, :authorities,
|
67
67
|
:authorized_grant_types, :scope, :autoapprove,
|
68
|
-
:access_token_validity, :refresh_token_validity, :redirect_uri,
|
68
|
+
:access_token_validity, :refresh_token_validity, :redirect_uri, :allowedproviders,
|
69
69
|
:'signup_redirect_url'].to_set,
|
70
70
|
group: [*COMMON_ATTRS, :displayname, :members, :writers, :readers, :external_groups].to_set }
|
71
71
|
VISIBLE_ATTRS = {user: Set.new(LEGAL_ATTRS[:user] - HIDDEN_ATTRS),
|
data/spec/client_reg_spec.rb
CHANGED
@@ -59,7 +59,7 @@ describe ClientCli do
|
|
59
59
|
|
60
60
|
it 'does not wrap the output of the access token in the terminal' do
|
61
61
|
allow(@output).to receive(:tty?).and_return(true)
|
62
|
-
allow(
|
62
|
+
allow(IO.console).to receive(:winsize).and_return([40, 80])
|
63
63
|
Cli.run('context').should be
|
64
64
|
Cli.output.string.should match /access_token: \S+?\s+token_type/m
|
65
65
|
end
|
data/spec/common_spec.rb
CHANGED
@@ -44,7 +44,7 @@ describe CommonCli do
|
|
44
44
|
|
45
45
|
it "displays user help with -h has --origin option" do
|
46
46
|
Cli.run("user -h")
|
47
|
-
Cli.output.string.should include("--origin <identity provider origin
|
47
|
+
Cli.output.string.should include("--origin <name>, select user to update by identity provider origin. Defaults to UAA")
|
48
48
|
end
|
49
49
|
|
50
50
|
it "displays group help with -h has --origin option" do
|
data/spec/info_spec.rb
CHANGED
@@ -53,11 +53,6 @@ describe InfoCli do
|
|
53
53
|
Cli.output.string.should include "score", "requiredScore"
|
54
54
|
end
|
55
55
|
|
56
|
-
it "gets the server stats" do
|
57
|
-
pending "no UAA_VARZ_SECRET environment variable set" unless @varz_secret
|
58
|
-
Cli.run("stats -c varz -s #{@varz_secret}").should be
|
59
|
-
Cli.output.string.should include 'type: UAA', 'mem:', 'version:'
|
60
|
-
end
|
61
56
|
|
62
57
|
it "sets multiple targets to be fully qualified in config and targets output" do
|
63
58
|
Config.load("")
|
data/version.txt
CHANGED
@@ -1 +1 @@
|
|
1
|
-
4.
|
1
|
+
4.5.0
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: cf-uaac
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 4.
|
4
|
+
version: 4.5.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Dave Syer
|
@@ -12,7 +12,7 @@ authors:
|
|
12
12
|
autorequire:
|
13
13
|
bindir: bin
|
14
14
|
cert_chain: []
|
15
|
-
date: 2022-01-
|
15
|
+
date: 2022-01-21 00:00:00.000000000 Z
|
16
16
|
dependencies:
|
17
17
|
- !ruby/object:Gem::Dependency
|
18
18
|
name: cf-uaa-lib
|
@@ -20,20 +20,14 @@ dependencies:
|
|
20
20
|
requirements:
|
21
21
|
- - "~>"
|
22
22
|
- !ruby/object:Gem::Version
|
23
|
-
version: '
|
24
|
-
- - ">"
|
25
|
-
- !ruby/object:Gem::Version
|
26
|
-
version: 3.14.3
|
23
|
+
version: '4.0'
|
27
24
|
type: :runtime
|
28
25
|
prerelease: false
|
29
26
|
version_requirements: !ruby/object:Gem::Requirement
|
30
27
|
requirements:
|
31
28
|
- - "~>"
|
32
29
|
- !ruby/object:Gem::Version
|
33
|
-
version: '
|
34
|
-
- - ">"
|
35
|
-
- !ruby/object:Gem::Version
|
36
|
-
version: 3.14.3
|
30
|
+
version: '4.0'
|
37
31
|
- !ruby/object:Gem::Dependency
|
38
32
|
name: rake
|
39
33
|
requirement: !ruby/object:Gem::Requirement
|