Issue #124: LDAP login 500 Internal Server Error if attribute mail is used. (conservancy/kallithea)
Alexey Vasiliev
issues-reply at bitbucket.org
Wed Apr 15 12:06:15 EDT 2015
New issue 124: LDAP login 500 Internal Server Error if attribute mail is used.
https://bitbucket.org/conservancy/kallithea/issue/124/ldap-login-500-internal-server-error-if
Alexey Vasiliev:
Ldap module configured to connect to AD ldap port 3268 (objectClass=*)
Login attribute sAMAccountName Subtree
email attribyte in AD is mail.
If that attribute filled in config Email Attribute : mail
all LDAP users with mail address cannot login to kallithea with error 500 (users who don't have email still can login)
Please find below the error in log:
2015-04-15 18:45:18.245 INFO [kallithea.lib.auth_modules] Authenticating user using kallithea.lib.auth_modules.auth_ldap plugin
2015-04-15 18:45:18.408 INFO [kallithea.lib.auth_modules.auth_ldap] user alexey authenticated correctly
Error - <class 'sqlalchemy.exc.IntegrityError'>: (IntegrityError) UNIQUE constraint failed: users.email u'UPDATE users SET password=?, email=? WHERE users.user_id = ?' ('$2a$10$fJ.JA4IemdQLsJsOzKqDvOItcr4tJ1D6JQSA0c4FLg/6JecFThVXu', 'alexey.vasiliev at company.com', 3)
URL: http://kallithea:5000/_admin/login?came_from=%2F
File '/opt/kallithea/venv/local/lib/python2.7/site-packages/weberror/errormiddleware.py', line 162 in __call__
app_iter = self.application(environ, sr_checker)
File '/opt/kallithea/venv/local/lib/python2.7/site-packages/beaker/middleware.py', line 155 in __call__
return self.wrap_app(environ, session_start_response)
File '/opt/kallithea/venv/local/lib/python2.7/site-packages/routes/middleware.py', line 131 in __call__
response = self.app(environ, start_response)
File '/opt/kallithea/venv/local/lib/python2.7/site-packages/pylons/wsgiapp.py', line 107 in __call__
response = self.dispatch(controller, environ, start_response)
File '/opt/kallithea/venv/local/lib/python2.7/site-packages/pylons/wsgiapp.py', line 312 in dispatch
return controller(environ, start_response)
File '/opt/kallithea/venv/local/lib/python2.7/site-packages/kallithea/lib/base.py', line 383 in __call__
return WSGIController.__call__(self, environ, start_response)
File '/opt/kallithea/venv/local/lib/python2.7/site-packages/pylons/controllers/core.py', line 211 in __call__
response = self._dispatch_call()
File '/opt/kallithea/venv/local/lib/python2.7/site-packages/pylons/controllers/core.py', line 162 in _dispatch_call
response = self._inspect_call(func)
File '/opt/kallithea/venv/local/lib/python2.7/site-packages/pylons/controllers/core.py', line 105 in _inspect_call
result = self._perform_call(func, args)
File '/opt/kallithea/venv/local/lib/python2.7/site-packages/pylons/controllers/core.py', line 57 in _perform_call
return func(**args)
File '/opt/kallithea/venv/local/lib/python2.7/site-packages/kallithea/controllers/login.py', line 122 in index
c.form_result = login_form.to_python(dict(request.POST))
File '/opt/kallithea/venv/local/lib/python2.7/site-packages/formencode/api.py', line 439 in to_python
value = tp(value, state)
File '/opt/kallithea/venv/local/lib/python2.7/site-packages/formencode/schema.py', line 226 in _to_python
new = validator.to_python(new, state)
File '/opt/kallithea/venv/local/lib/python2.7/site-packages/formencode/api.py', line 442 in to_python
vp(value, state)
File '/opt/kallithea/venv/local/lib/python2.7/site-packages/kallithea/model/validators.py', line 319 in validate_python
if not auth_modules.authenticate(username, password):
File '/opt/kallithea/venv/local/lib/python2.7/site-packages/kallithea/lib/auth_modules/__init__.py', line 408 in authenticate
environ=environ or {})
File '/opt/kallithea/venv/local/lib/python2.7/site-packages/kallithea/lib/auth_modules/__init__.py', line 293 in _authenticate
Session().flush()
File '/opt/kallithea/venv/local/lib/python2.7/site-packages/sqlalchemy/orm/session.py', line 1734 in flush
self._flush(objects)
File '/opt/kallithea/venv/local/lib/python2.7/site-packages/sqlalchemy/orm/session.py', line 1805 in _flush
flush_context.execute()
File '/opt/kallithea/venv/local/lib/python2.7/site-packages/sqlalchemy/orm/unitofwork.py', line 331 in execute
rec.execute(self)
File '/opt/kallithea/venv/local/lib/python2.7/site-packages/sqlalchemy/orm/unitofwork.py', line 475 in execute
uow
File '/opt/kallithea/venv/local/lib/python2.7/site-packages/sqlalchemy/orm/persistence.py', line 59 in save_obj
mapper, table, update)
File '/opt/kallithea/venv/local/lib/python2.7/site-packages/sqlalchemy/orm/persistence.py', line 485 in _emit_update_statements
execute(statement, params)
File '/opt/kallithea/venv/local/lib/python2.7/site-packages/sqlalchemy/engine/base.py', line 1449 in execute
params)
File '/opt/kallithea/venv/local/lib/python2.7/site-packages/sqlalchemy/engine/base.py', line 1584 in _execute_clauseelement
compiled_sql, distilled_params
File '/opt/kallithea/venv/local/lib/python2.7/site-packages/sqlalchemy/engine/base.py', line 1698 in _execute_context
context)
File '/opt/kallithea/venv/local/lib/python2.7/site-packages/sqlalchemy/engine/base.py', line 1691 in _execute_context
context)
File '/opt/kallithea/venv/local/lib/python2.7/site-packages/sqlalchemy/engine/default.py', line 331 in do_execute
cursor.execute(statement, parameters)
IntegrityError: (IntegrityError) UNIQUE constraint failed: users.email u'UPDATE users SET password=?, email=? WHERE users.user_id = ?' ('$2a$10$fJ.JA4IemdQLsJsOzKqDvOItcr4tJ1D6JQSA0c4FLg/6JecFThVXu', 'alexey.vasiliev at company.com', 3)
CGI Variables
-------------
CONTENT_TYPE: 'application/x-www-form-urlencoded; charset="utf-8"'
HTTP_ACCEPT: 'text/html, text/*;q=0.9, image/jpeg;q=0.9, image/png;q=0.9, image/*;q=0.9, */*;q=0.8'
HTTP_ACCEPT_CHARSET: 'utf-8,*;q=0.5'
HTTP_ACCEPT_ENCODING: 'gzip, deflate, x-gzip, x-deflate'
HTTP_ACCEPT_LANGUAGE: 'ru,en-US;q=0.9,en;q=0.8'
HTTP_CACHE_CONTROL: 'no-cache'
HTTP_CONNECTION: 'keep-alive'
HTTP_COOKIE: 'kallithea=9e28e83b95427ef79085741f73bf009c3280713e2d08fc1812ab4cbd9060e0238607feda'
HTTP_HOST: 'kallithea:5000'
HTTP_PRAGMA: 'no-cache'
HTTP_REFERER: 'http://kallithea:5000/'
HTTP_USER_AGENT: 'Mozilla/5.0 (X11; Linux x86_64) KHTML/4.14.3 (like Gecko) Konqueror/4.14'
PATH_INFO: '/_admin/login'
QUERY_STRING: 'came_from=%2F'
REMOTE_ADDR: '192.168.1.1'
REQUEST_METHOD: 'POST'
SERVER_NAME: 'localhost'
SERVER_PORT: '5000'
SERVER_PROTOCOL: 'HTTP/1.1'
SERVER_SOFTWARE: 'waitress'
WSGI Variables
--------------
application: <beaker.middleware.SessionMiddleware object at 0x7f175589d550>
beaker.get_session: <bound method SessionMiddleware._get_session of <beaker.middleware.SessionMiddleware object at 0x7f175589d550>>
beaker.session: {'_accessed_time': 1429112718.181142, '_creation_time': 1429112718.181142}
paste.parsed_querystring: ([('came_from', '/')], 'came_from=%2F')
paste.registry: <paste.registry.Registry object at 0x7f174eb5ead0>
paste.throw_errors: True
pylons.action_method: <bound method LoginController.index of <kallithea.controllers.login.LoginController object at 0x7f174ecfca10>>
pylons.controller: <kallithea.controllers.login.LoginController object at 0x7f174ecfca10>
pylons.environ_config: {'session': 'beaker.session', 'cache': 'beaker.cache'}
pylons.pylons: <pylons.util.PylonsContext object at 0x7f174ecfcfd0>
pylons.routes_dict: {'action': u'index', 'controller': u'login'}
routes.route: <routes.route.Route object at 0x7f1755f44390>
routes.url: <routes.util.URLGenerator object at 0x7f174ec63ed0>
webob._parsed_post_vars: (MultiDict([('_authentication_token', '130779523276473337233051272781982439844'), ('username', 'alexey'), ('password', '******'), ('sign_in', 'Log In')]), <FakeCGIBody at 0x7f174ec63750 viewing MultiDict([('_a...n')])>)
webob._parsed_query_vars: (GET([('came_from', '/')]), 'came_from=%2F')
webob.adhoc_attrs: {'errors': 'ignore', 'user': <AuthUser('id:1[default] ip:192.168.1.1 auth:True')>, 'language': 'en-us'}
webob.is_body_readable: True
webob.is_body_seekable: False
wsgi process: 'Multithreaded'
wsgi.file_wrapper: <class 'waitress.buffers.ReadOnlyFileBasedBuffer'>
wsgiorg.routing_args: (<routes.util.URLGenerator object at 0x7f174ec63ed0>, {'action': u'index', 'controller': u'login'})
------------------------------------------------------------
More information about the kallithea-general
mailing list