All Downloads are FREE. Search and download functionalities are using the official Maven repository.

cc.shacocloud.mirage.web.bind.SessionHandlerOptions Maven / Gradle / Ivy

package cc.shacocloud.mirage.web.bind;

import io.vertx.core.http.CookieSameSite;
import io.vertx.ext.web.handler.SessionHandler;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;

/**
 * mvc 会话处理配置属性
 */
@Getter
@Setter
@NoArgsConstructor
public class SessionHandlerOptions {

    public static final SessionStoreOptions STORE_DEFAULT = new SessionStoreOptions();

    public static final SessionHandlerOptions DEFAULT = new SessionHandlerOptions();

    /**
     * 存储配置
     */
    private SessionStoreOptions storeOptions = STORE_DEFAULT;

    /**
     * 会话 cookie 的默认名称
     */
    private String sessionCookieName = "mirage-web.session";

    /**
     * 会话cookie的默认路径
     */
    private String sessionCookiePath = SessionHandler.DEFAULT_SESSION_COOKIE_PATH;

    /**
     * 会话在过期前不被访问的持续时间。 单位/ms
     */
    private long sessionTimeout = SessionHandler.DEFAULT_SESSION_TIMEOUT;

    /**
     * 默认情况下,如果会话处理程序是通过HTTP而不是HTTPS访问的,是否应该写入日志警告
     */
    private boolean nagHttps = true;

    /**
     * cookie是否设置了 "secure" 标志,只允许https传输。
     * 

* 更多信息: */ private boolean sessionCookieSecure = SessionHandler.DEFAULT_COOKIE_SECURE_FLAG; /** * 默认的cookie是否有HttpOnly标志设置 *

* 更多信息: */ private boolean sessionCookieHttpOnly = SessionHandler.DEFAULT_COOKIE_HTTP_ONLY_FLAG; /** * 会话id的默认最小长度。 *

* 更多信息: */ private int minLength = SessionHandler.DEFAULT_SESSIONID_MIN_LENGTH; /** * 设置要使用的会话cookie SameSite策略。 */ private CookieSameSite cookieSameSite; /** * 默认情况下是否应该延迟创建会话。 */ private boolean lazySession = SessionHandler.DEFAULT_LAZY_SESSION; /** * 会话存储配置 *

* 本地还是集群 会更加 Vertx的属性自动配置 */ @Getter @Setter @NoArgsConstructor public static class SessionStoreOptions { /** * 会话映射使用的名称 */ private String mapName = "mirage-web.sessions"; /** * 重试超时,用于未在此存储中找到的会话,单位/ms */ private long retryTimeout = 5 * 1000; // 5秒 /** * 检查过期会话的默认频率,单位/ms */ private long reaperInterval = 1000; } }





© 2015 - 2025 Weber Informatics LLC | Privacy Policy