wip - making db and sessions conditional

This commit is contained in:
Dario Ghunney Ware 2025-04-16 16:56:18 +01:00
parent 3591ef5cb7
commit 6aaedf52ea
5 changed files with 12 additions and 1 deletions

View File

@ -5,6 +5,7 @@ import java.util.List;
import java.util.Optional; import java.util.Optional;
import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.context.annotation.Lazy; import org.springframework.context.annotation.Lazy;
import org.springframework.http.HttpStatus; import org.springframework.http.HttpStatus;
import org.springframework.security.core.Authentication; import org.springframework.security.core.Authentication;
@ -34,6 +35,7 @@ import stirling.software.common.model.ApplicationProperties.Security.SAML2;
@Slf4j @Slf4j
@Component @Component
@ConditionalOnProperty(name = "premium.enabled", havingValue = "true")
public class UserAuthenticationFilter extends OncePerRequestFilter { public class UserAuthenticationFilter extends OncePerRequestFilter {
private final ApplicationProperties.Security securityProp; private final ApplicationProperties.Security securityProp;

View File

@ -11,6 +11,7 @@ import java.util.Optional;
import java.util.UUID; import java.util.UUID;
import org.springframework.context.MessageSource; import org.springframework.context.MessageSource;
import org.springframework.context.annotation.Lazy;
import org.springframework.context.i18n.LocaleContextHolder; import org.springframework.context.i18n.LocaleContextHolder;
import org.springframework.security.authentication.UsernamePasswordAuthenticationToken; import org.springframework.security.authentication.UsernamePasswordAuthenticationToken;
import org.springframework.security.core.Authentication; import org.springframework.security.core.Authentication;
@ -56,7 +57,7 @@ public class UserService implements UserServiceInterface {
private final SessionPersistentRegistry sessionRegistry; private final SessionPersistentRegistry sessionRegistry;
private final DatabaseInterface databaseService; @Lazy private final DatabaseInterface databaseService;
private final ApplicationProperties.Security.OAUTH2 oAuth2; private final ApplicationProperties.Security.OAUTH2 oAuth2;

View File

@ -3,9 +3,11 @@ package stirling.software.SPDF.config.security.database;
import javax.sql.DataSource; import javax.sql.DataSource;
import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.boot.jdbc.DataSourceBuilder; import org.springframework.boot.jdbc.DataSourceBuilder;
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.context.annotation.Lazy;
import lombok.Getter; import lombok.Getter;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
@ -16,7 +18,9 @@ import stirling.software.common.model.exception.UnsupportedProviderException;
@Slf4j @Slf4j
@Getter @Getter
@Lazy
@Configuration @Configuration
@ConditionalOnProperty(name = "premium.proFeatures.database", havingValue = "true")
public class DatabaseConfig { public class DatabaseConfig {
public final String DATASOURCE_DEFAULT_URL; public final String DATASOURCE_DEFAULT_URL;

View File

@ -1,10 +1,12 @@
package stirling.software.SPDF.config.security.session; 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.Bean;
import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Configuration;
import org.springframework.security.core.session.SessionRegistryImpl; import org.springframework.security.core.session.SessionRegistryImpl;
@Configuration @Configuration
@ConditionalOnProperty(name = "premium.enabled", havingValue = "true")
public class SessionRegistryConfig { public class SessionRegistryConfig {
@Bean @Bean

View File

@ -3,6 +3,7 @@ package stirling.software.SPDF.config.security.session;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Modifying; import org.springframework.data.jpa.repository.Modifying;
import org.springframework.data.jpa.repository.Query; import org.springframework.data.jpa.repository.Query;
@ -14,6 +15,7 @@ import jakarta.transaction.Transactional;
import stirling.software.SPDF.model.SessionEntity; import stirling.software.SPDF.model.SessionEntity;
@Repository @Repository
@ConditionalOnProperty(name = "premium.enabled", havingValue = "true")
public interface SessionRepository extends JpaRepository<SessionEntity, String> { public interface SessionRepository extends JpaRepository<SessionEntity, String> {
List<SessionEntity> findByPrincipalName(String principalName); List<SessionEntity> findByPrincipalName(String principalName);