diff --git a/maxkey-core/src/main/java/org/maxkey/web/tag/ThemeTagDirective.java b/maxkey-core/src/main/java/org/maxkey/web/tag/ThemeTagDirective.java index f49809e6f..0754a3ac3 100644 --- a/maxkey-core/src/main/java/org/maxkey/web/tag/ThemeTagDirective.java +++ b/maxkey-core/src/main/java/org/maxkey/web/tag/ThemeTagDirective.java @@ -9,6 +9,8 @@ import java.io.IOException; import java.util.Map; import javax.servlet.http.Cookie; import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import org.maxkey.constants.ConstantsTimeInterval; import org.maxkey.web.WebConstants; import org.maxkey.web.WebContext; import org.slf4j.Logger; @@ -29,6 +31,9 @@ public class ThemeTagDirective implements TemplateDirectiveModel { private static final Logger _logger = LoggerFactory.getLogger(ThemeTagDirective.class); @Autowired private HttpServletRequest request; + + @Autowired + HttpServletResponse response; @SuppressWarnings("rawtypes") @Override @@ -49,6 +54,15 @@ public class ThemeTagDirective implements TemplateDirectiveModel { _logger.trace("read theme form cookie , theme is " + theme); } } + + //每次登陆完成设置一次COOKIE + if (request.getAttribute(WebConstants.THEME_COOKIE_NAME) == null + && null != WebContext.getUserInfo()) { + request.setAttribute(WebConstants.THEME_COOKIE_NAME, "theme"); + WebContext.setCookie(response, + WebConstants.THEME_COOKIE_NAME, theme, ConstantsTimeInterval.ONE_WEEK); + } + env.getOut().append(theme == null ? "default" : theme); } diff --git a/maxkey-web-maxkey/src/main/java/org/maxkey/web/contorller/SafeController.java b/maxkey-web-maxkey/src/main/java/org/maxkey/web/contorller/SafeController.java index 5282cd116..da1a96cca 100644 --- a/maxkey-web-maxkey/src/main/java/org/maxkey/web/contorller/SafeController.java +++ b/maxkey-web-maxkey/src/main/java/org/maxkey/web/contorller/SafeController.java @@ -4,6 +4,7 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.maxkey.constants.ConstantsOperateMessage; +import org.maxkey.constants.ConstantsTimeInterval; import org.maxkey.crypto.ReciprocalUtils; import org.maxkey.crypto.password.PasswordReciprocal; import org.maxkey.dao.service.UserInfoService; @@ -171,7 +172,7 @@ public class SafeController { userInfo.setEmail(email); userInfo.setTheme(theme); - WebContext.setCookie(response, WebConstants.THEME_COOKIE_NAME, theme, 0); + WebContext.setCookie(response, WebConstants.THEME_COOKIE_NAME, theme, ConstantsTimeInterval.ONE_WEEK); userInfoService.changeEmail(userInfo);