Session 在Grails3.0中更改会话cookie名称

Session 在Grails3.0中更改会话cookie名称,session,grails,cookies,grails-3.0,Session,Grails,Cookies,Grails 3.0,在Grails2.x中,您可以使用更改web.xml中会话cookie的名称 <session-config> <cookie-config> <name>JSESSIONID_XYZ</name> </cookie-config> </session-config> JSESSIONID_XYZ 在Grails3.0中,默认情况下没有web.xml(但可以手动创建)。是否有其他方法更改

在Grails2.x中,您可以使用更改web.xml中会话cookie的名称

<session-config>
    <cookie-config>
        <name>JSESSIONID_XYZ</name>
    </cookie-config>
</session-config>

JSESSIONID_XYZ
在Grails3.0中,默认情况下没有web.xml(但可以手动创建)。是否有其他方法更改会话cookie的名称


更新:我试图创建一个web.xml,但它不起作用

它在部署为war时起作用,但在运行应用程序时不起作用。将此添加到
src/main/webapp/WEB-INF/WEB.xml

<?xml version='1.0' encoding='UTF-8'?>
<web-app version='3.0'
         xmlns='http://java.sun.com/xml/ns/javaee'
         xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'
         xsi:schemaLocation='http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd'>

   <session-config>
      <cookie-config>
         <name>JSESSIONID_XYZ</name>
      </cookie-config>
   </session-config>

</web-app>

JSESSIONID_XYZ

并将war部署到Tomcat或其他容器中,它将使用web.xml中的配置设置以及编程servlet/filter/etc.注册。

当作为war部署时,它可以工作,但不能与run app一起工作。将此添加到
src/main/webapp/WEB-INF/WEB.xml

<?xml version='1.0' encoding='UTF-8'?>
<web-app version='3.0'
         xmlns='http://java.sun.com/xml/ns/javaee'
         xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'
         xsi:schemaLocation='http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd'>

   <session-config>
      <cookie-config>
         <name>JSESSIONID_XYZ</name>
      </cookie-config>
   </session-config>

</web-app>

JSESSIONID_XYZ
并将war部署到Tomcat或其他容器中,它将使用web.xml中的配置设置以及编程servlet/filter/etc.注册。

可用于注册bean,您可以在其中使用

@Override
void onStartup(ServletContext servletContext) throws ServletException {
    servletContext.getSessionCookieConfig().setName(sessionCookieName);
}
我预先准备了这个解决方案,因为它在运行应用程序的开发过程中也可以工作,这正是我所需要的。

可以用来注册一个bean,在其中您可以使用

@Override
void onStartup(ServletContext servletContext) throws ServletException {
    servletContext.getSessionCookieConfig().setName(sessionCookieName);
}

我预选了此解决方案,因为它在运行应用程序的开发过程中也能工作,这正是我所需要的。

此解决方案的问题在于它必须也能与运行应用程序一起工作。我正在开发一个web应用程序,它由两个部分组成,作为独立的应用程序运行,当两个应用程序都通过相同的域名(例如localhost)访问时,与会话cookie存在冲突。此解决方案的问题是,它必须与run app一起工作。我正在开发一个web应用程序,它由两部分组成,作为独立的应用程序运行,当两个应用程序都通过相同的域名(例如localhost)访问时,它与会话cookie发生冲突