[X2Go-Commits] x2gobroker.git - master (branch) updated: 0.0.1.0-14-gbf9ca01

X2Go dev team git-admin at x2go.org
Wed Apr 17 01:25:29 CEST 2013


The branch, master has been updated
       via  bf9ca01cd94266ee47c6ce056a702a942803124c (commit)
       via  d6e31e806eeb92472e1eaa2c87c3bae3f5d94dc4 (commit)
       via  ad12802c5aa0c60a2586d5874f638ef1dd7dc8e3 (commit)
       via  11cc12dd2fe8c0d0e171bb79e8272c7ee60528c9 (commit)
       via  26dd0105562fbdebc0662b8f86d78a3a8d71c2fa (commit)
      from  ca33ea93056615c370586d9f1054b29695b56393 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit bf9ca01cd94266ee47c6ce056a702a942803124c
Author: Mike Gabriel <mike.gabriel at das-netzwerkteam.de>
Date:   Wed Apr 17 01:24:03 2013 +0200

    Add Apache2 configuration for WSGI support that shows how to setup a VirtualHost for X2Go Session Broker.

commit d6e31e806eeb92472e1eaa2c87c3bae3f5d94dc4
Author: Mike Gabriel <mike.gabriel at das-netzwerkteam.de>
Date:   Wed Apr 17 01:20:22 2013 +0200

    postrm script for x2gobroker-authservice

commit ad12802c5aa0c60a2586d5874f638ef1dd7dc8e3
Author: Mike Gabriel <mike.gabriel at das-netzwerkteam.de>
Date:   Tue Apr 16 12:10:08 2013 +0200

    throw a 404 if broker backend cannot be found (html webui)

commit 11cc12dd2fe8c0d0e171bb79e8272c7ee60528c9
Author: Mike Gabriel <mike.gabriel at das-netzwerkteam.de>
Date:   Tue Apr 16 12:09:41 2013 +0200

    throw a 404 if broker backend cannot be found (plain webui)

commit 26dd0105562fbdebc0662b8f86d78a3a8d71c2fa
Author: Mike Gabriel <mike.gabriel at das-netzwerkteam.de>
Date:   Tue Apr 16 12:03:05 2013 +0200

    Fix hard-coded path to x2gobroker's authservice socket.

-----------------------------------------------------------------------

Summary of changes:
 debian/changelog                                   |    3 +
 ...daemon.postrm => x2gobroker-authservice.postrm} |   12 +---
 debian/x2gobroker-wsgi.install                     |    3 +-
 debian/x2gobroker-wsgi.links                       |    3 +-
 etc/x2gobroker-wsgi.apache.vhost                   |   75 ++++++++++++++++++++
 x2gobroker/authservice.py                          |    5 +-
 x2gobroker/defaults.py                             |    2 +-
 x2gobroker/web/html.py                             |   10 ++-
 x2gobroker/web/plain.py                            |   11 ++-
 9 files changed, 105 insertions(+), 19 deletions(-)
 copy debian/{x2gobroker-daemon.postrm => x2gobroker-authservice.postrm} (62%)
 create mode 100644 etc/x2gobroker-wsgi.apache.vhost

The diff of changes is:
diff --git a/debian/changelog b/debian/changelog
index dad9b2d..dffaa03 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -3,9 +3,12 @@ x2gobroker (0.0.1.1-0~x2go1) UNRELEASED; urgency=low
   * New upstream version (0.0.1.1):
     - Add WSGI support to X2Go Session Broker. Allows plugging into
       Apache2 by using the mod_wsgi module.
+    - Add Apache2 configuration for WSGI support that shows how to
+      setup a VirtualHost for X2Go Session Broker.
     - For sessions profiles with autologin enable, add a dummy key
       session profile parameter that triggers key based auth in X2Go Client.
       (Fixes: #154).
+    - Fix hard-coded path to x2gobroker's authservice socket.
   * /debian/control:
     + Fix --root parameter in DEB_PYTHON_INSTALL_ARGS.
   * Properly remove the X2Go Session broker log files on package purgal.
diff --git a/debian/x2gobroker-daemon.postrm b/debian/x2gobroker-authservice.postrm
similarity index 62%
copy from debian/x2gobroker-daemon.postrm
copy to debian/x2gobroker-authservice.postrm
index 3eba400..284e881 100755
--- a/debian/x2gobroker-daemon.postrm
+++ b/debian/x2gobroker-authservice.postrm
@@ -1,5 +1,5 @@
 #! /bin/sh
-# postrm script for x2gobroker-daemon
+# postrm script for x2gobroker-authservice
 #
 # see: dh_installdeb(1)
 # summary of how this script can be called:
@@ -19,21 +19,13 @@ set -e
 case "$1" in
 	purge)
 
-		if [ ! -d /usr/share/doc/x2gobroker-agent ] && [ ! -d /usr/share/doc/x2gobroker-authservice ] && [ ! -d /usr/share/doc/x2gobroker-wsgi ]; then
+		if [ ! -d /usr/share/doc/x2gobroker-daemon ] && [ ! -d /usr/share/doc/x2gobroker-wsgi ] && [ ! -d /usr/share/doc/x2gobroker-agent ] ; then
 			if dpkg-statoverride --list /var/log/x2gobroker 1>/dev/null; then
 				dpkg-statoverride --remove /var/log/x2gobroker
 			fi
 			rm -Rf /var/log/x2gobroker
 		fi
 
