会话Cookie自定义路径

时间:2019-05-15 12:31:49

标签: spring spring-boot wildfly

我有一个Spring Boot应用程序,想将其部署到wildfly12。我想要实现的是为JSESSIONID cookie设置自定义路径。但是毕竟,我的努力没有任何结果。

我尝试在我的application.properties文件中使用此属性:

server.servlet.session.cookie.path=/

当我运行带有嵌入式tomcat的应用程序时,一切正常。但是,当我将应用程序部署到wildfly时,无论该属性的值如何,它始终会将cookie路径设置为应用程序的“上下文路径”。

我也尝试过使用此属性:

server.servlet.context-path=/

但到目前为止没有成功!

standalone.xml文件中也包含以下标记:

<session-cookie http-only="true" secure="true"/>

但是它似乎与cookie路径无关,因为它没有任何与此相关的属性。

1 个答案:

答案 0 :(得分:0)

您正在执行的配置是针对Spring Boot应用程序的嵌入式服务器的。

应用程序属性中存在嵌入式服务器设置(可以检查here部分#EMBEDDED SERVER CONFIGURATION 和名称空间server.servlet.session.cookie。*)。

要修改外部服务器上与cookie相关的配置,必须创建CookieSerializer bean,该bean可用于自定义cookie配置。例如

        @Bean
        public CookieSerializer cookieSerializer() {
                DefaultCookieSerializer serializer = new DefaultCookieSerializer();
                serializer.setCookieName("JSESSIONID"); 
                serializer.setCookiePath("/"); 
                serializer.setDomainNamePattern("^.+?\\.(\\w+\\.[a-z]+)$"); 
                return serializer;
        }

您可以参考spring guide以获得更多信息。