Modular rewriting reverse proxy
This repository has been archived on 2023-02-21. You can view files and clone it, but cannot push or open issues or pull requests.
Go to file
Jérôme Schneider 0aaa601bbb Improve logging system: add a uuid and use a specific Mandaye logger
* README.rst: typo
 * mandaye/__init__.py: move logging part to log.py
 * mandaye/auth/authform.py: replace logging by mandaye logger and
   check if pycrpto is installed
 * mandaye/auth/vincennes.py: replace logging by mandaye logger
 * mandaye/config.py: improve comment on encryption
 * mandaye/dispatcher.py: replace logging by mandaye logger and
   add new debug
 * mandaye/emails.py: replace logging by mandaye logger
 * mandaye/filters/vincennes.py: replace logging by mandaye logger
 * mandaye/http.py: replace logging by mandaye logger
 * mandaye/log.py: new file to manage logging
 * mandaye/response.py: replace logging by mandaye logger and
   add debug informations
 * mandaye/server.py: replace logging by mandaye logger and
    add an uuid for the log
 * mandaye_admin.py: replace logging by mandaye logger
 * mandaye_server.py: replace logging by mandaye logger and fix Python
   path
2011-12-23 11:17:15 +01:00
init.d use sync worker for gunicorn 2011-10-24 10:15:08 +02:00
mandaye Improve logging system: add a uuid and use a specific Mandaye logger 2011-12-23 11:17:15 +01:00
pocs Mandaye now working for a basic reverse proxy 2011-08-10 18:15:26 +02:00
twill Add testing script using twill for biblio and duonet 2011-10-17 15:44:15 +02:00
COPYING Begin Mandaye true project based on poc1.py 2011-08-04 19:28:16 +02:00
README.rst Improve logging system: add a uuid and use a specific Mandaye logger 2011-12-23 11:17:15 +01:00
gunicorn.conf.py-sample Fix #1154: replace gevent by gunicorn, improve README.txt and 2011-12-21 18:28:36 +01:00
mandaye_admin.py Improve logging system: add a uuid and use a specific Mandaye logger 2011-12-23 11:17:15 +01:00
mandaye_server.py Improve logging system: add a uuid and use a specific Mandaye logger 2011-12-23 11:17:15 +01:00
pip-requirements.txt update pip requirements 2011-10-13 15:42:40 +02:00
setup.py Fix #1154: replace gevent by gunicorn, improve README.txt and 2011-12-21 18:28:36 +01:00

README.rst

===============================================
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.

Copying
-------

This software copyrighted by Entr'ouvert and is licensed under the GNU AGPL
version 3 for distribution.

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.


Installation
============

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 gunicorn

or easy_install::

   easy_install gevent poster SQLAlchemy Beaker Mako lxml gunicorn

or apt-get (Debian based distributions)::

    apt-get install gunicorn python-poster python-sqlalchemy python-beaker python-mako python-lxml python-setuptools

It's recommanded 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 static

Quick installation
------------------

Install at least Python >=2.5 and setuptools or distribute and enter this command in a shell::

    $ python setup.py install

If you want to develop use this command line::

    $ python setup.py develop


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 --createdb

Launch mandaye server:::

  $ mandaye_server.py

mandaye_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.py

or::

 $ mandaye_server.py -c PATH_TO_THE_FILE/gunicorn.conf.py -b 0.0.0.0:4242

Configuration
=============
TODO