gp
All checks were successful
Build Docker Image / Docker-Build (push) Successful in 2m16s
Build Docker Image / Clean-Registry (push) Successful in -4s

Merge branch 'main' into dev
This commit is contained in:
2026-02-04 10:03:45 +01:00
4 changed files with 24 additions and 7 deletions

View File

@@ -6,10 +6,11 @@ public class Path {
public static final String ADD = "add"; public static final String ADD = "add";
public static final String AVAILABLE = "available"; public static final String AVAILABLE = "available";
public static final String CSS = "css"; public static final String CSS = "css";
public static final String COMMON_TEMPLATES = "common_templates"; public static final String COMMON_TEMPLATES = "common_templates";
public static final String COMPANY = "company"; public static final String COMPANY = "company";
public static final String CONNECTED = "connected"; public static final String CONFIG_SESSION_DURATION = "umbrella.session.duration";
public static final String CONNECTED = "connected";
public static final String ITEM = "item"; public static final String ITEM = "item";

View File

@@ -88,9 +88,14 @@ public class UserModule extends BaseHandler implements UserService {
public UserModule(Configuration config) throws UmbrellaException { public UserModule(Configuration config) throws UmbrellaException {
super(); super();
var dbFile = config.get(CONFIG_DATABASE).orElseThrow(() -> missingConfig(CONFIG_DATABASE)); var dbFile = config.get(CONFIG_DATABASE).orElseThrow(() -> missingConfig(CONFIG_DATABASE));
var sqlite = new SqliteDB(connect(dbFile));
// may be splitted in separate db files later // may be splitted in separate db files later
logins = new SqliteDB(connect(dbFile)); logins = sqlite;
users = new SqliteDB(connect(dbFile)); users = sqlite;
Optional<Number> sessionDuration = config.get(CONFIG_SESSION_DURATION);
sessionDuration.ifPresent(users::setSessionDuration);
ModuleRegistry.add(this); ModuleRegistry.add(this);
} }

View File

@@ -41,4 +41,6 @@ public interface UserDb {
UmbrellaUser save(DbUser user) throws UmbrellaException; UmbrellaUser save(DbUser user) throws UmbrellaException;
Map<Long,DbUser> search(String key); Map<Long,DbUser> search(String key);
UserDb setSessionDuration(Number minutes);
} }

View File

@@ -35,12 +35,14 @@ import java.security.NoSuchAlgorithmException;
import java.sql.Connection; import java.sql.Connection;
import java.sql.ResultSet; import java.sql.ResultSet;
import java.sql.SQLException; import java.sql.SQLException;
import java.time.Duration;
import java.time.Instant; import java.time.Instant;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.util.*; import java.util.*;
public class SqliteDB extends BaseDb implements LoginServiceDb, UserDb { public class SqliteDB extends BaseDb implements LoginServiceDb, UserDb {
private static final System.Logger LOG = System.getLogger(SqliteDB.class.getSimpleName()); private static final System.Logger LOG = System.getLogger(SqliteDB.class.getSimpleName());
private static Duration sessionDuration = DEFAULT_SESSION_DURATION;
public SqliteDB(Connection conn){ public SqliteDB(Connection conn){
super(conn); super(conn);
@@ -481,8 +483,15 @@ CREATE TABLE IF NOT EXISTS {0} (
} }
} }
@Override
public UserDb setSessionDuration(Number minutes) {
LOG.log(INFO,"Session duration set to {} minutes",minutes);
sessionDuration = Duration.ofMinutes(minutes.longValue());
return this;
}
public Instant then(){ public Instant then(){
return LocalDateTime.now().plus(DEFAULT_SESSION_DURATION).toInstant(UTC); return LocalDateTime.now().plus(sessionDuration).toInstant(UTC);
} }
private ForeignLogin toForeignLogin(ResultSet rs) throws SQLException { private ForeignLogin toForeignLogin(ResultSet rs) throws SQLException {