cfoundry 2.3.7.rc1 → 2.4.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.
@@ -19,11 +19,12 @@ require "cfoundry/v2/app_event"
19
19
 
20
20
  require "cfoundry/v2/base"
21
21
  require "cfoundry/v2/client"
22
+ #require "cfoundry/v2/fake_client"
22
23
 
23
24
  module CFoundry
24
25
  class Client < BaseClient
25
26
  def self.new(*args)
26
- puts "DEPRECATION WARNING: Please use CFoundry::Client.get instead of CFoundry::Client.new"
27
+ warn "DEPRECATION WARNING: Please use CFoundry::Client.get instead of CFoundry::Client.new"
27
28
  get(*args)
28
29
  end
29
30
 
@@ -6,8 +6,9 @@ module CFoundry
6
6
  @base.uaa.prompts
7
7
  end
8
8
 
9
- def login(username, password)
10
- @base.token = AuthToken.from_uaa_token_info(@base.uaa.authorize(username, password))
9
+ def login(credentials)
10
+ token_info = @base.uaa.authorize(credentials)
11
+ @base.token = AuthToken.from_uaa_token_info(token_info)
11
12
  end
12
13
  end
13
- end
14
+ end
@@ -1,5 +1,5 @@
1
1
  require "cfoundry/baseclient"
2
- require 'uaa'
2
+ require "uaa"
3
3
 
4
4
  module CFoundry
5
5
  class UAAClient
@@ -17,12 +17,10 @@ module CFoundry
17
17
  end
18
18
  end
19
19
 
20
- def authorize(username, password)
21
- @username = username
22
- @password = password
23
-
20
+ def authorize(credentials)
24
21
  wrap_uaa_errors do
25
- authenticate_with_password_grant || authenticate_with_implicit_grant
22
+ authenticate_with_password_grant(credentials) ||
23
+ authenticate_with_implicit_grant(credentials)
26
24
  end
27
25
  end
28
26
 
@@ -103,9 +101,12 @@ module CFoundry
103
101
  @uaa_url ||= CF::UAA::Misc.discover_uaa(target)
104
102
  end
105
103
 
106
- def authenticate_with_password_grant
104
+ def authenticate_with_password_grant(credentials)
107
105
  begin
108
- token_issuer.owner_password_grant(@username, @password)
106
+ # Currently owner_password_grant method does not allow
107
+ # non-password based authenticate; so we have cheat a little bit.
108
+ token_issuer.send(:request_token,
109
+ {:grant_type => "password", :scope => nil}.merge(credentials))
109
110
  rescue CF::UAA::BadResponse => e
110
111
  status_code = e.message[/\d+/] || 400
111
112
  raise CFoundry::Denied.new("Authorization failed", status_code)
@@ -114,9 +115,9 @@ module CFoundry
114
115
  end
115
116
  end
116
117
 
117
- def authenticate_with_implicit_grant
118
+ def authenticate_with_implicit_grant(credentials)
118
119
  begin
119
- token_issuer.implicit_grant_with_creds(:username => @username, :password => @password)
120
+ token_issuer.implicit_grant_with_creds(credentials)
120
121
  rescue CF::UAA::BadResponse => e
121
122
  status_code = e.message[/\d+/] || 400
122
123
  raise CFoundry::Denied.new("Authorization failed", status_code)
@@ -44,7 +44,7 @@ module CFoundry::V2
44
44
  end
45
45
  end
46
46
 
47
- def login(username, password)
47
+ def login(credentials)
48
48
  @current_organization = nil
49
49
  @current_space = nil
50
50
  super
@@ -1,4 +1,4 @@
1
1
  module CFoundry # :nodoc:
2
2
  # CFoundry library version number.
3
- VERSION = "2.3.7.rc1".freeze
3
+ VERSION = "2.4.0".freeze
4
4
  end
@@ -72,24 +72,29 @@ EOF
72
72
  let(:auth) { Object.new }
73
73
  let(:issuer) { Object.new }
74
74
 
