main
黄海 7 months ago
parent 80c5081396
commit 993fb5caca

@ -3,7 +3,10 @@ package Tools.TestUnit;
import com.dsideal.QingLong.Util.RsaUtils;
public class RsaTest {
public static void main(String[] args) {
public static void main(String[] args) throws Exception {
String source="092163";
String pwd = RsaUtils.encryptedDataOnJava(source, RsaUtils.PUBLICKEY);
System.out.println(pwd);

@ -67,7 +67,7 @@ public class DataShareController extends Controller {
renderJson(kv);
return;
}
dm.addSystem(system_name, user_name,redirect_url);
dm.addSystem(system_name, user_name, redirect_url);
Kv kv = Kv.by("success", true);
kv.set("message", "保存成功!");
renderJson(kv);
@ -251,8 +251,8 @@ public class DataShareController extends Controller {
@IsSysAdminInterface({"1"})
@IsNumericInterface({"system_id"})
@EmptyInterface({"system_name"})
public void updateSystem(int system_id, String system_name,String redirect_url) {
dm.updateSystem(system_id, system_name,redirect_url);
public void updateSystem(int system_id, String system_name, String redirect_url) {
dm.updateSystem(system_id, system_name, redirect_url);
Kv kv = Kv.by("success", true);
kv.set("message", "保存成功!");
renderJson(kv);
@ -335,4 +335,25 @@ public class DataShareController extends Controller {
List<Record> list = dm.getShareTable(system_id);
renderJson(list);
}
/**
* Token
*
* @param user_name
* @param pwd
*/
@Before({POST.class})
public void getToken(String user_name, String pwd) {
//获取 token
String token = dm.getToken(user_name, pwd);
if (token != null) {
Kv kv = Kv.by("token", token);
kv.set("success", true);
kv.set("message", "获取成功!");
renderJson(kv);
return;
}
renderJson(Kv.by("success", false).set("message", "用户名与密码不正确!"));
}
}

@ -2,6 +2,7 @@ package com.dsideal.QingLong.DataShare.Model;
import com.dsideal.QingLong.Util.CommonUtil;
import com.dsideal.QingLong.Util.PgUtil;
import com.dsideal.QingLong.Util.RsaUtils;
import com.jfinal.kit.Kv;
import com.jfinal.kit.StrKit;
import com.jfinal.plugin.activerecord.Db;
@ -338,6 +339,51 @@ public class DataShareModel {
String sql = "select * from t_datashare_system where redirect_url=?";
return Db.findFirst(sql, redirect_url) != null;
}
/**
* token
*
* @param user_name
* @param pwd
* @return token, null
*/
public String getToken(String user_name, String pwd) {
String sql = "select * from t_datashare_system where user_name=? and pwd=?";
Record record = Db.findFirst(sql, user_name, pwd);
if (record == null) return null;
return RsaUtils.encryptedDataOnJava(user_name + " " + System.currentTimeMillis(), RsaUtils.PUBLICKEY);
}
/**
* token
*
* @param token token
* @return
*/
public Record checkToken(String token) {
Record record = new Record();
try {
String decryptedData = RsaUtils.decryptDataOnJava(token, RsaUtils.PRIVATEKEY);
String[] x = decryptedData.split(" ");
String time = x[1];
//判断时间戳是否超时与当前时间相差60*8分钟
if (System.currentTimeMillis() - Long.parseLong(time) > 1000 * 60 * 8) {
record.set("message", "票据超时!");
record.set("success", false);
} else {
//计算两个时间戳之间的差值,单位为秒
long diff = (System.currentTimeMillis() - Long.parseLong(time)) / 1000;
System.out.println("票据有效,时间差为:" + diff + "秒");
record.set("message", "票据有效,时间差为:" + diff + "秒");
record.set("success", true);
}
} catch (Exception e) {
record.set("success", false);
record.set("message", "票据无效!");
}
return record;
}
}

@ -5,12 +5,9 @@ import com.jfinal.core.Controller;
import com.jfinal.ext.interceptor.GET;
import com.jfinal.kit.PropKit;
public class IndexController extends Controller {
@Before({GET.class})
public void index() {
redirect(PropKit.get("first_page"));
}
}

@ -9,7 +9,7 @@ import com.jfinal.plugin.redis.RedisPlugin;
import java.io.File;
public class PostgresqlInit {
public class PostgreSqlInit {
public static void Init() {
//告之配置文件位置
PropKit.use("application.properties");
@ -25,7 +25,7 @@ public class PostgresqlInit {
arp.setDialect(new PostgreSqlDialect());
//遍历sql目录下所有的sql文件
File sqlDir;
String basePath = PostgresqlInit.class.getClassLoader().getResource(".").getPath();
String basePath = PostgreSqlInit.class.getClassLoader().getResource(".").getPath();
sqlDir = new File(basePath + "/Sql");
File[] sqlFiles = sqlDir.listFiles();
for (File sqlFile : sqlFiles != null ? sqlFiles : new File[0]) {

@ -1,6 +1,7 @@
package com.dsideal.QingLong.Util;
import cn.hutool.core.codec.Base64;
import cn.hutool.core.date.DateTime;
import javax.crypto.Cipher;
import java.io.ByteArrayOutputStream;
@ -319,19 +320,34 @@ public class RsaUtils {
/**
* java
*/
public static String decryptDataOnJava(String data, String PRIVATEKEY) {
public static String decryptDataOnJava(String data, String PRIVATEKEY) throws Exception {
String temp = "";
try {
byte[] rs = Base64.decode(data);
temp = new String(RsaUtils.decryptByPrivateKey(rs, PRIVATEKEY), "UTF-8");
} catch (Exception e) {
e.printStackTrace();
}
byte[] rs = Base64.decode(data);
temp = new String(RsaUtils.decryptByPrivateKey(rs, PRIVATEKEY), "UTF-8");
return temp;
}
public static void main(String[] args) {
String data = "BoYlkQ/dgr7MksqU+NKN0zfWlJu+6kzieWzgdQHFAYCN6x0/N/o1LXue+RcDwAoazdwwF/WSngabh/pDyvmVGkRZVXrioJnIC8uM2KSZILGrfZdYxVw+MPHLLp+QwF1W3U8FDJgiL03xe521JiIhdW9oD80/od8FOVI+xYcEJ74=";
System.out.println("解密数据:" + RsaUtils.decryptDataOnJava(data, PRIVATEKEY));
String sourceData = "12345678";
String encryptedData = RsaUtils.encryptedDataOnJava(sourceData + " " + System.currentTimeMillis(), PUBLICKEY);
System.out.println("加密数据:" + encryptedData);
try {
String decryptedData = RsaUtils.decryptDataOnJava(encryptedData, PRIVATEKEY);
String[] x = decryptedData.split(" ");
String time = x[1];
//判断时间戳是否超时与当前时间相差60*8分钟
if (System.currentTimeMillis() - Long.parseLong(time) > 1000 * 60 * 8) {
System.out.println("票据超时!");
return;
} else {
//计算两个时间戳之间的差值,单位为秒
long diff = (System.currentTimeMillis() - Long.parseLong(time)) / 1000;
System.out.println("票据有效,时间差为:" + diff + "秒");
}
System.out.println("解密数据:" + decryptedData);
} catch (Exception e) {
System.out.println("无法解密,传入的票据无效!");
}
}
}

Loading…
Cancel
Save