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

org.swiftboot.auth.service.SessionBuilder Maven / Gradle / Ivy

The newest version!
package org.swiftboot.auth.service;

import org.apache.commons.lang3.StringUtils;

import java.util.HashMap;
import java.util.Map;

/**
 * 构造用户会话 {@link Session}
 *
 * @author swiftech
 * @see Session
 */
public class SessionBuilder {

    /**
     * The user token here is used for {@link org.swiftboot.auth.interceptor.UserSessionResponseAdvice} to read.
     *
     */
    private String userToken;

    /**
     * 会话分组名称,如果不提供,会话会被分配到默认的分组
     */
    private String group;

    /**
     * 用户ID
     */
    private String userId;

    /**
     * 用户名称
     */
    private String userName;

    /**
     * 会话超时时间,单位毫秒,设为 null 表示不超时
     */
    private Long expireTime;

    private final Map additions = new HashMap<>();

    public SessionBuilder userToken(String userToken) {
        this.userToken = userToken;
        return this;
    }

    public SessionBuilder group(String group) {
        this.group = group;
        return this;
    }

    public SessionBuilder userId(String userId) {
        this.userId = userId;
        return this;
    }

    public SessionBuilder userName(String userName) {
        this.userName = userName;
        return this;
    }

    public SessionBuilder expireTime(Long expireTime) {
        this.expireTime = expireTime;
        return this;
    }

    public SessionBuilder addition(String key, Object value) {
        if (StringUtils.isNotBlank(key) && value != null) {
            this.additions.put(key, value);
        }
        return this;
    }

    public Session createSession() {
        Session ret = new Session(userToken, group, userId, userName, expireTime);
        if (!this.additions.isEmpty()) {
            ret.setAdditions(this.additions);
        }
        return ret;
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy