diff --git a/auth_from_http_basic/__init__.py b/auth_from_http_basic/__init__.py new file mode 100644 index 000000000..26fa1ad00 --- /dev/null +++ b/auth_from_http_basic/__init__.py @@ -0,0 +1,40 @@ +# -*- coding: utf-8 -*- +############################################################################## +# +# OpenERP, Open Source Management Solution +# This module copyright (C) 2014 Therp BV (). +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +# +############################################################################## +from openerp.addons.web.http import WebRequest +from openerp.addons.web.controllers.main import db_list + +old_init = WebRequest.init + +def init(self, params): + old_init(self, params) + if self.httprequest.authorization and not self.session._login: + dbs = db_list(self) + self.session.authenticate( + dbs and dbs[0], + self.httprequest.authorization.username, + self.httprequest.authorization.password, + dict( + base_location=self.httprequest.url_root.rstrip('/'), + HTTP_HOST=self.httprequest.environ['HTTP_HOST'], + REMOTE_ADDR=self.httprequest.environ['REMOTE_ADDR'] + )) + +WebRequest.init = init diff --git a/auth_from_http_basic/__openerp__.py b/auth_from_http_basic/__openerp__.py new file mode 100644 index 000000000..461dd3385 --- /dev/null +++ b/auth_from_http_basic/__openerp__.py @@ -0,0 +1,52 @@ +# -*- coding: utf-8 -*- +############################################################################## +# +# OpenERP, Open Source Management Solution +# This module copyright (C) 2014 Therp BV (). +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +# +############################################################################## +{ + "name" : "Authenticate via HTTP basic authentication", + "version" : "1.0", + "author" : "Therp BV", + "complexity": "expert", + "description": """ +In an environment where several web applications authenticate against the same +source, the simplest way to attain single sign on would be to have the +webserver handle authentication and pass the login information via HTTP headers +to the application it proxies. + +This addon allows for this setup. Technically, it picks up the HTTP +Authorization header, extract a username and a password from that and tries to +login into the first database found in the database list. + """, + "category" : "", + "depends" : [ + ], + "data" : [ + ], + "js": [ + ], + "css": [ + ], + "qweb": [ + ], + "auto_install": False, + "installable": True, + "external_dependencies" : { + 'python' : [], + }, +} diff --git a/auth_from_http_basic/static/src/img/icon.png b/auth_from_http_basic/static/src/img/icon.png new file mode 100644 index 000000000..4c7ab3029 Binary files /dev/null and b/auth_from_http_basic/static/src/img/icon.png differ