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

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

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

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

@ -5,9 +5,11 @@ import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.collection.ListUtil; import cn.hutool.core.collection.ListUtil;
import cn.hutool.core.date.DateTime; import cn.hutool.core.date.DateTime;
import cn.hutool.core.date.DateUtil; import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.ArrayUtil;
import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import cn.hutool.core.util.URLUtil; import cn.hutool.core.util.URLUtil;
import com.alibaba.fastjson.JSONObject;
import com.auth0.jwt.JWT; import com.auth0.jwt.JWT;
import com.auth0.jwt.JWTVerifier; import com.auth0.jwt.JWTVerifier;
import com.auth0.jwt.algorithms.Algorithm; import com.auth0.jwt.algorithms.Algorithm;
@ -30,7 +32,6 @@ import org.springframework.transaction.annotation.Transactional;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import javax.validation.constraints.NotNull; import javax.validation.constraints.NotNull;
import java.util.Arrays;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@ -233,13 +234,50 @@ public class ResourcesApplicationService extends CoreBaseService<ResourcesApplic
if (ObjectUtil.isNotEmpty(linkSecretKey)) { if (ObjectUtil.isNotEmpty(linkSecretKey)) {
LoginTodo loginTodo = loginTodoService.buildByCurrentLoginUser(); LoginTodo loginTodo = loginTodoService.buildByCurrentLoginUser();
String sign = JWT.create().withAudience(loginTodo.toJSONString()).sign(Algorithm.HMAC256(linkSecretKey)); String sign = JWT.create().withAudience(loginTodo.toJSONString()).sign(Algorithm.HMAC256(linkSecretKey));
LoginTodo str = decodeApplicationUrl(linkSecretKey, sign); // LoginTodo str = decodeApplicationUrl(linkSecretKey, sign);
System.out.println(str); // System.out.println(str);
return sign; return sign;
} }
return ""; 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> * : <br>
* url * url
@ -274,7 +312,7 @@ public class ResourcesApplicationService extends CoreBaseService<ResourcesApplic
if (ObjectUtil.isEmpty(link)) { return ""; } if (ObjectUtil.isEmpty(link)) { return ""; }
final String key = "key=", sequence = "?"; final String key = "key=", sequence = "?";
String query = URLUtil.toURI(link).getQuery(); 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 (ObjectUtil.isNotEmpty(link) && !isHaveKey) {
if (link.contains(sequence)) { if (link.contains(sequence)) {
return StrUtil.format("{}&{}", link, key); return StrUtil.format("{}&{}", link, key);

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

Loading…
Cancel
Save