Hi,

It looks like the AD server is returning LDAP referrals, which the server's
way to saying "I don't have this object, but look here instead."

These *should* be turned off in Review Board. I haven't seen an error
report about this before. That said, Review Board 1.7.x is very old and no
longer supported, and it's possible your python-ldap is also pretty old, so
perhaps there's something going on there.

I'm also not sure where the "REFERRAL:" line comes from. Is that something
added on your end?

Can you see what version of python-ldap you have installed?

Also, did this used to work, and is it suddenly now causing problems? If
so, it's worth investigating what may have changed with the AD server.

Here's some more information on referrals in general:
https://technet.microsoft.com/en-us/library/cc978014.aspx

Christian

-- 
Christian Hammond
President/CEO of Beanbag <https://www.beanbaginc.com/>
Makers of Review Board <https://www.reviewboard.org/>

On Tue, Apr 25, 2017 at 4:39 PM, JD K <jdk357...@gmail.com> wrote:

> I'm running Reviewboard 1.7.27 with Active Directory authentication. I am
> receiving the Something broke! (Error 500) error when I try to login. I
> know it is checking correctly because if I don't enter the correct password
> it displays the nice red Incorrect Password text. But if I enter the
> correct password I receive this error. Any ideas? It works fine with local
> accounts.
>
> 2017-04-25 22:59:48,413 - ERROR -  - Exception thrown for user
> AnonymousUser at http://myreviewboardserver.com/account/login/
>
> {'info': 'Referral:\nldap://abc/dc=abc', 'desc': 'Referral'}
> Traceback (most recent call last):
>   File "/usr/lib/python2.6/site-packages/django/core/handlers/base.py",
> line 109, in get_response
>     response = callback(request, *callback_args, **callback_kwargs)
>   File "/usr/lib/python2.6/site-packages/django/views/decorators/debug.py",
> line 75, in sensitive_post_parameters_wrapper
>     return view(request, *args, **kwargs)
>   File "/usr/lib/python2.6/site-packages/django/utils/decorators.py",
> line 91, in _wrapped_view
>     response = view_func(request, *args, **kwargs)
>   File "/usr/lib/python2.6/site-packages/django/views/decorators/cache.py",
> line 89, in _wrapped_view_func
>     response = view_func(request, *args, **kwargs)
>   File "/usr/lib/python2.6/site-packages/django/contrib/auth/views.py",
> line 36, in login
>     if form.is_valid():
>   File "/usr/lib/python2.6/site-packages/django/forms/forms.py", line
> 124, in is_valid
>     return self.is_bound and not bool(self.errors)
>   File "/usr/lib/python2.6/site-packages/django/forms/forms.py", line
> 115, in _get_errors
>     self.full_clean()
>   File "/usr/lib/python2.6/site-packages/django/forms/forms.py", line
> 271, in full_clean
>     self._clean_form()
>   File "/usr/lib/python2.6/site-packages/django/forms/forms.py", line
> 299, in _clean_form
>     self.cleaned_data = self.clean()
>   File "/usr/lib/python2.6/site-packages/django/contrib/auth/forms.py",
> line 167, in clean
>     password=password)
>   File "/usr/lib/python2.6/site-packages/django/contrib/auth/__init__.py",
> line 45, in authenticate
>     user = backend.authenticate(**credentials)
>   File "/usr/lib/python2.6/site-packages/reviewboard/accounts/backends.py",
> line 578, in authenticate
>     userdomain)
>   File "/usr/lib/python2.6/site-packages/reviewboard/accounts/backends.py",
> line 456, in search_ad
>     return con.search_s(search_root, scope=ldap.SCOPE_SUBTREE,
> filterstr=filterstr)
>   File "/usr/lib/python2.6/site-packages/ldap/ldapobject.py", line 516,
> in search_s
>     return self.search_ext_s(base,scope,filterstr,attrlist,attrsonly,
> None,None,timeout=self.timeout)
>   File "/usr/lib/python2.6/site-packages/ldap/ldapobject.py", line 510,
> in search_ext_s
>     return self.result(msgid,all=1,timeout=timeout)[1]
>   File "/usr/lib/python2.6/site-packages/ldap/ldapobject.py", line 436,
> in result
>     res_type,res_data,res_msgid = self.result2(msgid,all,timeout)
>   File "/usr/lib/python2.6/site-packages/ldap/ldapobject.py", line 440,
> in result2
>     res_type, res_data, res_msgid, srv_ctrls = self.result3(msgid,all,
> timeout)
>   File "/usr/lib/python2.6/site-packages/ldap/ldapobject.py", line 446,
> in result3
>     ldap_result = self._ldap_call(self._l.result3,msgid,all,timeout)
>   File "/usr/lib/python2.6/site-packages/ldap/ldapobject.py", line 96, in
> _ldap_call
>     result = func(*args,**kwargs)
> REFERRAL: {'info': 'Referral:\nldap://abc/dc=abc', 'desc': 'Referral'}
> 2017-04-25 22:59:48,415 - ERROR - None - AnonymousUser - /account/login/ -
> Internal Server Error: /account/login/
> Traceback (most recent call last):
>   File "/usr/lib/python2.6/site-packages/django/core/handlers/base.py",
> line 109, in get_response
>     response = callback(request, *callback_args, **callback_kwargs)
>   File "/usr/lib/python2.6/site-packages/django/views/decorators/debug.py",
> line 75, in sensitive_post_parameters_wrapper
>     return view(request, *args, **kwargs)
>   File "/usr/lib/python2.6/site-packages/django/utils/decorators.py",
> line 91, in _wrapped_view
>     response = view_func(request, *args, **kwargs)
>   File "/usr/lib/python2.6/site-packages/django/views/decorators/cache.py",
> line 89, in _wrapped_view_func
>     response = view_func(request, *args, **kwargs)
>   File "/usr/lib/python2.6/site-packages/django/contrib/auth/views.py",
> line 36, in login
>     if form.is_valid():
>   File "/usr/lib/python2.6/site-packages/django/forms/forms.py", line
> 124, in is_valid
>     return self.is_bound and not bool(self.errors)
>   File "/usr/lib/python2.6/site-packages/django/forms/forms.py", line
> 115, in _get_errors
>     self.full_clean()
>   File "/usr/lib/python2.6/site-packages/django/forms/forms.py", line
> 271, in full_clean
>     self._clean_form()
>   File "/usr/lib/python2.6/site-packages/django/forms/forms.py", line
> 299, in _clean_form
>     self.cleaned_data = self.clean()
>   File "/usr/lib/python2.6/site-packages/django/contrib/auth/forms.py",
> line 167, in clean
>     password=password)
>   File "/usr/lib/python2.6/site-packages/django/contrib/auth/__init__.py",
> line 45, in authenticate
>     user = backend.authenticate(**credentials)
>   File "/usr/lib/python2.6/site-packages/reviewboard/accounts/backends.py",
> line 578, in authenticate
>     userdomain)
>   File "/usr/lib/python2.6/site-packages/reviewboard/accounts/backends.py",
> line 456, in search_ad
>     return con.search_s(search_root, scope=ldap.SCOPE_SUBTREE,
> filterstr=filterstr)
>   File "/usr/lib/python2.6/site-packages/ldap/ldapobject.py", line 516,
> in search_s
>     return self.search_ext_s(base,scope,filterstr,attrlist,attrsonly,
> None,None,timeout=self.timeout)
>   File "/usr/lib/python2.6/site-packages/ldap/ldapobject.py", line 510,
> in search_ext_s
>     return self.result(msgid,all=1,timeout=timeout)[1]
>   File "/usr/lib/python2.6/site-packages/ldap/ldapobject.py", line 436,
> in result
>     res_type,res_data,res_msgid = self.result2(msgid,all,timeout)
>   File "/usr/lib/python2.6/site-packages/ldap/ldapobject.py", line 440,
> in result2
>     res_type, res_data, res_msgid, srv_ctrls = self.result3(msgid,all,
> timeout)
>   File "/usr/lib/python2.6/site-packages/ldap/ldapobject.py", line 446,
> in result3
>     ldap_result = self._ldap_call(self._l.result3,msgid,all,timeout)
>   File "/usr/lib/python2.6/site-packages/ldap/ldapobject.py", line 96, in
> _ldap_call
>     result = func(*args,**kwargs)
> REFERRAL: {'info': 'Referral:\nldap://abc/dc=abc', 'desc': 'Referral'}
>
> --
> Supercharge your Review Board with Power Pack:
> https://www.reviewboard.org/powerpack/
> Want us to host Review Board for you? Check out RBCommons:
> https://rbcommons.com/
> Happy user? Let us know! https://www.reviewboard.org/users/
> ---
> You received this message because you are subscribed to the Google Groups
> "reviewboard" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to reviewboard+unsubscr...@googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.
>

-- 
Supercharge your Review Board with Power Pack: 
https://www.reviewboard.org/powerpack/
Want us to host Review Board for you? Check out RBCommons: 
https://rbcommons.com/
Happy user? Let us know! https://www.reviewboard.org/users/
--- 
You received this message because you are subscribed to the Google Groups 
"reviewboard" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to reviewboard+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to