Search in sources :

Example 1 with Options

use of com.tale.model.entity.Options in project tale by otale.

the class OptionsService method saveOption.

/**
 * 保存配置
 *
 * @param key   配置key
 * @param value 配置值
 */
public void saveOption(String key, String value) {
    if (StringKit.isNotBlank(key) && StringKit.isNotBlank(value)) {
        Options options = new Options();
        options.setName(key);
        long count = select().from(Options.class).where(Options::getName, key).count();
        if (count == 0) {
            options = new Options();
            options.setName(key);
            options.setValue(value);
            options.save();
        } else {
            options = new Options();
            options.setValue(value);
            options.updateById(key);
        }
    }
}
Also used : Options(com.tale.model.entity.Options)

Example 2 with Options

use of com.tale.model.entity.Options in project tale by otale.

the class TaleUtils method getCookieUid.

public static Integer getCookieUid(RouteContext context) {
    String rememberToken = context.cookie(REMEMBER_IN_COOKIE);
    if (null == rememberToken || rememberToken.isEmpty() || REMEMBER_TOKEN.isEmpty()) {
        return null;
    }
    if (!REMEMBER_TOKEN.equals(rememberToken)) {
        return null;
    }
    Options options = select().from(Options.class).where(Options::getName, OPTION_SAFE_REMEMBER_ME).one();
    if (null == options) {
        return null;
    }
    RememberMe rememberMe = JsonKit.formJson(options.getValue(), RememberMe.class);
    if (rememberMe.getExpires() < DateKit.nowUnix()) {
        return null;
    }
    if (!rememberMe.getRecentIp().contains(context.address())) {
        return null;
    }
    return rememberMe.getUid();
}
Also used : Options(com.tale.model.entity.Options) RememberMe(com.tale.model.dto.RememberMe)

Example 3 with Options

use of com.tale.model.entity.Options in project tale by otale.

the class TaleUtils method setCookie.

/**
 * 设置记住密码 cookie
 */
public static void setCookie(RouteContext context, Integer uid) {
    boolean isSSL = Commons.site_url().startsWith("https");
    String token = EncryptKit.md5(UUID.UU64());
    RememberMe rememberMe = new RememberMe();
    rememberMe.setUid(uid);
    rememberMe.setExpires(DateKit.nowUnix() + ONE_MONTH);
    rememberMe.setRecentIp(Collections.singletonList(context.address()));
    rememberMe.setToken(token);
    long count = select().from(Options.class).where(Options::getName, OPTION_SAFE_REMEMBER_ME).count();
    if (count == 0) {
        Options options = new Options();
        options.setName(OPTION_SAFE_REMEMBER_ME);
        options.setValue(JsonKit.toString(rememberMe));
        options.setDescription("记住我 Token");
        options.save();
    } else {
        update().from(Options.class).set(Options::getValue, JsonKit.toString(rememberMe)).where(Options::getName, OPTION_SAFE_REMEMBER_ME).execute();
    }
    Cookie cookie = new Cookie();
    cookie.name(REMEMBER_IN_COOKIE);
    cookie.value(token);
    cookie.httpOnly(true);
    cookie.secure(isSSL);
    cookie.maxAge(ONE_MONTH);
    cookie.path("/");
    context.response().cookie(cookie);
}
Also used : Cookie(com.blade.mvc.http.Cookie) Options(com.tale.model.entity.Options) RememberMe(com.tale.model.dto.RememberMe)

Aggregations

Options (com.tale.model.entity.Options)3 RememberMe (com.tale.model.dto.RememberMe)2 Cookie (com.blade.mvc.http.Cookie)1