Make MongoSession package private

See gh-2170
This commit is contained in:
Vedran Pavic
2022-10-11 22:23:40 +02:00
committed by Rob Winch
parent 72742b52e3
commit bcbe53c3dd
13 changed files with 36 additions and 48 deletions

View File

@@ -14,7 +14,7 @@
* limitations under the License. * limitations under the License.
*/ */
package org.springframework.session.data.mongo.integration; package org.springframework.session.data.mongo;
import java.lang.reflect.Field; import java.lang.reflect.Field;
@@ -25,8 +25,6 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.ApplicationContext; import org.springframework.context.ApplicationContext;
import org.springframework.core.serializer.DefaultDeserializer; import org.springframework.core.serializer.DefaultDeserializer;
import org.springframework.core.serializer.support.DeserializingConverter; import org.springframework.core.serializer.support.DeserializingConverter;
import org.springframework.session.data.mongo.AbstractMongoSessionConverter;
import org.springframework.session.data.mongo.JdkMongoSessionConverter;
import org.springframework.util.ReflectionUtils; import org.springframework.util.ReflectionUtils;
/** /**

View File

@@ -1,5 +1,5 @@
/* /*
* Copyright 2014-2016 the original author or authors. * Copyright 2014-2022 the original author or authors.
* *
* Licensed under the Apache License, Version 2.0 (the "License"); * Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License. * you may not use this file except in compliance with the License.
@@ -14,7 +14,7 @@
* limitations under the License. * limitations under the License.
*/ */
package org.springframework.session.data.mongo.integration; package org.springframework.session.data.mongo;
import java.util.UUID; import java.util.UUID;

View File

@@ -14,7 +14,7 @@
* limitations under the License. * limitations under the License.
*/ */
package org.springframework.session.data.mongo.integration; package org.springframework.session.data.mongo;
import java.time.Duration; import java.time.Duration;
import java.time.Instant; import java.time.Instant;
@@ -37,8 +37,6 @@ import org.springframework.security.core.context.SecurityContext;
import org.springframework.security.core.context.SecurityContextHolder; import org.springframework.security.core.context.SecurityContextHolder;
import org.springframework.session.FindByIndexNameSessionRepository; import org.springframework.session.FindByIndexNameSessionRepository;
import org.springframework.session.Session; import org.springframework.session.Session;
import org.springframework.session.data.mongo.MongoIndexedSessionRepository;
import org.springframework.session.data.mongo.MongoSession;
import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.api.Assertions.assertThat;

View File

@@ -14,7 +14,7 @@
* limitations under the License. * limitations under the License.
*/ */
package org.springframework.session.data.mongo.integration; package org.springframework.session.data.mongo;
import java.net.URI; import java.net.URI;
@@ -41,8 +41,6 @@ import org.springframework.security.config.web.server.ServerHttpSecurity;
import org.springframework.security.core.userdetails.MapReactiveUserDetailsService; import org.springframework.security.core.userdetails.MapReactiveUserDetailsService;
import org.springframework.security.core.userdetails.User; import org.springframework.security.core.userdetails.User;
import org.springframework.security.web.server.SecurityWebFilterChain; import org.springframework.security.web.server.SecurityWebFilterChain;
import org.springframework.session.data.mongo.AbstractMongoSessionConverter;
import org.springframework.session.data.mongo.JacksonMongoSessionConverter;
import org.springframework.session.data.mongo.config.annotation.web.reactive.EnableMongoWebSession; import org.springframework.session.data.mongo.config.annotation.web.reactive.EnableMongoWebSession;
import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit.jupiter.SpringExtension; import org.springframework.test.context.junit.jupiter.SpringExtension;

View File

@@ -14,7 +14,7 @@
* limitations under the License. * limitations under the License.
*/ */
package org.springframework.session.data.mongo.integration; package org.springframework.session.data.mongo;
import java.net.URI; import java.net.URI;

View File

