implemented trust option

Signed-off-by: Stephan Richter <s.richter@srsoftware.de>
This commit is contained in:
2024-09-24 20:59:13 +02:00
parent 3e88c91154
commit a8b476264c
11 changed files with 45 additions and 34 deletions

View File

@@ -51,6 +51,7 @@ public class Constants {
public static final String START_TLS = "start_tls";
public static final String TOKEN = "token";
public static final String TOKEN_TYPE = "token_type";
public static final String TRUST = "trust";
public static final String UNAUTHORIZED_CLIENT = "unauthorized_client";
public static final String USER = "user";
public static final String USER_ID = "user_id";

View File

@@ -6,7 +6,7 @@ import de.srsoftware.oidc.api.data.User;
import java.util.Optional;
public interface SessionService {
Session createSession(User user);
Session createSession(User user, boolean trustBrowser);
SessionService dropSession(String sessionId);
Session extend(Session session, User user);
Optional<Session> retrieve(String sessionId);

View File

@@ -3,5 +3,5 @@ package de.srsoftware.oidc.api.data;
import java.time.Instant;
public record Session(String userId, Instant expiration, String id) {
public record Session(String userId, Instant expiration, String id, boolean trustBrowser) {
}

View File

@@ -41,7 +41,7 @@ public abstract class SessionServiceTest {
var user = new User(USERNAME, pass, REALNAME, EMAIL, uuid).sessionDuration(Duration.ofMinutes(5));
Instant now = Instant.now();
var session = sessionService().createSession(user);
var session = sessionService().createSession(user, false);
var expiration = session.expiration();
assertTrue(expiration.isAfter(now.plus(5, ChronoUnit.MINUTES).minusSeconds(1)));
assertTrue(expiration.isBefore(now.plus(5, ChronoUnit.MINUTES).plusSeconds(1)));
@@ -57,7 +57,7 @@ public abstract class SessionServiceTest {
var pass = hasher().hash(PASSWORD, uuid);
var user = new User(USERNAME, pass, REALNAME, EMAIL, uuid).sessionDuration(Duration.ofMinutes(5));
var session = sessionService().createSession(user);
var session = sessionService().createSession(user, false);
Instant now = Instant.now();
sessionService().extend(session, user.sessionDuration(Duration.ofMinutes(10)));
@@ -75,7 +75,7 @@ public abstract class SessionServiceTest {
var pass = hasher().hash(PASSWORD, uuid);
var user = new User(USERNAME, pass, REALNAME, EMAIL, uuid).sessionDuration(Duration.ofMinutes(5));
var session = sessionService().createSession(user);
var session = sessionService().createSession(user, false);
assertTrue(sessionService().retrieve(session.id()).isPresent());
sessionService().dropSession(session.id());
@@ -89,7 +89,7 @@ public abstract class SessionServiceTest {
var pass = hasher().hash(PASSWORD, uuid);
var user = new User(USERNAME, pass, REALNAME, EMAIL, uuid).sessionDuration(Duration.ofSeconds(2));
var session = sessionService().createSession(user);
var session = sessionService().createSession(user, false);
assertTrue(sessionService().retrieve(session.id()).isPresent());
Thread.sleep(2500);