0

我已将 Spring Session 与 Redis 集成到我的 SpringBoot 应用程序中。除了 cookie 域属性之外,似乎一切正常。我刚刚找到了如何在tomcat中设置cookie会话域属性,即方法“setSessionCookieDomain”,但这不起作用。例如。我已经在 tomcat 的上下文中配置了域属性,例如 cookie 的域属性。

@Bean 
    public TomcatContextCustomizer tomcatContextCustomizer() {
        System.out.println("TOMCATCONTEXTCUSTOMIZER INITILIZED");
        return new TomcatContextCustomizer() {

            @Override
            public void customize(Context context) {
                context.addServletContainerInitializer(new WsSci(), null);
                context.setUseHttpOnly(true);
                context.setPath("/");
                context.setSessionCookiePath("/");
                context.setSessionCookieDomain(".127.0.0.5");
//              context.setSessionCookieDomain(".localhost");
//              context.setSessionCookieDomain(".test.blabla.com");

            }           

        };
    }

当我在 Wireshark 中打开 https 跟踪并单击跟随 ssl 流时,这就是我得到的。列出了除域之外的所有其他属性。所以我的问题是如何在 Spring Session 1.0.0.M1 中正确设置域属性,Spring session 是否以某种方式覆盖了 tomcat 上下文?

GET / HTTP/1.1
Host: 127.0.0.5:8888
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:34.0) Gecko/20100101 Firefox/34.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Lang: keep-alive

: keep-alive

: keep-alive

: keep-alive

: keep-alive

HTTP/1.1 200 OK
Server: Apache-Coyote/1.1
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
X-Frame-Options: DENY
X-Content-Security-Policy: script-src 'self'; object-src 'self'
Content-Security-Policy: script-src 'self'; object-src 'self'
X-WebKit-CSP: default-src 'self'
X-Application-Context: application:Production
Set-Cookie: SESSION=5d0a738f-f011-4e43-a1ee-d691b8eba94c; Path=/; Secure; HttpOnly
Content-Type: text/html;charset=UTF-8
Conten10:01:27 GMT

10:01:27 GMT

10:01:27 GMT

10:01:27 GMT

10:01:27 GMT

<!DOCTYPE html>
4

1 回答 1

2

感谢您提出这个问题。Spring Session 应该允许通过 SessionCookieConfig 配置域,但不允许。我创建了gh-87来解决这个问题。

于 2014-12-23T15:47:11.227 回答