summaryrefslogtreecommitdiffstats
path: root/scripts/index.py
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/index.py')
-rwxr-xr-xscripts/index.py29
1 files changed, 25 insertions, 4 deletions
diff --git a/scripts/index.py b/scripts/index.py
index d32a3a6..8d10129 100755
--- a/scripts/index.py
+++ b/scripts/index.py
@@ -18,6 +18,7 @@ from mod_python import util
import xmlrpclib
import cgi
+import os
from cobbler.webui import CobblerWeb
XMLRPC_SERVER = "http://127.0.0.1:25152" # was http://127.0.0.1/cobbler_api_rw"
@@ -70,7 +71,28 @@ def handler(req):
my_user = __get_user(req)
my_uri = req.uri
sess = __get_session(req)
- token = sess['cobbler_token']
+
+ if not sess.has_key('cobbler_token'):
+ # using Kerberos instead of Python Auth handler?
+ # We need to get our own token for use with authn_passthru
+ # which should also be configured in /etc/cobbler/modules.conf
+ # if another auth mode is configured in modules.conf this will
+ # most certaintly fail.
+ try:
+ if not os.path.exists("/var/lib/cobbler/web.ss"):
+ apache.log_error("cannot load /var/lib/cobbler/web.ss")
+ return apache.HTTP_UNAUTHORIZED
+ fd = open("/var/lib/cobbler/web.ss")
+ data = fd.read()
+ my_pw = data
+ fd.close()
+ token = xmlrpc_server.login(my_user,my_pw)
+ except Exception, e:
+ apache.log_error(str(e))
+ return apache.HTTP_UNAUTHORIZED
+ sess['cobbler_token'] = token
+ else:
+ token = sess['cobbler_token']
# needed?
req.add_common_vars()
@@ -100,8 +122,8 @@ def handler(req):
content = func( "Invalid Mode: \"%s\"" % mode )
# apache.log_error("%s:%s ... %s" % (my_user, my_uri, str(form)))
- req.content_type = "text/html"
- req.write(content)
+ req.content_type = "text/html;charset=utf-8"
+ req.write(unicode(content).encode('utf-8'))
return apache.OK
@@ -118,7 +140,6 @@ def authenhandler(req):
my_user = req.user
my_uri = req.uri
- apache.log_error("authenhandler called: %s" % my_user)
try:
token = xmlrpc_server.login(my_user,my_pw)
except Exception, e: