[ http://issues.apache.org/jira/browse/COCOON-1592?page=comments#action_12368279 ]
Andrew Stevens commented on COCOON-1592: ---------------------------------------- For what it's worth, Vincent's patch passes the unit tests in COCOON-1779... > Can't set cookie path etc. used by LocaleAction > ----------------------------------------------- > > Key: COCOON-1592 > URL: http://issues.apache.org/jira/browse/COCOON-1592 > Project: Cocoon > Type: Bug > Components: * Cocoon Core > Versions: 2.1.7 > Environment: Operating System: All > Platform: All > Reporter: Andrew Stevens > Assignee: Cocoon Developers Team > Attachments: locale-cookie-settings > > I have a sitemap which can return pages in various languages, using the > LocaleAction to determine which one to return for any given request. I want > to > use <store-in-cookie>true</store-in-cookie> in the configuration of the > LocaleAction. However, > org.apache.cocoon.i18n.I18nUtils.storeLocale(Map, String, String, boolean, > boolean, boolean, boolean) > uses > response.addCookie(response.createCookie(attribute, locale)); > and > org.apache.cocoon.environment.http.HttpResponse.createCookie(String, String) > simply does > return new HttpCookie(name, value); > which means that although addCookie would set the the cookie > domain/path/expiry > to whatever is on the cookie it is passed, in practise the LocaleAction will > always use the javax.servlet.http.Cookie defaults. > My site has a reasonably deep page hierarchy. Unfortunately, by default the > cookies are only returned at or below the level of the page which set them. > So, > if I request e.g > /site/a?locale=en > followed by > /site/a/b?locale=zh_CN > to switch the site to the Chinese version, I end up with two locale cookies > stored for the site at different levels, and a subsequent request for > /site/c > returns the English version of the page instead of Chinese as was selected > last > :-( In fact, if I select a different languages in several pages in various > locations around the site, I can easily find myself browsing around and > getting > a different language on every page I visit! > The other limitation, of course, is that the default MaxAge value is -1, > forcing > the browser to use a session cookie. This means that if the user switches to > a > non-default (as determined by the Accept-Language header) language, then > they'll > have to do this again next time they come back to the site. It would be nice > to > be able to specify e.g. a one month expiry on the cookie instead. > I'm guessing this shouldn't be too difficult to add since > o.a.c.environment.http.HttpCookie already contains setters for these other > fields; just (!) some extra optional configuration parameters for LocaleAction > to go with store-in-cookie, overload the storeLocale method in I18Utils to > take > the extra arguments and call the additional setters between the createCookie > and > addCookie calls...? -- This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa - For more information on JIRA, see: http://www.atlassian.com/software/jira
