diff --git a/web/src/main/java/com/ibeetl/jlw/entity/LoginTodo.java b/web/src/main/java/com/ibeetl/jlw/entity/LoginTodo.java index 4dfccf17..c89f8f7e 100644 --- a/web/src/main/java/com/ibeetl/jlw/entity/LoginTodo.java +++ b/web/src/main/java/com/ibeetl/jlw/entity/LoginTodo.java @@ -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); } diff --git a/web/src/main/java/com/ibeetl/jlw/service/LoginTodoService.java b/web/src/main/java/com/ibeetl/jlw/service/LoginTodoService.java index e063bda5..c2c7b02c 100644 --- a/web/src/main/java/com/ibeetl/jlw/service/LoginTodoService.java +++ b/web/src/main/java/com/ibeetl/jlw/service/LoginTodoService.java @@ -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()) diff --git a/web/src/main/java/com/ibeetl/jlw/service/ResourcesApplicationService.java b/web/src/main/java/com/ibeetl/jlw/service/ResourcesApplicationService.java index bc876f1a..3c6b239f 100644 --- a/web/src/main/java/com/ibeetl/jlw/service/ResourcesApplicationService.java +++ b/web/src/main/java/com/ibeetl/jlw/service/ResourcesApplicationService.java @@ -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); diff --git a/web/src/main/java/com/ibeetl/jlw/web/IndexController.java b/web/src/main/java/com/ibeetl/jlw/web/IndexController.java index 12c2b117..4f963fb4 100644 --- a/web/src/main/java/com/ibeetl/jlw/web/IndexController.java +++ b/web/src/main/java/com/ibeetl/jlw/web/IndexController.java @@ -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("测试教师");