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);
}
}
}
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();
}
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);
}
Aggregations