Какое значение по умолчанию для SessionCookieConfig в Spring Boot установлено и как оно устанавливается? - PullRequest
1 голос
/ 24 января 2020

Я пытаюсь настроить свой пользовательский DefaultCookieSerializer в весенней сессии, единственное свойство, которое я хочу установить, - sameSite, и я хочу, чтобы все остальные настройки использовали значение «по умолчанию». Поэтому я прочитал какой-то пост, например this

Вот фрагмент кода:

    @Bean
    public DefaultCookieSerializer cookieSerializer(){
        return new DefaultCookieSerializer();
    }

    private class CookieSerializerConfigure implements ServletContainerInitializer{
        @Override
        public void onStartup(Set<Class<?>> set, ServletContext servletContext) throws ServletException {
            SessionCookieConfig sessionCookieConfig = servletContext.getSessionCookieConfig();
            // about the setting, see:
            // https://docs.spring.io/spring-session/docs/current/api/org/springframework/session/web/http/DefaultCookieSerializer.html
            // https://github.com/spring-projects/spring-session/issues/87
            DefaultCookieSerializer cookieSerializer = cookieSerializer();
            cookieSerializer.setUseSecureCookie(sessionCookieConfig.isSecure());
            cookieSerializer.setUseHttpOnlyCookie(sessionCookieConfig.isHttpOnly());
            cookieSerializer.setCookiePath(sessionCookieConfig.getPath());
            cookieSerializer.setCookieName(sessionCookieConfig.getName());
            cookieSerializer.setCookieMaxAge(sessionCookieConfig.getMaxAge());
            cookieSerializer.setDomainName(sessionCookieConfig.getDomain());
        }
    }

Будет ли это работать, если я не установлю свойства в реализации ServletContainerInitializer?


Я знаю, что в application.properties есть некоторые свойства, сопоставляемые с полями SessionCookieConfig, однако, каково значение по умолчанию SessionCookieConfig, если я не укажу c это в application.properties и как это установить в приложении Spring Boot?

server.servlet.session.cookie.max-age=something
server.servlet.session.cookie.name=something
...