From 7b9471836b5f947a56189fafd01da3e203632094 Mon Sep 17 00:00:00 2001 From: Stephane Nicoll Date: Fri, 19 Apr 2019 15:53:45 +0200 Subject: [PATCH] Polish "Improve DefaultCookieSerializer auto-configuration" Closes gh-16513 --- .../session/SessionAutoConfiguration.java | 21 ++++++------------- .../SessionAutoConfigurationTests.java | 2 +- 2 files changed, 7 insertions(+), 16 deletions(-) diff --git a/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/session/SessionAutoConfiguration.java b/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/session/SessionAutoConfiguration.java index 62ae10c4c9..688e66158e 100644 --- a/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/session/SessionAutoConfiguration.java +++ b/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/session/SessionAutoConfiguration.java @@ -1,5 +1,5 @@ /* - * Copyright 2012-2018 the original author or authors. + * Copyright 2012-2019 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -90,18 +90,10 @@ public class SessionAutoConfiguration { SessionRepositoryFilterConfiguration.class }) static class ServletSessionConfiguration { - private final SpringSessionRememberMeServices springSessionRememberMeServices; - - ServletSessionConfiguration( - ObjectProvider springSessionRememberMeServices) { - this.springSessionRememberMeServices = springSessionRememberMeServices - .getIfAvailable(); - } - @Bean @Conditional(DefaultCookieSerializerCondition.class) - public DefaultCookieSerializer cookieSerializer( - ServerProperties serverProperties) { + public DefaultCookieSerializer cookieSerializer(ServerProperties serverProperties, + ObjectProvider springSessionRememberMeServices) { Cookie cookie = serverProperties.getServlet().getSession().getCookie(); DefaultCookieSerializer cookieSerializer = new DefaultCookieSerializer(); PropertyMapper map = PropertyMapper.get().alwaysApplyingWhenNonNull(); @@ -112,10 +104,9 @@ public class SessionAutoConfiguration { map.from(cookie::getSecure).to(cookieSerializer::setUseSecureCookie); map.from(cookie::getMaxAge).to((maxAge) -> cookieSerializer .setCookieMaxAge((int) maxAge.getSeconds())); - if (this.springSessionRememberMeServices != null) { - cookieSerializer.setRememberMeRequestAttribute( - SpringSessionRememberMeServices.REMEMBER_ME_LOGIN_ATTR); - } + springSessionRememberMeServices.ifAvailable(( + rememberMeServices) -> cookieSerializer.setRememberMeRequestAttribute( + SpringSessionRememberMeServices.REMEMBER_ME_LOGIN_ATTR)); return cookieSerializer; } diff --git a/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/session/SessionAutoConfigurationTests.java b/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/session/SessionAutoConfigurationTests.java index d9c2ad0244..b22c82d9f1 100644 --- a/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/session/SessionAutoConfigurationTests.java +++ b/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/session/SessionAutoConfigurationTests.java @@ -1,5 +1,5 @@ /* - * Copyright 2012-2018 the original author or authors. + * Copyright 2012-2019 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License.