-		if [ ! -d /usr/share/doc/x2gobroker-agent ] && [ ! -d /usr/share/doc/x2gobroker-wsgi ]; then
-			# remove user/group x2gobroker from system (only if not in use by x2gobroker-agent
-			getent passwd x2gobroker 1>/dev/null && deluser x2gobroker
-			getent group x2gobroker 1>/dev/null && delgroup x2gobroker
-			getent group x2gobroker 1>/dev/null && delgroup x2gobroker
-			rm -Rf /var/lib/x2gobroker
-		fi
-
 		;;
 	remove|upgrade|failed-upgrade|abort-install|abort-upgrade|disappear)
 		;;
diff --git a/debian/x2gobroker-wsgi.install b/debian/x2gobroker-wsgi.install
index 40b18c5..26c32b7 100644
--- a/debian/x2gobroker-wsgi.install
+++ b/debian/x2gobroker-wsgi.install
@@ -1 +1,2 @@
-etc/x2gobroker-wsgi.apache.conf /etc/x2go/
\ No newline at end of file
+etc/x2gobroker-wsgi.apache.conf /etc/x2go/
+etc/x2gobroker-wsgi.apache.vhost /etc/x2go/
\ No newline at end of file
diff --git a/debian/x2gobroker-wsgi.links b/debian/x2gobroker-wsgi.links
index 99e592a..e1659e5 100644
--- a/debian/x2gobroker-wsgi.links
+++ b/debian/x2gobroker-wsgi.links
@@ -1 +1,2 @@
-/etc/x2go/x2gobroker-wsgi.apache.conf /etc/apache2/conf.d/x2gobroker-wsgi
\ No newline at end of file
+/etc/x2go/x2gobroker-wsgi.apache.conf /etc/apache2/conf.d/x2gobroker-wsgi
+/etc/x2go/x2gobroker-wsgi.apache.vhost /etc/apache2/sites-available/x2gobroker
diff --git a/etc/x2gobroker-wsgi.apache.vhost b/etc/x2gobroker-wsgi.apache.vhost
new file mode 100644
index 0000000..4de60a8
--- /dev/null
+++ b/etc/x2gobroker-wsgi.apache.vhost
@@ -0,0 +1,75 @@
+###
+### Virtual Host configuration for an X2Go Session Broker
+###
+
+#
+# Make sure to disabled /etc/apache2/x2gobroker-wsgi completely if you
+# prefer setting up the X2Go Session Broker as a virtual host.
+#
+
+# enable debugging
+#SetEnv X2GOBROKER_DEBUG off
+
+# the default user/group that this WSGI application runs as
+#X2GOBROKER_DAEMON_USER=x2gobroker
+#X2GOBROKER_DAEMON_GROUP=x2gobroker
+WSGIDaemonProcess x2gobroker user=x2gobroker group=x2gobroker processes=5 threads=15
+WSGIPassAuthorization On
+
+# default broker backend (default: zeroconf)
+#SetEnv X2GOBROKER_DEFAULT_BACKEND zeroconf
+#SetEnv X2GOBROKER_DEFAULT_BACKEND inifile
+#SetEnv X2GOBROKER_DEFAULT_BACKEND ldap
+#SetEnv X2GOBROKER_DEFAULT_BACKEND <some-other-broker-backend>
+
+# path to the X2Go Session Broker's configuration file
+#SetEnv X2GOBROKER_CONFIG /etc/x2go/x2gobroker.conf
+
+# path to the X2Go Session Broker's session profiles file (when using the inifile backend)
+#SetEnv X2GOBROKER_SESSIONPROFILES /etc/x2go/broker/x2gobroker-sessionprofiles.conf
+
+# path to the X2Go Session Broker's agent command
+#SetEnv X2GOBROKER_AGENT_CMD /usr/lib/x2go/x2gobroker-agent
+
+# authentication socket of the X2Go Broker's PAM Authentication Service
+#SetEnv X2GOBROKER_AUTHSOCKET /run/x2gobroker/x2gobroker-authservice.socket
+
+# if you have to-be-statically-served files somewhere below the broker URL
+#Alias /x2gobroker/static /some/static/path/
+
+WSGIScriptAlias / /usr/sbin/x2gobroker
+WSGIProcessGroup x2gobroker
+
+<VirtualHost *:443>
+
+    ServerName localhost
+    ServerAdmin webmaster at localhost
+
+    SSLEngine on
+    #   SSL Cipher Suite:
+    SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL
+    #   Server Certificate:
+    SSLCertificateFile /etc/x2go/broker/ssl/broker.crt
+    #   Server Private Key:
+    SSLCertificateKeyFile /etc/x2go/broker/ssl/broker.key
+    #SSLCertificateChainFile /etc/x2go/broker/ssl/cacert.key
+    #SetEnvIf User-Agent ".*MSIE.*" \
+    #    nokeepalive ssl-unclean-shutdown \
+    #    downgrade-1.0 force-response-1.0
+
+    <Directory /usr/sbin/x2gobroker>
+        Order deny,allow
+        Deny from all
+
+        # grant explicit access below
+        Allow from localhost
+        Allow from localhost-ip6
+
+        Options +FollowSymLinks
+        Options -Indexes
+
+        SSLOptions +StdEnvVars
+
+    </Directory>
+
+</VirtualHost>
diff --git a/x2gobroker/authservice.py b/x2gobroker/authservice.py
index fa7ce84..df97435 100644
--- a/x2gobroker/authservice.py
+++ b/x2gobroker/authservice.py
@@ -28,13 +28,16 @@ import socket
 from pwd import getpwnam
 from grp import getgrnam
 
