【问题标题】:How to set cookie domain and path with Spring boot如何使用 Spring Boot 设置 cookie 域和路径
【发布时间】:2016-04-28 17:41:33
【问题描述】:

在Tomcat中,我们可以这样做:

<Context useHttpOnly="true" sessionCookiePath="/"sessionCookieDomain=".XXXX.com"/>

我想和Spring Boot共享二级域的cookie,怎么做?

【问题讨论】:

    标签: spring-boot jsessionid


    【解决方案1】:

    Spring Boot 嵌入的服务器的设置可用作应用程序属性(# EMBEDDED SERVER CONFIGURATION 部分下的listed here 和命名空间server.servlet.session.cookie.*)。

    与上面的 Tomcat 配置等效的应该是:

    # properties in /src/resources/application.properties
    server.servlet.session.cookie.domain=.XXXX.com
    server.servlet.session.cookie.http-only=true
    server.servlet.session.cookie.path=/
    

    【讨论】:

    【解决方案2】:

    (在撰写本文时这适用于 Spring 1.5.x)

    要添加到@radrocket81 的回复,这里有一个示例代码。这也是您设置 Spring Boot cookie 的 max-age 和其他属性的方式如果您通过 @EnableRedisHttpSession 启用 Redis 会话,因为应用程序属性 server.session 将不会被应用。

    @Bean
    public <S extends ExpiringSession> SessionRepositoryFilter<? extends ExpiringSession> springSessionRepositoryFilter(SessionRepository<S> sessionRepository, ServletContext servletContext) {
        SessionRepositoryFilter<S> sessionRepositoryFilter = new SessionRepositoryFilter<S>(sessionRepository);
        sessionRepositoryFilter.setServletContext(servletContext);
        CookieHttpSessionStrategy httpSessionStrategy = new CookieHttpSessionStrategy();
        httpSessionStrategy.setCookieSerializer(this.cookieSerializer());
        sessionRepositoryFilter.setHttpSessionStrategy(httpSessionStrategy);
        return sessionRepositoryFilter;
    }
    
    private CookieSerializer cookieSerializer() {
        DefaultCookieSerializer serializer = new DefaultCookieSerializer();
        serializer.setCookieName("CUSTOM_SESSION_KEY");
        serializer.setDomainName("domain.com");
        serializer.setCookiePath("/");
        serializer.setCookieMaxAge(10); //Set the cookie max age in seconds, e.g. 10 seconds
        return serializer;
    }
    

    【讨论】:

      【解决方案3】:

      我的解决方案是定义一个 CookieSerializer bean 并提供适合我的设置的域模式。

      像这样:Spring Session - Custom Cookie

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2016-02-14
        • 2023-04-01
        • 1970-01-01
        • 1970-01-01
        • 2015-02-03
        • 1970-01-01
        • 2012-06-01
        相关资源
        最近更新 更多