我的应用,第三方应用链接生成

beetlsql3-dev
Mlxa0324 2 years ago
parent 268e9ecc60
commit 85b0c96243

@ -1,6 +1,7 @@
package com.ibeetl.jlw.entity;
import cn.hutool.core.util.ObjectUtil;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.annotation.JsonValue;
import com.fasterxml.jackson.databind.ObjectMapper;
@ -38,7 +39,7 @@ public class LoginTodo implements Serializable {
/**
* ID 3 4
*/
private ThirdRole roleid;
private String roleid;
/**
* ID
*/
@ -97,6 +98,7 @@ public class LoginTodo implements Serializable {
@SneakyThrows
public String toJSONString() {
ObjectMapper mapper = new ObjectMapper();
mapper.setSerializationInclusion(JsonInclude.Include.NON_NULL);
return mapper.writeValueAsString(this);
}

@ -58,7 +58,7 @@ public class LoginTodoService {
LoginTodo loginTodo = LoginTodo.builder().username(coreUser.getCode())
.password(coreUser.getPassword())
.roleid(LoginTodo.ThirdRole.STUDENT_ROLE)
.roleid(LoginTodo.ThirdRole.STUDENT_ROLE.getCode())
.studentid(student.getStudentId().toString())
.name(coreUser.getName()).sex(gender)
.school(first.getUniversitiesCollegesName())
@ -96,7 +96,7 @@ public class LoginTodoService {
LoginTodo loginTodo = LoginTodo.builder().username(coreUser.getCode())
.password(coreUser.getPassword())
.roleid(LoginTodo.ThirdRole.TEACHER_ROLE)
.roleid(LoginTodo.ThirdRole.TEACHER_ROLE.getCode())
.teacherid(teacherId.toString())
.name(coreUser.getName()).sex(gender)
.school(first.getUniversitiesCollegesName())

@ -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);

@ -117,7 +117,7 @@ public class IndexController {
LoginTodo loginTodo = new LoginTodo();
loginTodo.setUsername("测试教师");
loginTodo.setPassword("123qwe");
loginTodo.setRoleid(LoginTodo.ThirdRole.TEACHER_ROLE);
loginTodo.setRoleid(LoginTodo.ThirdRole.TEACHER_ROLE.getCode());
loginTodo.setTeacherid("1");
loginTodo.setStudentid(null);
loginTodo.setName("测试教师");

Loading…
Cancel
Save