@@ -1,5 +1,5 @@
/* /*
* Copyright 2014-2016 the original author or authors. * Copyright 2014-2022 the original author or authors.
* *
* Licensed under the Apache License, Version 2.0 (the "License"); * Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License. * you may not use this file except in compliance with the License.
@@ -14,7 +14,7 @@
* limitations under the License. * limitations under the License.
*/ */
package org.springframework.session.data.mongo.integration; package org.springframework.session.data.mongo;
import java.util.Collections; import java.util.Collections;
import java.util.Map; import java.util.Map;
@@ -25,9 +25,6 @@ import org.junit.jupiter.api.Test;
import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Configuration;
import org.springframework.data.geo.GeoModule; import org.springframework.data.geo.GeoModule;
import org.springframework.session.data.mongo.AbstractMongoSessionConverter;
import org.springframework.session.data.mongo.JacksonMongoSessionConverter;
import org.springframework.session.data.mongo.MongoSession;
import org.springframework.session.data.mongo.config.annotation.web.http.EnableMongoHttpSession; import org.springframework.session.data.mongo.config.annotation.web.http.EnableMongoHttpSession;
import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.ContextConfiguration;

View File

@@ -1,5 +1,5 @@
/* /*
* Copyright 2014-2016 the original author or authors. * Copyright 2014-2022 the original author or authors.
* *
* Licensed under the Apache License, Version 2.0 (the "License"); * Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License. * you may not use this file except in compliance with the License.
@@ -14,7 +14,7 @@
* limitations under the License. * limitations under the License.
*/ */
package org.springframework.session.data.mongo.integration; package org.springframework.session.data.mongo;
import java.time.Duration; import java.time.Duration;
import java.util.Map; import java.util.Map;
@@ -23,9 +23,6 @@ import org.junit.jupiter.api.Test;
import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Configuration;
import org.springframework.session.data.mongo.AbstractMongoSessionConverter;
import org.springframework.session.data.mongo.JdkMongoSessionConverter;
import org.springframework.session.data.mongo.MongoSession;
import org.springframework.session.data.mongo.config.annotation.web.http.EnableMongoHttpSession; import org.springframework.session.data.mongo.config.annotation.web.http.EnableMongoHttpSession;
import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.ContextConfiguration;

View File

