cf-uaac 1.3.0
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +8 -0
- data/Gemfile +16 -0
- data/README.md +48 -0
- data/Rakefile +50 -0
- data/bin/completion-helper +80 -0
- data/bin/uaac +5 -0
- data/bin/uaac-completion.sh +34 -0
- data/bin/uaas +7 -0
- data/cf-uaac.gemspec +48 -0
- data/lib/cli.rb +15 -0
- data/lib/cli/base.rb +277 -0
- data/lib/cli/client_reg.rb +103 -0
- data/lib/cli/common.rb +187 -0
- data/lib/cli/config.rb +163 -0
- data/lib/cli/favicon.ico +0 -0
- data/lib/cli/group.rb +85 -0
- data/lib/cli/info.rb +54 -0
- data/lib/cli/runner.rb +52 -0
- data/lib/cli/token.rb +217 -0
- data/lib/cli/user.rb +108 -0
- data/lib/cli/version.rb +18 -0
- data/lib/stub/scim.rb +387 -0
- data/lib/stub/server.rb +310 -0
- data/lib/stub/uaa.rb +485 -0
- data/spec/client_reg_spec.rb +104 -0
- data/spec/common_spec.rb +89 -0
- data/spec/group_spec.rb +93 -0
- data/spec/http_spec.rb +165 -0
- data/spec/info_spec.rb +74 -0
- data/spec/spec_helper.rb +87 -0
- data/spec/token_spec.rb +119 -0
- data/spec/user_spec.rb +61 -0
- metadata +292 -0
data/spec/info_spec.rb
ADDED
@@ -0,0 +1,74 @@
|
|
1
|
+
#--
|
2
|
+
# Cloud Foundry 2012.02.03 Beta
|
3
|
+
# Copyright (c) [2009-2012] VMware, Inc. All Rights Reserved.
|
4
|
+
#
|
5
|
+
# This product is licensed to you under the Apache License, Version 2.0 (the "License").
|
6
|
+
# You may not use this product except in compliance with the License.
|
7
|
+
#
|
8
|
+
# This product includes a number of subcomponents with
|
9
|
+
# separate copyright notices and license terms. Your use of these
|
10
|
+
# subcomponents is subject to the terms and conditions of the
|
11
|
+
# subcomponent's license, as noted in the LICENSE file.
|
12
|
+
#++
|
13
|
+
|
14
|
+
require 'spec_helper'
|
15
|
+
require 'cli'
|
16
|
+
require 'stub/uaa'
|
17
|
+
|
18
|
+
module CF::UAA
|
19
|
+
|
20
|
+
describe InfoCli do
|
21
|
+
|
22
|
+
include SpecHelper
|
23
|
+
|
24
|
+
before :all do
|
25
|
+
#Util.default_logger(:trace)
|
26
|
+
Cli.configure("", nil, StringIO.new, true)
|
27
|
+
if ENV["UAA_CLIENT_TARGET"]
|
28
|
+
@target, @stub_uaa = ENV["UAA_CLIENT_TARGET"], nil
|
29
|
+
@varz_secret = ENV['UAA_VARZ_SECRET']
|
30
|
+
else
|
31
|
+
@stub_uaa = StubUAA.new.run_on_thread
|
32
|
+
@target, @varz_secret = @stub_uaa.url, "varzsecret"
|
33
|
+
end
|
34
|
+
Cli.run("target #{@target}").should be
|
35
|
+
Cli.output.string.should include URI.parse(@target).host
|
36
|
+
end
|
37
|
+
|
38
|
+
after :all do @stub_uaa.stop if @stub_uaa end
|
39
|
+
|
40
|
+
it "gets server info" do
|
41
|
+
Cli.run("info").should be
|
42
|
+
Cli.output.string.should match /\d.\d.\d/
|
43
|
+
Cli.output.string.should include "prompts", "commit_id"
|
44
|
+
end
|
45
|
+
|
46
|
+
it "gets prompts" do
|
47
|
+
Cli.run("prompts").should be
|
48
|
+
Cli.output.string.should include "username", "password"
|
49
|
+
end
|
50
|
+
|
51
|
+
it "checks password strength" do
|
52
|
+
Cli.run("password strength PaSsW0rd").should be
|
53
|
+
Cli.output.string.should include "score", "requiredScore"
|
54
|
+
end
|
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
|
+
|
62
|
+
it "sets multiple targets to be fully qualified in config and targets output" do
|
63
|
+
Config.load("")
|
64
|
+
Cli.run("target example.com --force")
|
65
|
+
Cli.run("target example2.com --force")
|
66
|
+
uri = URI.parse(@target)
|
67
|
+
Cli.run("target #{uri.host}:#{uri.port}#{uri.path}")
|
68
|
+
Cli.run("targets").should be
|
69
|
+
Config.yaml.should include "https://example.com", "https://example2.com", @target
|
70
|
+
Cli.output.string.should include "https://example.com", "https://example2.com", @target
|
71
|
+
end
|
72
|
+
|
73
|
+
end
|
74
|
+
end
|
data/spec/spec_helper.rb
ADDED
@@ -0,0 +1,87 @@
|
|
1
|
+
#--
|
2
|
+
# Cloud Foundry 2012.02.03 Beta
|
3
|
+
# Copyright (c) [2009-2012] VMware, Inc. All Rights Reserved.
|
4
|
+
#
|
5
|
+
# This product is licensed to you under the Apache License, Version 2.0 (the "License").
|
6
|
+
# You may not use this product except in compliance with the License.
|
7
|
+
#
|
8
|
+
# This product includes a number of subcomponents with
|
9
|
+
# separate copyright notices and license terms. Your use of these
|
10
|
+
# subcomponents is subject to the terms and conditions of the
|
11
|
+
# subcomponent's license, as noted in the LICENSE file.
|
12
|
+
#++
|
13
|
+
|
14
|
+
if ENV['COVERAGE']
|
15
|
+
require "simplecov"
|
16
|
+
if ENV['COVERAGE'] =~ /rcov/
|
17
|
+
require "simplecov-rcov"
|
18
|
+
SimpleCov.formatter = SimpleCov::Formatter::RcovFormatter
|
19
|
+
end
|
20
|
+
SimpleCov.add_filter "^#{File.dirname(__FILE__)}" if ENV['COVERAGE'] =~ /exclude-spec/
|
21
|
+
SimpleCov.add_filter "^#{File.expand_path(File.join(__FILE__, "..", "..", "vendor"))}" if ENV['COVERAGE'] =~ /exclude-vendor/
|
22
|
+
SimpleCov.start
|
23
|
+
end
|
24
|
+
|
25
|
+
require 'rspec'
|
26
|
+
require 'eventmachine'
|
27
|
+
require 'stub/uaa'
|
28
|
+
|
29
|
+
module CF::UAA
|
30
|
+
|
31
|
+
module SpecHelper
|
32
|
+
|
33
|
+
def capture_exception
|
34
|
+
yield
|
35
|
+
rescue Exception => e
|
36
|
+
e
|
37
|
+
end
|
38
|
+
|
39
|
+
# Runs given block on a thread or fiber and returns result.
|
40
|
+
# If eventmachine is running on another thread, the fiber
|
41
|
+
# must be on the same thread, hence EM.schedule and the
|
42
|
+
# restriction that the given block cannot include rspec matchers.
|
43
|
+
def frequest(on_fiber, &blk)
|
44
|
+
return capture_exception(&blk) unless on_fiber
|
45
|
+
result = nil
|
46
|
+
cthred = Thread.current
|
47
|
+
EM.schedule { Fiber.new { result = capture_exception(&blk); cthred.run }.resume }
|
48
|
+
Thread.stop
|
49
|
+
result
|
50
|
+
end
|
51
|
+
|
52
|
+
def setup_target(opts = {})
|
53
|
+
opts = { authorities: "clients.read,scim.read,scim.write,uaa.resource",
|
54
|
+
grant_types: "client_credentials,password",
|
55
|
+
scope: "openid,password.write"}.update(opts)
|
56
|
+
@admin_client = ENV["UAA_CLIENT_ID"] || "admin"
|
57
|
+
@admin_secret = ENV["UAA_CLIENT_SECRET"] || "adminsecret"
|
58
|
+
if ENV["UAA_CLIENT_TARGET"]
|
59
|
+
@target, @stub_uaa = ENV["UAA_CLIENT_TARGET"], nil
|
60
|
+
else
|
61
|
+
@stub_uaa = StubUAA.new(@admin_client, @admin_secret).run_on_thread
|
62
|
+
@target = @stub_uaa.url
|
63
|
+
end
|
64
|
+
Cli.run("target #{@target}").should be
|
65
|
+
Cli.run("token client get #{@admin_client} -s #{@admin_secret}")
|
66
|
+
Config.yaml.should include("access_token")
|
67
|
+
test_client = "test_client_#{Time.now.to_i}"
|
68
|
+
@test_secret = "+=tEsTsEcRet~!@"
|
69
|
+
Cli.run("client add #{test_client} -s #{@test_secret} " +
|
70
|
+
"--authorities #{opts[:authorities]} --scope #{opts[:scope]} " +
|
71
|
+
"--authorized_grant_types #{opts[:grant_types]}").should be
|
72
|
+
opts.each { |k, a| Util.arglist(a).each {|v| Cli.output.string.should include(v) }}
|
73
|
+
@test_client = test_client
|
74
|
+
end
|
75
|
+
|
76
|
+
def cleanup_target
|
77
|
+
Cli.run("context #{@admin_client}")
|
78
|
+
if @test_client && !@test_client.empty?
|
79
|
+
Cli.run("client delete #{@test_client}").should be
|
80
|
+
Cli.output.string.should include("deleted")
|
81
|
+
end
|
82
|
+
@stub_uaa.stop if @stub_uaa
|
83
|
+
end
|
84
|
+
end
|
85
|
+
|
86
|
+
end
|
87
|
+
|
data/spec/token_spec.rb
ADDED
@@ -0,0 +1,119 @@
|
|
1
|
+
#--
|
2
|
+
# Cloud Foundry 2012.02.03 Beta
|
3
|
+
# Copyright (c) [2009-2012] VMware, Inc. All Rights Reserved.
|
4
|
+
#
|
5
|
+
# This product is licensed to you under the Apache License, Version 2.0 (the "License").
|
6
|
+
# You may not use this product except in compliance with the License.
|
7
|
+
#
|
8
|
+
# This product includes a number of subcomponents with
|
9
|
+
# separate copyright notices and license terms. Your use of these
|
10
|
+
# subcomponents is subject to the terms and conditions of the
|
11
|
+
# subcomponent's license, as noted in the LICENSE file.
|
12
|
+
#++
|
13
|
+
|
14
|
+
require 'spec_helper'
|
15
|
+
require 'cli'
|
16
|
+
|
17
|
+
module CF::UAA
|
18
|
+
|
19
|
+
describe TokenCli do
|
20
|
+
|
21
|
+
include SpecHelper
|
22
|
+
|
23
|
+
before :all do
|
24
|
+
#Util.default_logger(:trace)
|
25
|
+
Cli.configure("", nil, StringIO.new, true)
|
26
|
+
setup_target(authorities: "clients.read,scim.read,scim.write,uaa.resource")
|
27
|
+
Cli.run("token client get #{@test_client} -s #{@test_secret}").should be
|
28
|
+
Config.yaml.should include("access_token")
|
29
|
+
@test_pwd = "TesTpwd$%^"
|
30
|
+
@test_user = "tEst_UseR+-#{Time.now.to_i}"
|
31
|
+
Cli.run("user add #{@test_user} -p #{@test_pwd} " +
|
32
|
+
"--emails sam@example.com,joNES@sample.com --given_name SamueL " +
|
33
|
+
"--phones 801-555-1212 --family_name jonES").should be
|
34
|
+
end
|
35
|
+
|
36
|
+
after :all do cleanup_target end
|
37
|
+
|
38
|
+
it "gets the server signing key" do
|
39
|
+
Cli.run("signing key -c #{@test_client} -s #{@test_secret}").should be
|
40
|
+
Cli.output.string.should include 'alg:', 'value:'
|
41
|
+
end
|
42
|
+
|
43
|
+
it "logs in with implicit grant & posted credentials as a user" do
|
44
|
+
Cli.run("token get #{@test_user} #{@test_pwd}").should be
|
45
|
+
Cli.output.string.should include("Successfully fetched token")
|
46
|
+
end
|
47
|
+
|
48
|
+
it "decodes the token" do
|
49
|
+
Cli.run("token decode").should be
|
50
|
+
["user_name", "exp", "aud", "scope", "client_id", "email", "user_id"].each do |a|
|
51
|
+
Cli.output.string.should include(a)
|
52
|
+
end
|
53
|
+
Cli.output.string.should include("email: sam@example.com")
|
54
|
+
#Cli.output.string.should include("user_name: #{@test_user}")
|
55
|
+
end
|
56
|
+
|
57
|
+
it "gets authenticated user information" do
|
58
|
+
Cli.run("me").should be
|
59
|
+
Cli.output.string.should include(@test_user)
|
60
|
+
end
|
61
|
+
|
62
|
+
it "updates the user" do
|
63
|
+
Cli.run "context #{@test_client}"
|
64
|
+
Cli.run("user update #{@test_user} --emails #{@test_user}+1@example.com --phones 123-456-7890").should be
|
65
|
+
Cli.run("user get #{@test_user}").should be
|
66
|
+
Cli.output.string.should include(@test_user, "#{@test_user}+1@example.com", "123-456-7890")
|
67
|
+
end
|
68
|
+
|
69
|
+
it "gets updated information in the token" do
|
70
|
+
Cli.run("token get #{@test_user} #{@test_pwd}").should be
|
71
|
+
Cli.output.string.should include("Successfully fetched token")
|
72
|
+
Cli.run("token decode").should be
|
73
|
+
Cli.output.string.should include("email: #{@test_user}+1@example.com")
|
74
|
+
end
|
75
|
+
|
76
|
+
it "gets ids for a username" do
|
77
|
+
Cli.run("user ids #{@test_user.downcase}").should be
|
78
|
+
Cli.output.string.should include(@test_user, "id")
|
79
|
+
end
|
80
|
+
|
81
|
+
it "has multiple distinct authentication contexts" do
|
82
|
+
Cli.run("contexts").should be
|
83
|
+
Cli.output.string.should include "[admin]", "[#{@test_client}]", "[#{@test_user.downcase}]"
|
84
|
+
end
|
85
|
+
|
86
|
+
it "removes the user context" do
|
87
|
+
Cli.run("token delete #{@test_user}").should be
|
88
|
+
Cli.run "contexts"
|
89
|
+
Cli.output.string.should include "[admin]", "[#{@test_client}]"
|
90
|
+
Cli.output.string.should_not include "#{@test_user}"
|
91
|
+
end
|
92
|
+
|
93
|
+
it "logs in with owner password grant" do
|
94
|
+
Cli.run("token owner get #{@test_client} -s #{@test_secret} #{@test_user} -p #{@test_pwd}" ).should be
|
95
|
+
Cli.output.string.should include "Successfully fetched token"
|
96
|
+
end
|
97
|
+
|
98
|
+
it "decodes the owner token" do
|
99
|
+
Cli.run("token decode").should be
|
100
|
+
["user_name", "exp", "aud", "scope", "client_id", "email", "user_id", "openid", "password.write"].each do |a|
|
101
|
+
Cli.output.string.should include a
|
102
|
+
end
|
103
|
+
end
|
104
|
+
|
105
|
+
it "uses the token endpoint given by the login server" do
|
106
|
+
pending "only saml login server returns token endpoint" if ENV["UAA_CLIENT_TARGET"]
|
107
|
+
@stub_uaa.info[:token_endpoint] = te = "#{@stub_uaa.url}/alternate"
|
108
|
+
Cli.run("target #{@target} --config")
|
109
|
+
Cli.run("token client get #{@test_client} -s #{@test_secret}").should be
|
110
|
+
Config.yaml.should include("access_token", "token_endpoint", te)
|
111
|
+
@stub_uaa.info[:token_endpoint].should be_nil
|
112
|
+
Cli.configure("", nil, StringIO.new) # clean up
|
113
|
+
Cli.run("target #{@target}").should be
|
114
|
+
Cli.run("token client get #{@admin_client} -s #{@admin_secret}").should be
|
115
|
+
end
|
116
|
+
|
117
|
+
end
|
118
|
+
|
119
|
+
end
|
data/spec/user_spec.rb
ADDED
@@ -0,0 +1,61 @@
|
|
1
|
+
#--
|
2
|
+
# Cloud Foundry 2012.02.03 Beta
|
3
|
+
# Copyright (c) [2009-2012] VMware, Inc. All Rights Reserved.
|
4
|
+
#
|
5
|
+
# This product is licensed to you under the Apache License, Version 2.0 (the "License").
|
6
|
+
# You may not use this product except in compliance with the License.
|
7
|
+
#
|
8
|
+
# This product includes a number of subcomponents with
|
9
|
+
# separate copyright notices and license terms. Your use of these
|
10
|
+
# subcomponents is subject to the terms and conditions of the
|
11
|
+
# subcomponent's license, as noted in the LICENSE file.
|
12
|
+
#++
|
13
|
+
|
14
|
+
require 'spec_helper'
|
15
|
+
require 'cli'
|
16
|
+
|
17
|
+
module CF::UAA
|
18
|
+
|
19
|
+
describe UserCli do
|
20
|
+
|
21
|
+
include SpecHelper
|
22
|
+
|
23
|
+
before :all do
|
24
|
+
#Util.default_logger(:trace)
|
25
|
+
Cli.configure("", nil, StringIO.new, true)
|
26
|
+
setup_target(authorities: "clients.read,scim.read,scim.write")
|
27
|
+
Cli.run("token client get #{@test_client} -s #{@test_secret}").should be
|
28
|
+
Config.yaml.should include("access_token")
|
29
|
+
@test_pwd = "TesTpwd$%^"
|
30
|
+
@test_user = "tEst_UseR_#{Time.now.to_i}"
|
31
|
+
Cli.run("user add #{@test_user} -p #{@test_pwd} " +
|
32
|
+
"--emails sam@example.com,joNES@sample.com --given_name SamueL " +
|
33
|
+
"--phones 801-555-1212 --family_name jonES").should be
|
34
|
+
end
|
35
|
+
|
36
|
+
after :all do cleanup_target end
|
37
|
+
|
38
|
+
it "creates a user" do
|
39
|
+
Cli.output.string.should include "success"
|
40
|
+
end
|
41
|
+
|
42
|
+
it "fails to change a user's password with the wrong old pwd" do
|
43
|
+
Cli.run("password change -p newpwd --old_password not-the-password").should be_nil
|
44
|
+
end
|
45
|
+
|
46
|
+
it "changes a user's password" do
|
47
|
+
Cli.run("token get #{@test_user} #{@test_pwd}").should be
|
48
|
+
Cli.run("password change -p newpwd --old_password #{@test_pwd}").should be
|
49
|
+
Cli.run("token get #{@test_user} newpwd").should be
|
50
|
+
Cli.output.string.should include "Successfully fetched token"
|
51
|
+
end
|
52
|
+
|
53
|
+
it "preserves case in names" do
|
54
|
+
Cli.run("context #{@test_client}")
|
55
|
+
Cli.run("user get #{@test_user.upcase}").should be
|
56
|
+
Cli.output.string.should =~ /#{@test_user}/
|
57
|
+
end
|
58
|
+
|
59
|
+
end
|
60
|
+
|
61
|
+
end
|
metadata
ADDED
@@ -0,0 +1,292 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: cf-uaac
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 1.3.0
|
5
|
+
prerelease:
|
6
|
+
platform: ruby
|
7
|
+
authors:
|
8
|
+
- Dave Syer
|
9
|
+
- Dale Olds
|
10
|
+
- Joel D'sa
|
11
|
+
- Vidya Valmikinathan
|
12
|
+
- Luke Taylor
|
13
|
+
autorequire:
|
14
|
+
bindir: bin
|
15
|
+
cert_chain: []
|
16
|
+
date: 2012-12-05 00:00:00.000000000 Z
|
17
|
+
dependencies:
|
18
|
+
- !ruby/object:Gem::Dependency
|
19
|
+
name: bundler
|
20
|
+
requirement: !ruby/object:Gem::Requirement
|
21
|
+
none: false
|
22
|
+
requirements:
|
23
|
+
- - ! '>='
|
24
|
+
- !ruby/object:Gem::Version
|
25
|
+
version: '0'
|
26
|
+
type: :development
|
27
|
+
prerelease: false
|
28
|
+
version_requirements: !ruby/object:Gem::Requirement
|
29
|
+
none: false
|
30
|
+
requirements:
|
31
|
+
- - ! '>='
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '0'
|
34
|
+
- !ruby/object:Gem::Dependency
|
35
|
+
name: rake
|
36
|
+
requirement: !ruby/object:Gem::Requirement
|
37
|
+
none: false
|
38
|
+
requirements:
|
39
|
+
- - ! '>='
|
40
|
+
- !ruby/object:Gem::Version
|
41
|
+
version: '0'
|
42
|
+
type: :development
|
43
|
+
prerelease: false
|
44
|
+
version_requirements: !ruby/object:Gem::Requirement
|
45
|
+
none: false
|
46
|
+
requirements:
|
47
|
+
- - ! '>='
|
48
|
+
- !ruby/object:Gem::Version
|
49
|
+
version: '0'
|
50
|
+
- !ruby/object:Gem::Dependency
|
51
|
+
name: rspec
|
52
|
+
requirement: !ruby/object:Gem::Requirement
|
53
|
+
none: false
|
54
|
+
requirements:
|
55
|
+
- - ! '>='
|
56
|
+
- !ruby/object:Gem::Version
|
57
|
+
version: '0'
|
58
|
+
type: :development
|
59
|
+
prerelease: false
|
60
|
+
version_requirements: !ruby/object:Gem::Requirement
|
61
|
+
none: false
|
62
|
+
requirements:
|
63
|
+
- - ! '>='
|
64
|
+
- !ruby/object:Gem::Version
|
65
|
+
version: '0'
|
66
|
+
- !ruby/object:Gem::Dependency
|
67
|
+
name: simplecov
|
68
|
+
requirement: !ruby/object:Gem::Requirement
|
69
|
+
none: false
|
70
|
+
requirements:
|
71
|
+
- - ! '>='
|
72
|
+
- !ruby/object:Gem::Version
|
73
|
+
version: '0'
|
74
|
+
type: :development
|
75
|
+
prerelease: false
|
76
|
+
version_requirements: !ruby/object:Gem::Requirement
|
77
|
+
none: false
|
78
|
+
requirements:
|
79
|
+
- - ! '>='
|
80
|
+
- !ruby/object:Gem::Version
|
81
|
+
version: '0'
|
82
|
+
- !ruby/object:Gem::Dependency
|
83
|
+
name: simplecov-rcov
|
84
|
+
requirement: !ruby/object:Gem::Requirement
|
85
|
+
none: false
|
86
|
+
requirements:
|
87
|
+
- - ! '>='
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '0'
|
90
|
+
type: :development
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
none: false
|
94
|
+
requirements:
|
95
|
+
- - ! '>='
|
96
|
+
- !ruby/object:Gem::Version
|
97
|
+
version: '0'
|
98
|
+
- !ruby/object:Gem::Dependency
|
99
|
+
name: ci_reporter
|
100
|
+
requirement: !ruby/object:Gem::Requirement
|
101
|
+
none: false
|
102
|
+
requirements:
|
103
|
+
- - ! '>='
|
104
|
+
- !ruby/object:Gem::Version
|
105
|
+
version: '0'
|
106
|
+
type: :development
|
107
|
+
prerelease: false
|
108
|
+
version_requirements: !ruby/object:Gem::Requirement
|
109
|
+
none: false
|
110
|
+
requirements:
|
111
|
+
- - ! '>='
|
112
|
+
- !ruby/object:Gem::Version
|
113
|
+
version: '0'
|
114
|
+
- !ruby/object:Gem::Dependency
|
115
|
+
name: highline
|
116
|
+
requirement: !ruby/object:Gem::Requirement
|
117
|
+
none: false
|
118
|
+
requirements:
|
119
|
+
- - ! '>='
|
120
|
+
- !ruby/object:Gem::Version
|
121
|
+
version: '0'
|
122
|
+
type: :runtime
|
123
|
+
prerelease: false
|
124
|
+
version_requirements: !ruby/object:Gem::Requirement
|
125
|
+
none: false
|
126
|
+
requirements:
|
127
|
+
- - ! '>='
|
128
|
+
- !ruby/object:Gem::Version
|
129
|
+
version: '0'
|
130
|
+
- !ruby/object:Gem::Dependency
|
131
|
+
name: cf-uaa-lib
|
132
|
+
requirement: !ruby/object:Gem::Requirement
|
133
|
+
none: false
|
134
|
+
requirements:
|
135
|
+
- - ! '>='
|
136
|
+
- !ruby/object:Gem::Version
|
137
|
+
version: 1.3.0
|
138
|
+
type: :runtime
|
139
|
+
prerelease: false
|
140
|
+
version_requirements: !ruby/object:Gem::Requirement
|
141
|
+
none: false
|
142
|
+
requirements:
|
143
|
+
- - ! '>='
|
144
|
+
- !ruby/object:Gem::Version
|
145
|
+
version: 1.3.0
|
146
|
+
- !ruby/object:Gem::Dependency
|
147
|
+
name: multi_json
|
148
|
+
requirement: !ruby/object:Gem::Requirement
|
149
|
+
none: false
|
150
|
+
requirements:
|
151
|
+
- - ! '>='
|
152
|
+
- !ruby/object:Gem::Version
|
153
|
+
version: '0'
|
154
|
+
type: :runtime
|
155
|
+
prerelease: false
|
156
|
+
version_requirements: !ruby/object:Gem::Requirement
|
157
|
+
none: false
|
158
|
+
requirements:
|
159
|
+
- - ! '>='
|
160
|
+
- !ruby/object:Gem::Version
|
161
|
+
version: '0'
|
162
|
+
- !ruby/object:Gem::Dependency
|
163
|
+
name: eventmachine
|
164
|
+
requirement: !ruby/object:Gem::Requirement
|
165
|
+
none: false
|
166
|
+
requirements:
|
167
|
+
- - ! '>='
|
168
|
+
- !ruby/object:Gem::Version
|
169
|
+
version: '0'
|
170
|
+
type: :runtime
|
171
|
+
prerelease: false
|
172
|
+
version_requirements: !ruby/object:Gem::Requirement
|
173
|
+
none: false
|
174
|
+
requirements:
|
175
|
+
- - ! '>='
|
176
|
+
- !ruby/object:Gem::Version
|
177
|
+
version: '0'
|
178
|
+
- !ruby/object:Gem::Dependency
|
179
|
+
name: launchy
|
180
|
+
requirement: !ruby/object:Gem::Requirement
|
181
|
+
none: false
|
182
|
+
requirements:
|
183
|
+
- - ! '>='
|
184
|
+
- !ruby/object:Gem::Version
|
185
|
+
version: '0'
|
186
|
+
type: :runtime
|
187
|
+
prerelease: false
|
188
|
+
version_requirements: !ruby/object:Gem::Requirement
|
189
|
+
none: false
|
190
|
+
requirements:
|
191
|
+
- - ! '>='
|
192
|
+
- !ruby/object:Gem::Version
|
193
|
+
version: '0'
|
194
|
+
- !ruby/object:Gem::Dependency
|
195
|
+
name: em-http-request
|
196
|
+
requirement: !ruby/object:Gem::Requirement
|
197
|
+
none: false
|
198
|
+
requirements:
|
199
|
+
- - ! '>='
|
200
|
+
- !ruby/object:Gem::Version
|
201
|
+
version: 1.0.0.beta.3
|
202
|
+
type: :runtime
|
203
|
+
prerelease: false
|
204
|
+
version_requirements: !ruby/object:Gem::Requirement
|
205
|
+
none: false
|
206
|
+
requirements:
|
207
|
+
- - ! '>='
|
208
|
+
- !ruby/object:Gem::Version
|
209
|
+
version: 1.0.0.beta.3
|
210
|
+
description: Client command line tools for interacting with the CloudFoundry User
|
211
|
+
Account and Authorization (UAA) server. The UAA is an OAuth2 Authorization Server
|
212
|
+
so it can be used by webapps and command line apps to obtain access tokens to act
|
213
|
+
on behalf of users. The tokens can then be used to access protected resources in
|
214
|
+
a Resource Server. This library can be used by clients (as a convenient wrapper
|
215
|
+
for mainstream oauth gems) or by resource servers.
|
216
|
+
email:
|
217
|
+
- dsyer@vmware.com
|
218
|
+
- olds@vmware.com
|
219
|
+
- jdsa@vmware.com
|
220
|
+
- vidya@vmware.com
|
221
|
+
- ltaylor@vmware.com
|
222
|
+
executables:
|
223
|
+
- completion-helper
|
224
|
+
- uaac
|
225
|
+
- uaac-completion.sh
|
226
|
+
- uaas
|
227
|
+
extensions: []
|
228
|
+
extra_rdoc_files: []
|
229
|
+
files:
|
230
|
+
- .gitignore
|
231
|
+
- Gemfile
|
232
|
+
- README.md
|
233
|
+
- Rakefile
|
234
|
+
- bin/completion-helper
|
235
|
+
- bin/uaac
|
236
|
+
- bin/uaac-completion.sh
|
237
|
+
- bin/uaas
|
238
|
+
- cf-uaac.gemspec
|
239
|
+
- lib/cli.rb
|
240
|
+
- lib/cli/base.rb
|
241
|
+
- lib/cli/client_reg.rb
|
242
|
+
- lib/cli/common.rb
|
243
|
+
- lib/cli/config.rb
|
244
|
+
- lib/cli/favicon.ico
|
245
|
+
- lib/cli/group.rb
|
246
|
+
- lib/cli/info.rb
|
247
|
+
- lib/cli/runner.rb
|
248
|
+
- lib/cli/token.rb
|
249
|
+
- lib/cli/user.rb
|
250
|
+
- lib/cli/version.rb
|
251
|
+
- lib/stub/scim.rb
|
252
|
+
- lib/stub/server.rb
|
253
|
+
- lib/stub/uaa.rb
|
254
|
+
- spec/client_reg_spec.rb
|
255
|
+
- spec/common_spec.rb
|
256
|
+
- spec/group_spec.rb
|
257
|
+
- spec/http_spec.rb
|
258
|
+
- spec/info_spec.rb
|
259
|
+
- spec/spec_helper.rb
|
260
|
+
- spec/token_spec.rb
|
261
|
+
- spec/user_spec.rb
|
262
|
+
homepage: https://github.com/cloudfoundry/cf-uaac
|
263
|
+
licenses: []
|
264
|
+
post_install_message:
|
265
|
+
rdoc_options: []
|
266
|
+
require_paths:
|
267
|
+
- lib
|
268
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
269
|
+
none: false
|
270
|
+
requirements:
|
271
|
+
- - ! '>='
|
272
|
+
- !ruby/object:Gem::Version
|
273
|
+
version: '0'
|
274
|
+
segments:
|
275
|
+
- 0
|
276
|
+
hash: -3878497912978208519
|
277
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
278
|
+
none: false
|
279
|
+
requirements:
|
280
|
+
- - ! '>='
|
281
|
+
- !ruby/object:Gem::Version
|
282
|
+
version: '0'
|
283
|
+
segments:
|
284
|
+
- 0
|
285
|
+
hash: -3878497912978208519
|
286
|
+
requirements: []
|
287
|
+
rubyforge_project: cf-uaac
|
288
|
+
rubygems_version: 1.8.21
|
289
|
+
signing_key:
|
290
|
+
specification_version: 3
|
291
|
+
summary: Command line interface for CloudFoundry UAA
|
292
|
+
test_files: []
|