Univention Bugzilla – Bug 53579
There are multiple cookies with name, 'UMCSessionId'
Last modified: 2022-03-15 13:03:24 CET
In UCS@school 4.4 and 5.0 some tests are failing (often when using SAML) with the exceptions below: Traceback (most recent call last): File "101_exam_mode.py", line 102, in __test_exam_mode exam.finish() File "/usr/lib/python2.7/dist-packages/univention/testing/ucsschool/exam.py", line 210, in finish reqResult = self.client.umc_command("schoolexam/exam/finish", param).result File "/usr/lib/python2.7/dist-packages/univention/testing/umc.py", line 66, in umc_command return super(Client, self).umc_command(*args, **kwargs) File "/usr/lib/python2.7/dist-packages/univention/lib/umc.py", line 452, in umc_command return self.request('POST', 'command/%s' % (path,), data, headers) File "/usr/lib/python2.7/dist-packages/univention/testing/umc.py", line 78, in request response = super(Client, self).request(method, path, data, headers) File "/usr/lib/python2.7/dist-packages/univention/lib/umc.py", line 532, in request return self.send(request) File "/usr/lib/python2.7/dist-packages/univention/lib/umc.py", line 553, in send request.headers['X-XSRF-Protection'] = self.cookies['UMCSessionId'] File "/usr/lib/python2.7/dist-packages/requests/cookies.py", line 328, in __getitem__ return self._find_no_duplicates(name) File "/usr/lib/python2.7/dist-packages/requests/cookies.py", line 394, in _find_no_duplicates raise CookieConflictError('There are multiple cookies with name, %r' % (name)) CookieConflictError: There are multiple cookies with name, 'UMCSessionId' Traceback (most recent call last): File "101_exam_prepare.py", line 97, in __test_exam_prepare exam.save() File "/usr/lib/python2.7/dist-packages/univention/testing/ucsschool/exam.py", line 190, in save reqResult = self.client.umc_command("schoolexam/exam/{}".format(command), param).result File "/usr/lib/python2.7/dist-packages/univention/testing/umc.py", line 66, in umc_command return super(Client, self).umc_command(*args, **kwargs) File "/usr/lib/python2.7/dist-packages/univention/lib/umc.py", line 452, in umc_command return self.request('POST', 'command/%s' % (path,), data, headers) File "/usr/lib/python2.7/dist-packages/univention/testing/umc.py", line 78, in request response = super(Client, self).request(method, path, data, headers) File "/usr/lib/python2.7/dist-packages/univention/lib/umc.py", line 532, in request return self.send(request) File "/usr/lib/python2.7/dist-packages/univention/lib/umc.py", line 553, in send request.headers['X-XSRF-Protection'] = self.cookies['UMCSessionId'] File "/usr/lib/python2.7/dist-packages/requests/cookies.py", line 328, in __getitem__ return self._find_no_duplicates(name) File "/usr/lib/python2.7/dist-packages/requests/cookies.py", line 394, in _find_no_duplicates raise CookieConflictError('There are multiple cookies with name, %r' % (name)) CookieConflictError: There are multiple cookies with name, 'UMCSessionId' Traceback (most recent call last): File "25_room_management_module.py", line 38, in __test_room_management_module umc_room = room.get() File "/usr/lib/python2.7/dist-packages/univention/testing/ucsschool/schoolroom.py", line 121, in get reqResult = self.client.umc_command("schoolrooms/get", [self.dn()]).result File "/usr/lib/python2.7/dist-packages/univention/testing/umc.py", line 66, in umc_command return super(Client, self).umc_command(*args, **kwargs) File "/usr/lib/python2.7/dist-packages/univention/lib/umc.py", line 452, in umc_command return self.request('POST', 'command/%s' % (path,), data, headers) File "/usr/lib/python2.7/dist-packages/univention/testing/umc.py", line 78, in request response = super(Client, self).request(method, path, data, headers) File "/usr/lib/python2.7/dist-packages/univention/lib/umc.py", line 532, in request return self.send(request) File "/usr/lib/python2.7/dist-packages/univention/lib/umc.py", line 553, in send request.headers['X-XSRF-Protection'] = self.cookies['UMCSessionId'] File "/usr/lib/python2.7/dist-packages/requests/cookies.py", line 328, in __getitem__ return self._find_no_duplicates(name) File "/usr/lib/python2.7/dist-packages/requests/cookies.py", line 394, in _find_no_duplicates raise CookieConflictError('There are multiple cookies with name, %r' % (name)) CookieConflictError: There are multiple cookies with name, 'UMCSessionId'
[ Cookie(version=0, name='UMCSessionId', value='445e954d-866f-44d1-805a-fd3e1ad9860b', port=None, port_specified=False, domain='', domain_specified=False, domain_initial_dot=False, path='/', path_specified=True, secure=False, expires=None, discard=True, comment=None, comment_url=None, rest={'HttpOnly': None}, rfc2109=False), Cookie(version=0, name='UMCUsername', value='Administrator', port=None, port_specified=False, domain='', domain_specified=False, domain_initial_dot=False, path='/', path_specified=True, secure=False, expires=None, discard=True, comment=None, comment_url=None, rest={'HttpOnly': None}, rfc2109=False), Cookie(version=0, name='UMCSessionId', value='445e954d-866f-44d1-805a-fd3e1ad9860b', port=None, port_specified=False, domain='master80.school.dev', domain_specified=False, domain_initial_dot=False, path='/univention/', path_specified=True, secure=False, expires=1784126708, discard=False, comment=None, comment_url=None, rest={}, rfc2109=True), Cookie(version=0, name='UMCUsername', value='Administrator', port=None, port_specified=False, domain='master80.school.dev', domain_specified=False, domain_initial_dot=False, path='/univention/', path_specified=True, secure=False, expires=1784126708, discard=False, comment=None, comment_url=None, rest={}, rfc2109=True), Cookie(version=0, name='SimpleSAMLAuthToken', value='_92fcc9263ffd1e0404069561b5c90ba20435c7f601', port=None, port_specified=False, domain='ucs-sso.school.dev', domain_specified=False, domain_initial_dot=False, path='/', path_specified=True, secure=False, expires=None, discard=True, comment=None, comment_url=None, rest={'HttpOnly': None}, rfc2109=False), Cookie(version=0, name='SimpleSAMLSessionID', value='c1c85597b9bb634c3ecf81f854c5a554', port=None, port_specified=False, domain='ucs-sso.school.dev', domain_specified=False, domain_initial_dot=False, path='/', path_specified=True, secure=False, expires=None, discard=True, comment=None, comment_url=None, rest={'HttpOnly': None}, rfc2109=False) ] ['<Cookie UMCSessionId=445e954d-866f-44d1-805a-fd3e1ad9860b for />', '<Cookie UMCUsername=Administrator for />', '<Cookie UMCSessionId=445e954d-866f-44d1-805a-fd3e1ad9860b for master80.school.dev/univention/>', '<Cookie UMCUsername=Administrator for master80.school.dev/univention/>', '<Cookie SimpleSAMLAuthToken=_92fcc9263ffd1e0404069561b5c90ba20435c7f601 for ucs-sso.school.dev/>', '<Cookie SimpleSAMLSessionID=c1c85597b9bb634c3ecf81f854c5a554 for ucs-sso.school.dev/>'] So we have a cookie UMCSessionId=445e954d-866f-44d1-805a-fd3e1ad9860b for /. Where does it come from? How is that possible?
The class univention.testing.umc.ClientSaml overwrites self.cookies. Adjusted this so that it only sets one cookie per name. Fixed in UCS 5.0: ucs-test (10.0.6-16) 9136147fbca9 | Bug #53579: fix CookieConflictError: There are multiple cookies with name, 'UMCSessionId' We should backport this to UCS 4.4 but I don't have time currently.