
org.pac4j.vertx.context.session.VertxSessionStore Maven / Gradle / Ivy
The newest version!
package org.pac4j.vertx.context.session;
import io.vertx.ext.web.Session;
import org.pac4j.core.context.WebContext;
import org.pac4j.core.context.session.SessionStore;
import org.pac4j.core.exception.TechnicalException;
import org.pac4j.core.profile.UserProfile;
import org.pac4j.core.util.Pac4jConstants;
import org.pac4j.core.util.serializer.JavaSerializer;
import org.pac4j.vertx.VertxWebContext;
import java.util.*;
import java.util.concurrent.CompletableFuture;
import java.util.concurrent.ExecutionException;
/**
* Vert.x implementation of pac4j SessionStore interface to access the existing vertx-web session.
*
*/
public class VertxSessionStore implements SessionStore {
private final io.vertx.ext.web.sstore.SessionStore sessionStore;
private static final JavaSerializer JAVA_SERIALIZER = new JavaSerializer();
private final Session providedSession;
public VertxSessionStore(final io.vertx.ext.web.sstore.SessionStore sessionStore) {
this(sessionStore, null);
}
public VertxSessionStore(final io.vertx.ext.web.sstore.SessionStore sessionStore, final Session providedSession) {
this.sessionStore = sessionStore;
this.providedSession = providedSession;
}
protected Session getVertxSession(final WebContext context) {
if (providedSession != null) {
return providedSession;
} else {
return ((VertxWebContext)context).getVertxSession();
}
}
@Override
public Optional getSessionId(WebContext context, boolean b) {
final Session vertxSession = getVertxSession(context);
if (vertxSession != null) {
return Optional.of(getVertxSession(context).id());
}
return Optional.empty();
}
@Override
public Optional
© 2015 - 2025 Weber Informatics LLC | Privacy Policy