|
|
|
@ -5,9 +5,11 @@ import cn.hutool.core.collection.CollectionUtil;
|
|
|
|
|
import cn.hutool.core.collection.ListUtil;
|
|
|
|
|
import cn.hutool.core.date.DateTime;
|
|
|
|
|
import cn.hutool.core.date.DateUtil;
|
|
|
|
|
import cn.hutool.core.util.ArrayUtil;
|
|
|
|
|
import cn.hutool.core.util.ObjectUtil;
|
|
|
|
|
import cn.hutool.core.util.StrUtil;
|
|
|
|
|
import cn.hutool.core.util.URLUtil;
|
|
|
|
|
import com.alibaba.fastjson.JSONObject;
|
|
|
|
|
import com.auth0.jwt.JWT;
|
|
|
|
|
import com.auth0.jwt.JWTVerifier;
|
|
|
|
|
import com.auth0.jwt.algorithms.Algorithm;
|
|
|
|
@ -30,7 +32,6 @@ import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
import org.springframework.validation.annotation.Validated;
|
|
|
|
|
|
|
|
|
|
import javax.validation.constraints.NotNull;
|
|
|
|
|
import java.util.Arrays;
|
|
|
|
|
import java.util.Date;
|
|
|
|
|
import java.util.List;
|
|
|
|
|
import java.util.stream.Collectors;
|
|
|
|
@ -233,13 +234,50 @@ public class ResourcesApplicationService extends CoreBaseService<ResourcesApplic
|
|
|
|
|
if (ObjectUtil.isNotEmpty(linkSecretKey)) {
|
|
|
|
|
LoginTodo loginTodo = loginTodoService.buildByCurrentLoginUser();
|
|
|
|
|
String sign = JWT.create().withAudience(loginTodo.toJSONString()).sign(Algorithm.HMAC256(linkSecretKey));
|
|
|
|
|
LoginTodo str = decodeApplicationUrl(linkSecretKey, sign);
|
|
|
|
|
System.out.println(str);
|
|
|
|
|
// LoginTodo str = decodeApplicationUrl(linkSecretKey, sign);
|
|
|
|
|
// System.out.println(str);
|
|
|
|
|
return sign;
|
|
|
|
|
}
|
|
|
|
|
return "";
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public static void main(String[] args){
|
|
|
|
|
LoginTodo loginTodo = new LoginTodo();
|
|
|
|
|
loginTodo.setUsername("测试教师");
|
|
|
|
|
loginTodo.setPassword("123qwe");
|
|
|
|
|
loginTodo.setRoleid(LoginTodo.ThirdRole.TEACHER_ROLE.getCode());
|
|
|
|
|
loginTodo.setTeacherid("1");
|
|
|
|
|
loginTodo.setStudentid(null);
|
|
|
|
|
loginTodo.setName("测试教师");
|
|
|
|
|
loginTodo.setSex("男");
|
|
|
|
|
loginTodo.setSchool("天蚕一瓶123");
|
|
|
|
|
loginTodo.setCollege("天蚕一瓶123");
|
|
|
|
|
loginTodo.setMajor(null);
|
|
|
|
|
loginTodo.setSchoolclass(null);
|
|
|
|
|
loginTodo.setStudentNo(null);
|
|
|
|
|
|
|
|
|
|
String json = JSONObject.toJSONString(loginTodo);
|
|
|
|
|
json = json.replace("schoolclass","class");//要转换
|
|
|
|
|
|
|
|
|
|
System.out.println(json);
|
|
|
|
|
|
|
|
|
|
String str = "wx_bc_14133";//这个就是密匙
|
|
|
|
|
String key = JWT.create().withAudience(json).sign(Algorithm.HMAC256(str));
|
|
|
|
|
|
|
|
|
|
System.out.println(key);
|
|
|
|
|
|
|
|
|
|
//解密
|
|
|
|
|
DecodedJWT jwt = null;
|
|
|
|
|
try {
|
|
|
|
|
JWTVerifier verifier = JWT.require(Algorithm.HMAC256(str)).build();
|
|
|
|
|
jwt = verifier.verify(key);
|
|
|
|
|
System.out.println(jwt.getAudience().get(0));
|
|
|
|
|
}catch (Exception e){
|
|
|
|
|
e.printStackTrace();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 功能描述: <br>
|
|
|
|
|
* 解密加密的url,用于第三方应用
|
|
|
|
@ -274,7 +312,7 @@ public class ResourcesApplicationService extends CoreBaseService<ResourcesApplic
|
|
|
|
|
if (ObjectUtil.isEmpty(link)) { return ""; }
|
|
|
|
|
final String key = "key=", sequence = "?";
|
|
|
|
|
String query = URLUtil.toURI(link).getQuery();
|
|
|
|
|
boolean isHaveKey = Arrays.stream(query.split("&")).anyMatch(item -> item.contains(key));
|
|
|
|
|
boolean isHaveKey = ArrayUtil.contains(query.split("&"), key);
|
|
|
|
|
if (ObjectUtil.isNotEmpty(link) && !isHaveKey) {
|
|
|
|
|
if (link.contains(sequence)) {
|
|
|
|
|
return StrUtil.format("{}&{}", link, key);
|
|
|
|
|