You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

26 lines
832 B

/* © SRSoftware 2024 */
package de.srsoftware.oidc.backend;
import com.sun.net.httpserver.HttpExchange;
import de.srsoftware.oidc.api.SessionService;
import de.srsoftware.oidc.api.data.Session;
import de.srsoftware.tools.PathHandler;
import de.srsoftware.tools.SessionToken;
import java.io.IOException;
import java.util.Optional;
public abstract class Controller extends PathHandler {
protected final SessionService sessions;
Controller(SessionService sessionService) {
sessions = sessionService;
}
protected Optional<Session> getSession(HttpExchange ex) {
return SessionToken.from(ex).map(SessionToken::sessionId).flatMap(sessionId -> sessions.retrieve(sessionId));
}
protected boolean invalidSessionUser(HttpExchange ex) throws IOException {
return serverError(ex, "Session object refers to missing user");
}
}