diff options
Diffstat (limited to 'cobbler')
-rw-r--r-- | cobbler/cobblerd.py | 1 | ||||
-rw-r--r-- | cobbler/remote.py | 25 |
2 files changed, 22 insertions, 4 deletions
diff --git a/cobbler/cobblerd.py b/cobbler/cobblerd.py index 74570dc5..d69cc575 100644 --- a/cobbler/cobblerd.py +++ b/cobbler/cobblerd.py @@ -25,6 +25,7 @@ import utils import sub_process import remote + def main(): core(logger=None) diff --git a/cobbler/remote.py b/cobbler/remote.py index 7fb73a3e..ea115061 100644 --- a/cobbler/remote.py +++ b/cobbler/remote.py @@ -23,6 +23,7 @@ from rhpl.translate import _, N_, textdomain, utf8 import xmlrpclib import logging import base64 +import ConfigParser import api as cobbler_api import yaml # Howell Clark version @@ -30,6 +31,14 @@ import utils from cexceptions import * import sub_process +config_parser = ConfigParser.ConfigParser() +auth_conf = open("/etc/cobbler/auth.conf") +config_parser.readfp(auth_conf) +auth_conf.close() + +user_database = config_parser.items("xmlrpc_service_users") + + # FIXME: make configurable? TOKEN_TIMEOUT = 60*60 # 60 minutes @@ -281,10 +290,15 @@ class CobblerReadWriteXMLRPCInterface: Returns whether this user/pass combo should be given access to the cobbler read-write API. - FIXME: always returns True, implement this. + FIXME: currently looks for users in /etc/cobbler/auth.conf + Would be very nice to allow for PAM and/or just Kerberos. """ - if user == "exampleuser": - return True + for x in user_database: + (db_user,db_password) = x + db_user = db_user.strip() + db_password = db_password.strip() + if db_user == user and db_password == password and db_password.lower() != "disabled": + return True else: return False @@ -334,6 +348,9 @@ class CobblerReadWriteXMLRPCServer(SimpleXMLRPCServer.SimpleXMLRPCServer): if __name__ == "__main__": + testuser = "mdehaan" + testpass = "llamas2007" + logger = logging.getLogger("cobbler.cobblerd") logger.setLevel(logging.DEBUG) ch = logging.FileHandler("/var/log/cobbler/cobblerd.log") @@ -344,7 +361,7 @@ if __name__ == "__main__": api = cobbler_api.BootAPI() remote = CobblerReadWriteXMLRPCInterface(api,logger) - token = remote.login("exampleuser","examplepass") + token = remote.login(testuser,testpass) print token rc = remote.test(token) print "test result: %s" % rc |