【发布时间】:2017-06-20 15:39:39
【问题描述】:
我尝试了不同的方法来设置自定义 cookie 名称。但在我的配置中没有一个工作。
我有一个在独立 Tomcat 中运行的 Spring Boot 应用程序。
我尝试在派生自SpringBootServletInitializer 的SpringBootApplication 类中设置cookie 名称:
@Value("${session.cookie.name}")
private String sessionCookieName;
@Override
public void onStartup(ServletContext servletContext) throws ServletException {
servletContext.getSessionCookieConfig().setName(sessionCookieName);
super.onStartup(servletContext);
}
我还尝试将 bean 定义为 DefaultCookieSerializer:
@Value("${session.cookie.name}")
private String sessionCookieName;
@Bean
public DefaultCookieSerializer defaultCookieSerializer(){
DefaultCookieSerializer defaultCookieSerializer = new DefaultCookieSerializer();
defaultCookieSerializer.setCookieName(sessionCookieName);
return defaultCookieSerializer;
}
但是到目前为止没有任何效果,我总是得到默认的JSESSONID,而不是我配置的session.cookie.name
还有其他方法可以自定义 cookie 名称吗?
【问题讨论】:
-
添加一个
TomcatContainerCustomizer作为bean,并使用Context(传入)上的setSessionCookieName方法来更改cookie的名称。 -
请添加完整的
Application课程,而不是 sn-p。 -
请将您的解决方案发布为问题的答案,而不是您问题的更新。这将有助于未来的访问者理解并减少混乱。谢谢。
标签: spring tomcat cookies spring-boot