+# set up the broker's environment
+import x2gobroker.defaults
+
 from loggers import logger_authservice
 
 logger_authservice.info('X2Go Session Broker PAM Authentication Service: Setting up the broker\'s environment...')
 if os.environ.has_key('X2GOBROKER_AUTHSERVICE_SOCKET'):
     X2GOBROKER_AUTHSERVICE_SOCKET=os.environ['X2GOBROKER_AUTHSERVICE_SOCKET']
 else:
-    X2GOBROKER_AUTHSERVICE_SOCKET="/var/run/x2gobroker-authservice.socket"
+    X2GOBROKER_AUTHSERVICE_SOCKET="/run/x2gobroker/x2gobroker-authservice.socket"
 logger_authservice.info('  X2GOBROKER_AUTHSERVICE_SOCKET: {value}'.format(value=X2GOBROKER_AUTHSERVICE_SOCKET))
 
 
diff --git a/x2gobroker/defaults.py b/x2gobroker/defaults.py
index cfc7372..ee5d7f8 100644
--- a/x2gobroker/defaults.py
+++ b/x2gobroker/defaults.py
@@ -77,7 +77,7 @@ else:
 if os.environ.has_key('X2GOBROKER_AUTHSERVICE_SOCKET'):
     X2GOBROKER_AUTHSERVICE_SOCKET=os.environ['X2GOBROKER_AUTHSERVICE_SOCKET']
 else:
-    X2GOBROKER_AUTHSERVICE_SOCKET="/var/run/x2gobroker-authservice.socket"
+    X2GOBROKER_AUTHSERVICE_SOCKET="/run/x2gobroker/x2gobroker-authservice.socket"
 
 if os.environ.has_key('X2GOBROKER_DEFAULT_BACKEND'):
     X2GOBROKER_DEFAULT_BACKEND = os.environ['X2GOBROKER_DEFAULT_BACKEND']
diff --git a/x2gobroker/web/html.py b/x2gobroker/web/html.py
index fd76eb8..0e1988f 100644
--- a/x2gobroker/web/html.py
+++ b/x2gobroker/web/html.py
@@ -77,8 +77,14 @@ $output
 
         # silence pyflakes...
         broker_backend = None
-        exec("import x2gobroker.brokers.{backend}_broker".format(backend=backend))
-        exec("broker_backend = x2gobroker.brokers.{backend}_broker.X2GoBroker()".format(backend=backend))
+        try:
+            # dynamically detect broker backend from given URL
+            exec("import x2gobroker.brokers.{backend}_broker".format(backend=backend))
+            exec("broker_backend = x2gobroker.brokers.{backend}_broker.X2GoBroker()".format(backend=backend))
+        except ImportError:
+            # throw a 404 if the backend does not exist
+            raise tornado.web.HTTPError(404)
+
         global_config = broker_backend.get_global_config()
         backend_config = broker_backend.get_backend_config(backend)
 
diff --git a/x2gobroker/web/plain.py b/x2gobroker/web/plain.py
index c4deb42..8487e43 100644
--- a/x2gobroker/web/plain.py
+++ b/x2gobroker/web/plain.py
@@ -58,9 +58,14 @@ class X2GoBrokerWeb(tornado.web.RequestHandler):
 
         # silence pyflakes...
         broker_backend = None
-        # dynamically detect broker backend from given URL
-        exec("import x2gobroker.brokers.{backend}_broker".format(backend=backend))
-        exec("broker_backend = x2gobroker.brokers.{backend}_broker.X2GoBroker()".format(backend=backend))
+        try:
+            # dynamically detect broker backend from given URL
+            exec("import x2gobroker.brokers.{backend}_broker".format(backend=backend))
+            exec("broker_backend = x2gobroker.brokers.{backend}_broker.X2GoBroker()".format(backend=backend))
+        except ImportError:
+            # throw a 404 if the backend does not exist
+            raise tornado.web.HTTPError(404)
+
         global_config = broker_backend.get_global_config()
 
         # if the broker backend is disabled in the configuration, pretend to have nothing on offer


hooks/post-receive
-- 
x2gobroker.git (HTTP(S) Session broker for X2Go)

This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "x2gobroker.git" (HTTP(S) Session broker for X2Go).




More information about the x2go-commits mailing list