use of com.tale.model.dto.RememberMe 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.dto.RememberMe 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);
}
use of com.tale.model.dto.RememberMe in project tale by otale.
the class Bootstrap method load.
@Override
public void load(Blade blade) {
JetbrickTemplateEngine templateEngine = new JetbrickTemplateEngine();
List<String> macros = new ArrayList<>(8);
macros.add(File.separatorChar + "comm" + File.separatorChar + "macros.html");
// 扫描主题下面的所有自定义宏
String themeDir = CLASSPATH + "templates" + File.separatorChar + "themes";
File[] dir = new File(themeDir).listFiles();
if (null != dir) {
for (File f : dir) {
if (f.isDirectory() && Files.exists(Paths.get(f.getPath() + File.separatorChar + "macros.html"))) {
String macroName = File.separatorChar + "themes" + File.separatorChar + f.getName() + File.separatorChar + "macros.html";
macros.add(macroName);
}
}
}
StringBuffer sbuf = new StringBuffer();
macros.forEach(s -> sbuf.append(',').append(s));
templateEngine.addConfig("jetx.import.macros", sbuf.substring(1));
GlobalResolver resolver = templateEngine.getGlobalResolver();
resolver.registerFunctions(Commons.class);
resolver.registerFunctions(Theme.class);
resolver.registerFunctions(AdminCommons.class);
resolver.registerTags(JetTag.class);
JetGlobalContext context = templateEngine.getGlobalContext();
context.set("version", environment.get("app.version", "v1.0"));
context.set("enableCdn", environment.getBoolean("app.enableCdn", false));
blade.templateEngine(templateEngine);
TaleConst.ENABLED_CDN = environment.getBoolean("app.enableCdn", false);
TaleConst.MAX_FILE_SIZE = environment.getInt("app.max-file-size", 20480);
TaleConst.OPTIONS.addAll(optionsService.getOptions());
String ips = TaleConst.OPTIONS.get(Types.BLOCK_IPS, "");
if (StringKit.isNotBlank(ips)) {
TaleConst.BLOCK_IPS.addAll(Arrays.asList(ips.split(",")));
}
if (Files.exists(Paths.get(CLASSPATH + "install.lock"))) {
TaleConst.INSTALLED = Boolean.TRUE;
}
String rememberToken = optionsService.getOption(OPTION_SAFE_REMEMBER_ME);
if (StringKit.isNotEmpty(rememberToken)) {
RememberMe rememberMe = JsonKit.formJson(rememberToken, RememberMe.class);
TaleConst.REMEMBER_TOKEN = rememberMe.getToken();
}
BaseController.THEME = "themes/" + Commons.site_option("site_theme");
TaleConst.BCONF = environment;
}
Aggregations