implemented trust option
Signed-off-by: Stephan Richter <s.richter@srsoftware.de>
This commit is contained in:
@@ -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";
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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) {
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user