@@ -36,6 +36,7 @@ import org.springframework.session.DelegatingIndexResolver;
import org.springframework.session.FindByIndexNameSessionRepository; import org.springframework.session.FindByIndexNameSessionRepository;
import org.springframework.session.IndexResolver; import org.springframework.session.IndexResolver;
import org.springframework.session.PrincipalNameIndexResolver; import org.springframework.session.PrincipalNameIndexResolver;
import org.springframework.session.Session;
import org.springframework.util.Assert; import org.springframework.util.Assert;
/** /**
@@ -55,8 +56,7 @@ public abstract class AbstractMongoSessionConverter implements GenericConverter
private static final String SPRING_SECURITY_CONTEXT = "SPRING_SECURITY_CONTEXT"; private static final String SPRING_SECURITY_CONTEXT = "SPRING_SECURITY_CONTEXT";
private IndexResolver<MongoSession> indexResolver = new DelegatingIndexResolver<>( private IndexResolver<Session> indexResolver = new DelegatingIndexResolver<>(new PrincipalNameIndexResolver<>());
new PrincipalNameIndexResolver<>());
/** /**
* Returns query to be executed to return sessions based on a particular index. * Returns query to be executed to return sessions based on a particular index.
@@ -123,7 +123,7 @@ public abstract class AbstractMongoSessionConverter implements GenericConverter
protected abstract MongoSession convert(Document sessionWrapper); protected abstract MongoSession convert(Document sessionWrapper);
public void setIndexResolver(IndexResolver<MongoSession> indexResolver) { public void setIndexResolver(IndexResolver<Session> indexResolver) {
Assert.notNull(indexResolver, "indexResolver must not be null"); Assert.notNull(indexResolver, "indexResolver must not be null");
this.indexResolver = indexResolver; this.indexResolver = indexResolver;
} }

View File

@@ -37,7 +37,7 @@ import org.springframework.session.Session;
* @author Greg Turnquist * @author Greg Turnquist
* @since 1.2 * @since 1.2
*/ */
public class MongoSession implements Session { class MongoSession implements Session {
/** /**
* Mongo doesn't support {@literal dot} in field names. We replace it with a unicode * Mongo doesn't support {@literal dot} in field names. We replace it with a unicode
@@ -66,15 +66,15 @@ public class MongoSession implements Session {
private Map<String, Object> attrs = new HashMap<>(); private Map<String, Object> attrs = new HashMap<>();
public MongoSession() { MongoSession() {
this(MapSession.DEFAULT_MAX_INACTIVE_INTERVAL_SECONDS); this(MapSession.DEFAULT_MAX_INACTIVE_INTERVAL_SECONDS);
} }
public MongoSession(long maxInactiveIntervalInSeconds) { MongoSession(long maxInactiveIntervalInSeconds) {
this(UUID.randomUUID().toString(), maxInactiveIntervalInSeconds); this(UUID.randomUUID().toString(), maxInactiveIntervalInSeconds);
} }
public MongoSession(String id, long maxInactiveIntervalInSeconds) { MongoSession(String id, long maxInactiveIntervalInSeconds) {
this.id = id; this.id = id;
this.originalSessionId = id; this.originalSessionId = id;
@@ -130,7 +130,7 @@ public class MongoSession implements Session {
return Instant.ofEpochMilli(this.createdMillis); return Instant.ofEpochMilli(this.createdMillis);
} }
public void setCreationTime(long created) { void setCreationTime(long created) {
this.createdMillis = created; this.createdMillis = created;
} }
@@ -184,11 +184,11 @@ public class MongoSession implements Session {
return this.id; return this.id;
} }
public Date getExpireAt() { Date getExpireAt() {
return this.expireAt; return this.expireAt;
} }
public void setExpireAt(final Date expireAt) { void setExpireAt(final Date expireAt) {
this.expireAt = expireAt; this.expireAt = expireAt;
} }

View File

@@ -35,12 +35,12 @@ import org.springframework.core.type.AnnotationMetadata;
import org.springframework.data.mongodb.core.MongoOperations; import org.springframework.data.mongodb.core.MongoOperations;
import org.springframework.session.IndexResolver; import org.springframework.session.IndexResolver;
import org.springframework.session.MapSession; import org.springframework.session.MapSession;
import org.springframework.session.Session;
import org.springframework.session.config.SessionRepositoryCustomizer; import org.springframework.session.config.SessionRepositoryCustomizer;
import org.springframework.session.config.annotation.web.http.SpringHttpSessionConfiguration; import org.springframework.session.config.annotation.web.http.SpringHttpSessionConfiguration;
import org.springframework.session.data.mongo.AbstractMongoSessionConverter; import org.springframework.session.data.mongo.AbstractMongoSessionConverter;
import org.springframework.session.data.mongo.JdkMongoSessionConverter; import org.springframework.session.data.mongo.JdkMongoSessionConverter;
import org.springframework.session.data.mongo.MongoIndexedSessionRepository; import org.springframework.session.data.mongo.MongoIndexedSessionRepository;
import org.springframework.session.data.mongo.MongoSession;
import org.springframework.util.StringUtils; import org.springframework.util.StringUtils;
import org.springframework.util.StringValueResolver; import org.springframework.util.StringValueResolver;
@@ -68,7 +68,7 @@ public class MongoHttpSessionConfiguration implements BeanClassLoaderAware, Embe
private ClassLoader classLoader; private ClassLoader classLoader;
private IndexResolver<MongoSession> indexResolver; private IndexResolver<Session> indexResolver;
@Bean @Bean
public MongoIndexedSessionRepository mongoSessionRepository(MongoOperations mongoOperations) { public MongoIndexedSessionRepository mongoSessionRepository(MongoOperations mongoOperations) {
@@ -156,7 +156,7 @@ public class MongoHttpSessionConfiguration implements BeanClassLoaderAware, Embe
} }
@Autowired(required = false) @Autowired(required = false)
public void setIndexResolver(IndexResolver<MongoSession> indexResolver) { public void setIndexResolver(IndexResolver<Session> indexResolver) {
this.indexResolver = indexResolver; this.indexResolver = indexResolver;
} }

View File

@@ -36,11 +36,11 @@ import org.springframework.data.mongodb.core.MongoOperations;
import org.springframework.data.mongodb.core.ReactiveMongoOperations; import org.springframework.data.mongodb.core.ReactiveMongoOperations;
import org.springframework.session.IndexResolver; import org.springframework.session.IndexResolver;
import org.springframework.session.MapSession; import org.springframework.session.MapSession;
import org.springframework.session.Session;
import org.springframework.session.config.ReactiveSessionRepositoryCustomizer; import org.springframework.session.config.ReactiveSessionRepositoryCustomizer;
import org.springframework.session.config.annotation.web.server.SpringWebSessionConfiguration; import org.springframework.session.config.annotation.web.server.SpringWebSessionConfiguration;
import org.springframework.session.data.mongo.AbstractMongoSessionConverter; import org.springframework.session.data.mongo.AbstractMongoSessionConverter;
import org.springframework.session.data.mongo.JdkMongoSessionConverter; import org.springframework.session.data.mongo.JdkMongoSessionConverter;
import org.springframework.session.data.mongo.MongoSession;
import org.springframework.session.data.mongo.ReactiveMongoSessionRepository; import org.springframework.session.data.mongo.ReactiveMongoSessionRepository;
import org.springframework.util.StringUtils; import org.springframework.util.StringUtils;
import org.springframework.util.StringValueResolver; import org.springframework.util.StringValueResolver;
@@ -72,7 +72,7 @@ public class ReactiveMongoWebSessionConfiguration
private ClassLoader classLoader; private ClassLoader classLoader;
private IndexResolver<MongoSession> indexResolver; private IndexResolver<Session> indexResolver;
@Bean @Bean
public ReactiveMongoSessionRepository reactiveMongoSessionRepository(ReactiveMongoOperations operations) { public ReactiveMongoSessionRepository reactiveMongoSessionRepository(ReactiveMongoOperations operations) {
@@ -176,7 +176,7 @@ public class ReactiveMongoWebSessionConfiguration
} }
@Autowired(required = false) @Autowired(required = false)
public void setIndexResolver(IndexResolver<MongoSession> indexResolver) { public void setIndexResolver(IndexResolver<Session> indexResolver) {
this.indexResolver = indexResolver; this.indexResolver = indexResolver;
} }

View File

@@ -33,11 +33,11 @@ import org.springframework.data.mongodb.core.MongoOperations;
import org.springframework.data.mongodb.core.index.IndexOperations; import org.springframework.data.mongodb.core.index.IndexOperations;
import org.springframework.mock.env.MockEnvironment; import org.springframework.mock.env.MockEnvironment;
import org.springframework.session.IndexResolver; import org.springframework.session.IndexResolver;
import org.springframework.session.Session;
import org.springframework.session.config.SessionRepositoryCustomizer; import org.springframework.session.config.SessionRepositoryCustomizer;
import org.springframework.session.data.mongo.AbstractMongoSessionConverter; import org.springframework.session.data.mongo.AbstractMongoSessionConverter;
import org.springframework.session.data.mongo.JacksonMongoSessionConverter; import org.springframework.session.data.mongo.JacksonMongoSessionConverter;
import org.springframework.session.data.mongo.MongoIndexedSessionRepository; import org.springframework.session.data.mongo.MongoIndexedSessionRepository;
import org.springframework.session.data.mongo.MongoSession;
import org.springframework.test.util.ReflectionTestUtils; import org.springframework.test.util.ReflectionTestUtils;
import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.api.Assertions.assertThat;
@@ -170,7 +170,7 @@ public class MongoHttpSessionConfigurationTest {
CustomIndexResolverConfigurationWithDefaultMongoSessionConverter.class); CustomIndexResolverConfigurationWithDefaultMongoSessionConverter.class);
MongoIndexedSessionRepository repository = this.context.getBean(MongoIndexedSessionRepository.class); MongoIndexedSessionRepository repository = this.context.getBean(MongoIndexedSessionRepository.class);
IndexResolver<MongoSession> indexResolver = this.context.getBean(IndexResolver.class); IndexResolver<Session> indexResolver = this.context.getBean(IndexResolver.class);
assertThat(repository).isNotNull(); assertThat(repository).isNotNull();
assertThat(indexResolver).isNotNull(); assertThat(indexResolver).isNotNull();
@@ -185,7 +185,7 @@ public class MongoHttpSessionConfigurationTest {
CustomIndexResolverConfigurationWithProvidedMongoSessionConverter.class); CustomIndexResolverConfigurationWithProvidedMongoSessionConverter.class);
MongoIndexedSessionRepository repository = this.context.getBean(MongoIndexedSessionRepository.class); MongoIndexedSessionRepository repository = this.context.getBean(MongoIndexedSessionRepository.class);
IndexResolver<MongoSession> indexResolver = this.context.getBean(IndexResolver.class); IndexResolver<Session> indexResolver = this.context.getBean(IndexResolver.class);
assertThat(repository).isNotNull(); assertThat(repository).isNotNull();
assertThat(indexResolver).isNotNull(); assertThat(indexResolver).isNotNull();
@@ -316,7 +316,7 @@ public class MongoHttpSessionConfigurationTest {
@Bean @Bean
@SuppressWarnings("unchecked") @SuppressWarnings("unchecked")
IndexResolver<MongoSession> indexResolver() { IndexResolver<Session> indexResolver() {
return mock(IndexResolver.class); return mock(IndexResolver.class);
} }
@@ -333,7 +333,7 @@ public class MongoHttpSessionConfigurationTest {
@Bean @Bean
@SuppressWarnings("unchecked") @SuppressWarnings("unchecked")
IndexResolver<MongoSession> indexResolver() { IndexResolver<Session> indexResolver() {
return mock(IndexResolver.class); return mock(IndexResolver.class);
} }

View File

@@ -34,12 +34,12 @@ import org.springframework.data.mongodb.core.ReactiveMongoOperations;
import org.springframework.data.mongodb.core.index.IndexOperations; import org.springframework.data.mongodb.core.index.IndexOperations;
import org.springframework.session.IndexResolver; import org.springframework.session.IndexResolver;
import org.springframework.session.ReactiveSessionRepository; import org.springframework.session.ReactiveSessionRepository;
import org.springframework.session.Session;
import org.springframework.session.config.ReactiveSessionRepositoryCustomizer; import org.springframework.session.config.ReactiveSessionRepositoryCustomizer;
import org.springframework.session.config.annotation.web.server.EnableSpringWebSession; import org.springframework.session.config.annotation.web.server.EnableSpringWebSession;
import org.springframework.session.data.mongo.AbstractMongoSessionConverter; import org.springframework.session.data.mongo.AbstractMongoSessionConverter;
import org.springframework.session.data.mongo.JacksonMongoSessionConverter; import org.springframework.session.data.mongo.JacksonMongoSessionConverter;
import org.springframework.session.data.mongo.JdkMongoSessionConverter; import org.springframework.session.data.mongo.JdkMongoSessionConverter;
import org.springframework.session.data.mongo.MongoSession;
import org.springframework.session.data.mongo.ReactiveMongoSessionRepository; import org.springframework.session.data.mongo.ReactiveMongoSessionRepository;
import org.springframework.util.ReflectionUtils; import org.springframework.util.ReflectionUtils;
import org.springframework.web.server.adapter.WebHttpHandlerBuilder; import org.springframework.web.server.adapter.WebHttpHandlerBuilder;
@@ -189,7 +189,7 @@ public class ReactiveMongoWebSessionConfigurationTest {
this.context.refresh(); this.context.refresh();
ReactiveMongoSessionRepository repository = this.context.getBean(ReactiveMongoSessionRepository.class); ReactiveMongoSessionRepository repository = this.context.getBean(ReactiveMongoSessionRepository.class);
IndexResolver<MongoSession> indexResolver = this.context.getBean(IndexResolver.class); IndexResolver<Session> indexResolver = this.context.getBean(IndexResolver.class);
assertThat(repository).isNotNull(); assertThat(repository).isNotNull();
assertThat(indexResolver).isNotNull(); assertThat(indexResolver).isNotNull();
@@ -205,7 +205,7 @@ public class ReactiveMongoWebSessionConfigurationTest {
this.context.refresh(); this.context.refresh();
ReactiveMongoSessionRepository repository = this.context.getBean(ReactiveMongoSessionRepository.class); ReactiveMongoSessionRepository repository = this.context.getBean(ReactiveMongoSessionRepository.class);
IndexResolver<MongoSession> indexResolver = this.context.getBean(IndexResolver.class); IndexResolver<Session> indexResolver = this.context.getBean(IndexResolver.class);
assertThat(repository).isNotNull(); assertThat(repository).isNotNull();
assertThat(indexResolver).isNotNull(); assertThat(indexResolver).isNotNull();
@@ -367,7 +367,7 @@ public class ReactiveMongoWebSessionConfigurationTest {
@Bean @Bean
@SuppressWarnings("unchecked") @SuppressWarnings("unchecked")
IndexResolver<MongoSession> indexResolver() { IndexResolver<Session> indexResolver() {
return mock(IndexResolver.class); return mock(IndexResolver.class);
} }
@@ -389,7 +389,7 @@ public class ReactiveMongoWebSessionConfigurationTest {
@Bean @Bean
@SuppressWarnings("unchecked") @SuppressWarnings("unchecked")
IndexResolver<MongoSession> indexResolver() { IndexResolver<Session> indexResolver() {
return mock(IndexResolver.class); return mock(IndexResolver.class);
} }