package org.pac4j.vertx; import org.pac4j.core.profile.CommonProfile; import org.pac4j.core.profile.ProfileManager; import org.pac4j.vertx.auth.Pac4jUser; import org.pac4j.vertx.context.session.VertxSessionStore; import java.util.LinkedHashMap; import java.util.Optional; /** * @author Jeremy Prime * @since 2.0.0 */ public class VertxProfileManager extends ProfileManager<CommonProfile> { private final VertxWebContext vertxWebContext; public VertxProfileManager(final VertxWebContext context) { super(context); this.vertxWebContext = context; } public VertxProfileManager(final VertxWebContext context, final VertxSessionStore sessionStore) { super(context, sessionStore); this.vertxWebContext = context; } @Override protected void saveAll(final LinkedHashMap<String, CommonProfile> profiles, final boolean saveInSession) { super.saveAll(profiles, saveInSession); final Pac4jUser vertxUser = Optional.ofNullable(vertxWebContext.getVertxUser()).orElse(new Pac4jUser()); vertxUser.setUserProfiles(profiles); vertxWebContext.setVertxUser(vertxUser); } @Override public void remove(boolean removeFromSession) { super.remove(removeFromSession); vertxWebContext.removeVertxUser(); } }