h1. Mandaye - modular reverse proxy to authenticate Mandaye is a modular rewriting reverse proxy. Its main use is to add external authentication systems to legacy application, i.e. SSO. It dispatches HTTP requests to your applications and allow you to transform and filter the request and the response. Mandaye allows to couple your authentication provider with incompatible web applications. h2. Copying This software copyrighted by Entr'ouvert and is licensed under the GNU AGPL version 3 for distribution. h2. Features * Mapping / dispatching With Mandaye you can define your own mapping files. This allows you to call your own filters on the right HTTP requests. See the config part for more details. * Filters You can define your own filters with Mandaye. This filter have access to the WSGI environment and could modify the HTTP requests and / or responses. * Local authentification Mandaye provide a sql local authentification but you can also implement your own local authentification. * Distant authentification At the moment Mandaye only support form replay for a distant authentification but we will provide SAML 2.0, OpenID and CAS support. h2. Installation h3. Dependencies You must install the following packages to use Mandaye * Python >= 2.5:: http://python.org/ * Setuptools >= 0.6:: http://pypi.python.org/pypi/setuptools * Gunicorn >= 0.13:: http://pypi.python.org/pypi/gunicorn * Poster >= 0.8:: http://pypi.python.org/pypi/poster/ * SQLAlchemy >= 0.7:: http://pypi.python.org/pypi/SQLAlchemy * Beaker >= 1.6:: http://pypi.python.org/pypi/Beaker * Mako >= 0.4:: http://pypi.python.org/pypi/Mako * lxml >= 2.3:: http://pypi.python.org/pypi/lxml You can install all those dependencies quickly using pip
pip install gevent poster SQLAlchemy Beaker Mako lxml gunicornor easy_install::
easy_install gevent poster SQLAlchemy Beaker Mako lxml gunicornor apt-get (Debian based distributions)::
apt-get install gunicorn python-poster python-sqlalchemy python-beaker python-mako python-lxml python-setuptoolsIt's recommended to install the following modules * PyCrypto >= 2.3:: http://pypi.python.org/pypi/pycrypto * Static >= 0.4:: http://pypi.python.org/pypi/static You can install this Python modules with pip
pip install pycrypto statich3. Quick installation Install at least Python >=2.5 and setuptools or distribute and enter this command in a shell
$ python setup.py installIf you want to develop use this command line
$ python setup.py developh3. Quick Start Configure MANDAYE_PATH/mandaye/config.py with your own preferences. You must configure the database uri and the log file. First create your database
$ mandaye_admin.py --createdbLaunch mandaye server
$ mandaye_server.pymandaye_server.py use gunicorn and gunicorn options (please read http://gunicorn.org/configure.html) You could also use gunicorn.conf.py-sample (in the mandaye files)
$ mandaye_server.py -c PATH_TO_THE_FILE/gunicorn.conf.pyor
$ mandaye_server.py -c PATH_TO_THE_FILE/gunicorn.conf.py -b 0.0.0.0:4242h2. Configuration TODO [[EtatDelArt]] [[Fonctionnement]]