cf-uaa-lib 1.3.4 → 1.3.5
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/uaa/scim.rb +16 -5
- data/lib/uaa/version.rb +1 -1
- metadata +3 -8
data/lib/uaa/scim.rb
CHANGED
@@ -101,6 +101,12 @@ class Scim
|
|
101
101
|
@key_style = options[:symbolize_keys] ? :downsym : :down
|
102
102
|
end
|
103
103
|
|
104
|
+
# Convenience method to get the naming attribute, e.g. userName for user,
|
105
|
+
# displayName for group, client_id for client.
|
106
|
+
# @param type (see #add)
|
107
|
+
# @return [String] naming attribute
|
108
|
+
def name_attr(type) type_info(type, :name_attr) end
|
109
|
+
|
104
110
|
# Creates a SCIM resource.
|
105
111
|
# @param [Symbol] type can be :user, :group, :client, :user_id.
|
106
112
|
# @param [Hash] info converted to json and sent to the scim endpoint. For schema of
|
@@ -159,13 +165,18 @@ class Scim
|
|
159
165
|
query['attributes'] = Util.strlist(attrs, ",")
|
160
166
|
end
|
161
167
|
qstr = query.empty?? '': "?#{Util.encode_form(query)}"
|
162
|
-
info = json_get(@target, "#{type_info(type, :path)}#{qstr}",
|
168
|
+
info = json_get(@target, "#{type_info(type, :path)}#{qstr}",
|
169
|
+
@key_style, 'authorization' => @auth_header)
|
163
170
|
unless info.is_a?(Hash) && info[rk = jkey(:resources)].is_a?(Array)
|
164
171
|
|
165
|
-
# hide client endpoints that are not scim compatible
|
172
|
+
# hide client endpoints that are not yet scim compatible
|
166
173
|
if type == :client && info.is_a?(Hash)
|
167
|
-
info.each
|
168
|
-
|
174
|
+
info = info.each{ |k, v| fake_client_id(v) }.values
|
175
|
+
if m = /^client_id\s+eq\s+"([^"]+)"$/i.match(query['filter'])
|
176
|
+
idk = jkey(:client_id)
|
177
|
+
info = info.select { |c| c[idk].casecmp(m[1]) == 0 }
|
178
|
+
end
|
179
|
+
return {rk => info}
|
169
180
|
end
|
170
181
|
|
171
182
|
raise BadResponse, "invalid reply to #{type} query of #{@target}"
|
@@ -260,7 +271,7 @@ class Scim
|
|
260
271
|
|
261
272
|
# Change client secret.
|
262
273
|
# * For a client to change its own secret, the token in @auth_header must contain
|
263
|
-
# "
|
274
|
+
# "client.secret" scope and the correct +old_secret+ must be given.
|
264
275
|
# * For an admin to set a client secret, the token in @auth_header must contain
|
265
276
|
# "uaa.admin" scope.
|
266
277
|
# @see https://github.com/cloudfoundry/uaa/blob/master/docs/UAA-APIs.rst#change-client-secret-put-oauthclientsclient_idsecret
|
data/lib/uaa/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: cf-uaa-lib
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.3.
|
4
|
+
version: 1.3.5
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -13,7 +13,7 @@ authors:
|
|
13
13
|
autorequire:
|
14
14
|
bindir: bin
|
15
15
|
cert_chain: []
|
16
|
-
date: 2013-01-
|
16
|
+
date: 2013-01-22 00:00:00.000000000 Z
|
17
17
|
dependencies:
|
18
18
|
- !ruby/object:Gem::Dependency
|
19
19
|
name: multi_json
|
@@ -193,18 +193,12 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
193
193
|
- - ! '>='
|
194
194
|
- !ruby/object:Gem::Version
|
195
195
|
version: '0'
|
196
|
-
segments:
|
197
|
-
- 0
|
198
|
-
hash: -2055415488226018803
|
199
196
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
200
197
|
none: false
|
201
198
|
requirements:
|
202
199
|
- - ! '>='
|
203
200
|
- !ruby/object:Gem::Version
|
204
201
|
version: '0'
|
205
|
-
segments:
|
206
|
-
- 0
|
207
|
-
hash: -2055415488226018803
|
208
202
|
requirements: []
|
209
203
|
rubyforge_project: cf-uaa-lib
|
210
204
|
rubygems_version: 1.8.23
|
@@ -212,3 +206,4 @@ signing_key:
|
|
212
206
|
specification_version: 3
|
213
207
|
summary: Client library for CloudFoundry UAA
|
214
208
|
test_files: []
|
209
|
+
has_rdoc:
|