This commit is contained in:
Phillip Webb
2016-05-13 18:20:07 -07:00
parent a1ac934bee
commit 6cdbdf9ad3
8 changed files with 97 additions and 20 deletions

View File

@@ -45,7 +45,8 @@ import org.springframework.session.data.redis.config.annotation.web.http.RedisHt
@Conditional(SessionCondition.class)
class RedisSessionConfiguration {
private static final Logger logger = LoggerFactory.getLogger(RedisSessionConfiguration.class);
private static final Logger logger = LoggerFactory
.getLogger(RedisSessionConfiguration.class);
@Configuration
public static class SpringBootRedisHttpSessionConfiguration
@@ -68,8 +69,8 @@ class RedisSessionConfiguration {
@PostConstruct
public void validate() {
if (this.sessionProperties.getStoreType() == null) {
logger.warn("Spring Session store type is mandatory: set " +
"'spring.session.store-type=redis' in your configuration");
logger.warn("Spring Session store type is mandatory: set "
+ "'spring.session.store-type=redis' in your configuration");
}
}

View File

@@ -55,7 +55,7 @@ import org.springframework.util.Assert;
@EnableConfigurationProperties(SessionProperties.class)
@AutoConfigureAfter({ DataSourceAutoConfiguration.class, HazelcastAutoConfiguration.class,
MongoAutoConfiguration.class, RedisAutoConfiguration.class })
@Import({ SessionConfigurationImportSelector.class, SessionRepositoryValidator.class})
@Import({ SessionConfigurationImportSelector.class, SessionRepositoryValidator.class })
public class SessionAutoConfiguration {
/**
@@ -82,6 +82,7 @@ public class SessionAutoConfiguration {
static class SessionRepositoryValidator {
private SessionProperties sessionProperties;
private ObjectProvider<SessionRepository<?>> sessionRepositoryProvider;
SessionRepositoryValidator(SessionProperties sessionProperties,
@@ -95,9 +96,9 @@ public class SessionAutoConfiguration {
StoreType storeType = this.sessionProperties.getStoreType();
if (storeType != StoreType.NONE) {
Assert.notNull(this.sessionRepositoryProvider.getIfAvailable(),
"No session repository could "
+ "be auto-configured, check your configuration (session "
+ "store type is '" + storeType + "')");
"No session repository could be auto-configured, check your "
+ "configuration (session store type is '" + storeType
+ "')");
}
}

View File

@@ -32,7 +32,8 @@ import org.springframework.util.ClassUtils;
class SessionCondition extends SpringBootCondition {
private static final boolean redisPresent = ClassUtils.isPresent(
"org.springframework.data.redis.core.RedisTemplate", SessionCondition.class.getClassLoader());
"org.springframework.data.redis.core.RedisTemplate",
SessionCondition.class.getClassLoader());
@Override
public ConditionOutcome getMatchOutcome(ConditionContext context,
@@ -43,11 +44,10 @@ class SessionCondition extends SpringBootCondition {
.getType(((AnnotationMetadata) metadata).getClassName());
if (!resolver.containsProperty("store-type")) {
if (sessionStoreType == StoreType.REDIS && redisPresent) {
return ConditionOutcome.match("Session store type default to redis (deprecated)");
}
else {
return ConditionOutcome.noMatch("Session store type not set");
return ConditionOutcome
.match("Session store type default to redis (deprecated)");
}
return ConditionOutcome.noMatch("Session store type not set");
}
String value = resolver.getProperty("store-type").replace("-", "_").toUpperCase();
if (value.equals(sessionStoreType.name())) {

View File

@@ -39,19 +39,18 @@ import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.verifyZeroInteractions;
/**
* Test to validate that a custom {@link RestTemplate} can be defined
* with OAuth2 SSO.
* Test to validate that a custom {@link RestTemplate} can be defined with OAuth2 SSO.
*
* @author Stephane Nicoll
*/
@RunWith(SpringRunner.class)
@DirtiesContext
@SpringBootTest
@TestPropertySource(properties = {"security.oauth2.client.clientId=client",
@TestPropertySource(properties = { "security.oauth2.client.clientId=client",
"security.oauth2.client.clientSecret=secret",
"security.oauth2.client.userAuthorizationUri=http://example.com/oauth/authorize",
"security.oauth2.client.accessTokenUri=http://example.com/oauth/token",
"security.oauth2.resource.jwt.keyValue=SSSSHHH"})
"security.oauth2.resource.jwt.keyValue=SSSSHHH" })
public class CustomRestTemplateBasicOAuth2SsoConfigurationTests {
@Autowired
@@ -82,5 +81,3 @@ public class CustomRestTemplateBasicOAuth2SsoConfigurationTests {
}
}

View File

@@ -64,7 +64,6 @@ public class SessionAutoConfigurationTests extends AbstractSessionAutoConfigurat
this.thrown.expect(BeanCreationException.class);
this.thrown.expectMessage("No session repository could be auto-configured");
this.thrown.expectMessage("session store type is 'null'");
load();
}