diff --git a/src/main/java/stirling/software/SPDF/config/security/UserAuthenticationFilter.java b/src/main/java/stirling/software/SPDF/config/security/UserAuthenticationFilter.java index 70e65e23b..5208e8f25 100644 --- a/src/main/java/stirling/software/SPDF/config/security/UserAuthenticationFilter.java +++ b/src/main/java/stirling/software/SPDF/config/security/UserAuthenticationFilter.java @@ -5,6 +5,7 @@ import java.util.List; import java.util.Optional; import org.springframework.beans.factory.annotation.Qualifier; +import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.context.annotation.Lazy; import org.springframework.http.HttpStatus; import org.springframework.security.core.Authentication; @@ -34,6 +35,7 @@ import stirling.software.common.model.ApplicationProperties.Security.SAML2; @Slf4j @Component +@ConditionalOnProperty(name = "premium.enabled", havingValue = "true") public class UserAuthenticationFilter extends OncePerRequestFilter { private final ApplicationProperties.Security securityProp; diff --git a/src/main/java/stirling/software/SPDF/config/security/UserService.java b/src/main/java/stirling/software/SPDF/config/security/UserService.java index 71aad721d..068fde1d4 100644 --- a/src/main/java/stirling/software/SPDF/config/security/UserService.java +++ b/src/main/java/stirling/software/SPDF/config/security/UserService.java @@ -11,6 +11,7 @@ import java.util.Optional; import java.util.UUID; import org.springframework.context.MessageSource; +import org.springframework.context.annotation.Lazy; import org.springframework.context.i18n.LocaleContextHolder; import org.springframework.security.authentication.UsernamePasswordAuthenticationToken; import org.springframework.security.core.Authentication; @@ -56,7 +57,7 @@ public class UserService implements UserServiceInterface { private final SessionPersistentRegistry sessionRegistry; - private final DatabaseInterface databaseService; + @Lazy private final DatabaseInterface databaseService; private final ApplicationProperties.Security.OAUTH2 oAuth2; diff --git a/src/main/java/stirling/software/SPDF/config/security/database/DatabaseConfig.java b/src/main/java/stirling/software/SPDF/config/security/database/DatabaseConfig.java index 3deeee48a..73ccbe3b7 100644 --- a/src/main/java/stirling/software/SPDF/config/security/database/DatabaseConfig.java +++ b/src/main/java/stirling/software/SPDF/config/security/database/DatabaseConfig.java @@ -3,9 +3,11 @@ package stirling.software.SPDF.config.security.database; import javax.sql.DataSource; import org.springframework.beans.factory.annotation.Qualifier; +import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.boot.jdbc.DataSourceBuilder; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.Lazy; import lombok.Getter; import lombok.extern.slf4j.Slf4j; @@ -16,7 +18,9 @@ import stirling.software.common.model.exception.UnsupportedProviderException; @Slf4j @Getter +@Lazy @Configuration +@ConditionalOnProperty(name = "premium.proFeatures.database", havingValue = "true") public class DatabaseConfig { public final String DATASOURCE_DEFAULT_URL; diff --git a/src/main/java/stirling/software/SPDF/config/security/session/SessionRegistryConfig.java b/src/main/java/stirling/software/SPDF/config/security/session/SessionRegistryConfig.java index 8fa24e95a..18a84279c 100644 --- a/src/main/java/stirling/software/SPDF/config/security/session/SessionRegistryConfig.java +++ b/src/main/java/stirling/software/SPDF/config/security/session/SessionRegistryConfig.java @@ -1,10 +1,12 @@ package stirling.software.SPDF.config.security.session; +import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.security.core.session.SessionRegistryImpl; @Configuration +@ConditionalOnProperty(name = "premium.enabled", havingValue = "true") public class SessionRegistryConfig { @Bean diff --git a/src/main/java/stirling/software/SPDF/config/security/session/SessionRepository.java b/src/main/java/stirling/software/SPDF/config/security/session/SessionRepository.java index b7f0133f3..d4f2f4bcc 100644 --- a/src/main/java/stirling/software/SPDF/config/security/session/SessionRepository.java +++ b/src/main/java/stirling/software/SPDF/config/security/session/SessionRepository.java @@ -3,6 +3,7 @@ package stirling.software.SPDF.config.security.session; import java.util.Date; import java.util.List; +import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.Modifying; import org.springframework.data.jpa.repository.Query; @@ -14,6 +15,7 @@ import jakarta.transaction.Transactional; import stirling.software.SPDF.model.SessionEntity; @Repository +@ConditionalOnProperty(name = "premium.enabled", havingValue = "true") public interface SessionRepository extends JpaRepository { List findByPrincipalName(String principalName);