From 3531a0f5eb0e348e8235cde091ec49e9ccbfb26a Mon Sep 17 00:00:00 2001 From: "Ruben S. Montero" Date: Thu, 25 Aug 2011 23:49:14 +0200 Subject: [PATCH] feature #754: Authenticate file for server auth --- src/authm_mad/remotes/server/authenticate | 54 +++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100755 src/authm_mad/remotes/server/authenticate diff --git a/src/authm_mad/remotes/server/authenticate b/src/authm_mad/remotes/server/authenticate new file mode 100755 index 0000000000..5cb282c1d8 --- /dev/null +++ b/src/authm_mad/remotes/server/authenticate @@ -0,0 +1,54 @@ +#!/usr/bin/env ruby + +# -------------------------------------------------------------------------- # +# Copyright 2002-2011, OpenNebula Project Leads (OpenNebula.org) # +# # +# Licensed under the Apache License, Version 2.0 (the "License"); you may # +# not use this file except in compliance with the License. You may obtain # +# a copy of the License at # +# # +# http://www.apache.org/licenses/LICENSE-2.0 # +# # +# Unless required by applicable law or agreed to in writing, software # +# distributed under the License is distributed on an "AS IS" BASIS, # +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # +# See the License for the specific language governing permissions and # +# limitations under the License. # +#--------------------------------------------------------------------------- # + +ONE_LOCATION=ENV["ONE_LOCATION"] + +if !ONE_LOCATION + RUBY_LIB_LOCATION="/usr/lib/one/ruby" + ETC_LOCATION="/etc/one/" +else + RUBY_LIB_LOCATION=ONE_LOCATION+"/lib/ruby" + ETC_LOCATION=ONE_LOCATION+"/etc/" +end + +$: << RUBY_LIB_LOCATION + +require 'server_auth' +require 'scripts_common' + +user = ARGV[0] # username as registered in OpenNebula +pass = ARGV[1] # password for this user +secret = ARGV[2] # Base64 encoded secret as obtained from login_token + +#OpenNebula.log_debug("Authenticating #{user}, with password #{pass} (#{secret})") + +begin + server_auth = ServerAuth.new + + rc = server_auth.authenticate(user, pass, secret) +rescue => e + OpenNebula.error_message e.message + exit -1 +end + +if rc == true + exit 0 +else + OpenNebula.error_message rc + exit -1 +end