mirror of
https://github.com/OpenNebula/one.git
synced 2025-03-16 22:50:10 +03:00
bug #1142: Check user driver in CloudAuth
This commit is contained in:
parent
284d512916
commit
cbc622f8b5
@ -118,9 +118,9 @@ class CloudAuth
|
||||
@user_pool
|
||||
end
|
||||
|
||||
def get_password(username, non_public_user=false)
|
||||
if non_public_user == true
|
||||
xp="USER[NAME=\"#{username}\" and AUTH_DRIVER!=\"public\"]/PASSWORD"
|
||||
def get_password(username, driver=nil)
|
||||
if driver
|
||||
xp="USER[NAME=\"#{username}\" and AUTH_DRIVER=\"#{driver}\"]/PASSWORD"
|
||||
else
|
||||
xp="USER[NAME=\"#{username}\"]/PASSWORD"
|
||||
end
|
||||
|
@ -17,7 +17,7 @@
|
||||
module EC2CloudAuth
|
||||
def do_auth(env, params={})
|
||||
username = params['AWSAccessKeyId']
|
||||
one_pass = get_password(username)
|
||||
one_pass = get_password(username, 'core')
|
||||
return nil unless one_pass
|
||||
|
||||
signature = case params['SignatureVersion']
|
||||
|
@ -21,7 +21,7 @@ module OCCICloudAuth
|
||||
if auth.provided? && auth.basic?
|
||||
username, password = auth.credentials
|
||||
|
||||
one_pass = get_password(username)
|
||||
one_pass = get_password(username, 'core')
|
||||
|
||||
if one_pass && one_pass == password
|
||||
return username
|
||||
|
@ -14,7 +14,7 @@
|
||||
# limitations under the License. #
|
||||
#--------------------------------------------------------------------------- #
|
||||
|
||||
module CoreCloudAuth
|
||||
module OpenNebulaCloudAuth
|
||||
def do_auth(env, params={})
|
||||
auth = Rack::Auth::Basic::Request.new(env)
|
||||
|
||||
@ -26,7 +26,7 @@ module CoreCloudAuth
|
||||
|
||||
rc = user.info
|
||||
if OpenNebula.is_error?(rc)
|
||||
logger.error { "User #{username} could not be authenticated"}
|
||||
logger.error { "User #{username} could not be authenticated" }
|
||||
logger.error { rc.message }
|
||||
return nil
|
||||
end
|
||||
|
@ -21,7 +21,7 @@ module SunstoneCloudAuth
|
||||
if auth.provided? && auth.basic?
|
||||
username, password = auth.credentials
|
||||
|
||||
one_pass = get_password(username, true)
|
||||
one_pass = get_password(username, 'core')
|
||||
|
||||
if one_pass && one_pass == Digest::SHA1.hexdigest(password)
|
||||
return username
|
||||
|
Loading…
x
Reference in New Issue
Block a user