Jun, This revised workaround seems to fix the issue that I was having, at least in my initial testing. I will also add a comment on the ticket to indicate that this fix is working for me.
Chris On Sun, Mar 9, 2025 at 3:08 AM Jun Omae <[email protected]> wrote: > Thanks for the submitting this issue on trac.edgewall.org. > > > Investigating your cookies, this is caused by whitespaces in the value of > the cookies, not unnamed cookies. Also, the issue has been filed at > https://github.com/python/cpython/issues/75637 7 years ago, but still not > fixed. > > Could you please try the following workaround? > > [[[ > diff --git a/trac/web/api.py b/trac/web/api.py > index 7f8b59bdc..f2b9b4519 100644 > --- a/trac/web/api.py > +++ b/trac/web/api.py > @@ -612,15 +612,20 @@ class RequestDone(TracBaseError): > > > class Cookie(SimpleCookie): > + > + _separator_re = re.compile(r'\s*;\s*', re.ASCII) > + > def load(self, rawdata, ignore_parse_errors=False): > if ignore_parse_errors: > self.bad_cookies = [] > self._BaseCookie__set = self._loose_set > - SimpleCookie.load(self, rawdata) > - if ignore_parse_errors: > + for item in self._separator_re.split(rawdata): > + super().load(item) > self._BaseCookie__set = self._strict_set > for key in self.bad_cookies: > del self[key] > + else: > + super().load(rawdata) > > _strict_set = BaseCookie._BaseCookie__set > > ]]] > > On Sunday, March 9, 2025 at 1:46:21 AM UTC+9 Chris Shelton wrote: > > Jun, > After some additional review of the cookies in my environment, I believe > that the presence of forward slashes or spaces in the values of cookies are > what is causing the issue that I am seeing. When I manually remove each > cookie that contained any spaces or forward slashes in the value of the > cookie from my browser session, the login redirect loop stops and Trac > behaves normally, until these cookies come back via accessing a university > wide ERP system. > > The attached text file contains a slightly obfuscated set of my cookies, > with several of the values replaced with X's. I believe that any cookie > with a value that contains any of the "invalid characters" for cookie > names, as mentioned here > https://docs.python.org/3/library/http.cookies.html is causing this > failure to parse any of the cookies in my session. > > In case it helps, my Trac environment will be running on the domain of > test.prvt.controller.iu.edu. The cookies from our ERP system all have a > domain of .iu.edu. Lastly, I have just opened > https://trac.edgewall.org/ticket/13876 for this issue. Thanks again for > your help! > > Chris > > -- > You received this message because you are subscribed to the Google Groups > "Trac Users" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > To view this discussion visit > https://groups.google.com/d/msgid/trac-users/8c3b2c38-b0c9-4802-ad76-b0d947fcf3d7n%40googlegroups.com > <https://groups.google.com/d/msgid/trac-users/8c3b2c38-b0c9-4802-ad76-b0d947fcf3d7n%40googlegroups.com?utm_medium=email&utm_source=footer> > . > -- You received this message because you are subscribed to the Google Groups "Trac Users" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion visit https://groups.google.com/d/msgid/trac-users/CAB0jkdzy9zOn%2BjeOMGkvLQhxM%2BM4NJX0%2BfgYjNNLJaSHqmjhDg%40mail.gmail.com.