75
- subject { uaa.authorize(username, password) }
75
+ subject { uaa.authorize(creds) }
76
76
 
77
77
  before do
78
- issuer.stub(:owner_password_grant) { auth }
78
+ issuer.stub(:request_token) { auth }
79
79
  uaa.stub(:token_issuer) { issuer }
80
80
  end
81
81
 
82
82
  include_examples "UAA wrapper"
83
83
 
84
84
  it 'returns the token on successful authentication' do
85
- issuer.should_receive(:owner_password_grant).with(username, password) { auth }
85
+ issuer
86
+ .should_receive(:request_token)
87
+ .with(:grant_type => "password",
88
+ :scope => nil,
89
+ :username => username,
90
+ :password => password) { auth }
86
91
  expect(subject).to eq auth
87
92
  end
88
93
 
89
94
  context 'when authorization fails' do
90
95
  context 'in the expected way' do
91
96
  it 'raises a CFoundry::Denied error' do
92
- issuer.should_receive(:owner_password_grant) { raise CF::UAA::BadResponse.new("401: FooBar") }
97
+ issuer.should_receive(:request_token) { raise CF::UAA::BadResponse.new("401: FooBar") }
93
98
  expect { subject }.to raise_error(CFoundry::Denied, "401: Authorization failed")
94
99
  end
95
100
  end
@@ -97,15 +102,13 @@ EOF
97
102
 
98
103
  context 'in an unexpected way' do
99
104
  it 'raises a CFoundry::Denied error' do
100
- issuer.should_receive(:owner_password_grant) { raise CF::UAA::BadResponse.new("no_status_code") }
105
+ issuer.should_receive(:request_token) { raise CF::UAA::BadResponse.new("no_status_code") }
101
106
  expect { subject }.to raise_error(CFoundry::Denied, "400: Authorization failed")
102
107
  end
103
108
  end
104
109
 
105
110
  context "with a CF::UAA::TargetError" do
106
- before do
107
- issuer.stub(:owner_password_grant) { raise CF::UAA::TargetError.new("useless info") }
108
- end
111
+ before { issuer.stub(:request_token) { raise CF::UAA::TargetError.new("useless info") } }
109
112
 
110
113
  it "retries with implicit grant" do
111
114
  issuer.should_receive(:implicit_grant_with_creds).with(:username => username, :password => password)
@@ -28,10 +28,10 @@ shared_examples_for 'client login' do
28
28
 
29
29
  before do
30
30
  client.base.stub(:uaa) { uaa }
31
- uaa.stub(:authorize).with(email, password) { token_info }
31
+ uaa.stub(:authorize).with(:username => email, :password => password) { token_info }
32
32
  end
33
33
 
34
- subject { client.login(email, password) }
34
+ subject { client.login(:username => email, :password => password) }
35
35
 
36
36
  it 'returns a UAA token' do
37
37
  expect(subject).to be_a(CFoundry::AuthToken)
metadata CHANGED
@@ -1,8 +1,8 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cfoundry
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.3.7.rc1
5
- prerelease: 6
4
+ version: 2.4.0
5
+ prerelease:
6
6
  platform: ruby
7
7
  authors:
8
8
  - Cloud Foundry Team
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2013-07-10 00:00:00.000000000 Z
13
+ date: 2013-07-12 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: activemodel
@@ -416,13 +416,16 @@ required_ruby_version: !ruby/object:Gem::Requirement
416
416
  version: '0'
417
417
  segments:
418
418
  - 0
419
- hash: 3694164670967481672
419
+ hash: -3185654219291849147
420
420
  required_rubygems_version: !ruby/object:Gem::Requirement
421
421
  none: false
422
422
  requirements:
423
- - - ! '>'
423
+ - - ! '>='
424
424
  - !ruby/object:Gem::Version
425
- version: 1.3.1
425
+ version: '0'
426
+ segments:
427
+ - 0
428
+ hash: -3185654219291849147
426
429
  requirements: []
427
430
  rubyforge_project: cfoundry
428
431
  rubygems_version: 1.8.25