You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@shiro.apache.org by "Kalle Korhonen (JIRA)" <ji...@apache.org> on 2010/06/23 19:12:53 UTC
[jira] Resolved: (SHIRO-179) Invalid expires date format with non
english default locale
[ https://issues.apache.org/jira/browse/SHIRO-179?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Kalle Korhonen resolved SHIRO-179.
----------------------------------
Assignee: Kalle Korhonen
Fix Version/s: 1.0.1
Resolution: Duplicate
> Invalid expires date format with non english default locale
> -----------------------------------------------------------
>
> Key: SHIRO-179
> URL: https://issues.apache.org/jira/browse/SHIRO-179
> Project: Shiro
> Issue Type: Bug
> Components: Web
> Environment: I'm on a french locale java system
> Reporter: Nicolas ANTONIAZZI
> Assignee: Kalle Korhonen
> Fix For: 1.0.1
>
>
> There is a problem with the "rememberMe" cookie feature.
> A cookie is sent to the user to store the rememberMe data, but the expiration date used for the formating is the system default one.
> In my case, expiration date are formated in french and the browser cannot correctly handle it (so rememberMe cookie will automatically be removed when the browser is closed)
> A fix could be done in the class : org.apache.shiro.web.servlet.SimpleCookie
> Around line 330 :
> private static String toCookieDate(Date date) {
> TimeZone tz = TimeZone.getTimeZone(GMT_TIME_ZONE_ID);
> DateFormat fmt = new SimpleDateFormat(COOKIE_DATE_FORMAT_STRING); // Here, SimpleDateFormat use default Locale
> fmt.setTimeZone(tz);
> return fmt.format(date);
> }
> replace with :
> private static String toCookieDate(Date date) {
> TimeZone tz = TimeZone.getTimeZone(GMT_TIME_ZONE_ID);
> DateFormat fmt = new SimpleDateFormat(COOKIE_DATE_FORMAT_STRING, Locale.ENGLISH); // Force english locale
> fmt.setTimeZone(tz);
> return fmt.format(date);
> }
> ---
> A workaround is to replace the default local when calling the login() method :
> Locale systemLocale = Locale.getDefault();
> Locale.setDefault(Locale.ENGLISH);
> currentUser.login(token);
> Locale.setDefault(systemLocale);
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.