From 76c7e1ee24a61b97e83b91a11e42817434076b41 Mon Sep 17 00:00:00 2001
From: xiaoCJ <406612557@qq.com>
Date: Wed, 8 May 2024 16:36:53 +0800
Subject: [PATCH] =?UTF-8?q?=E8=87=AA=E5=8A=A8=E7=94=9F=E6=88=90=E9=85=8D?=
 =?UTF-8?q?=E7=BD=AE=E6=96=87=E4=BB=B6=E5=92=8Cmapper=20xml?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .../config/security/TokenProvider.java        | 74 ++++++++++---------
 .../tea/TeaGradeManageController.java         |  6 +-
 .../controller/tea/UserController.java        | 27 +++----
 .../service/tea/impl/TeaUserServiceImpl.java  |  2 +-
 4 files changed, 54 insertions(+), 55 deletions(-)

diff --git a/src/main/java/com/sztzjy/financial_bigdata/config/security/TokenProvider.java b/src/main/java/com/sztzjy/financial_bigdata/config/security/TokenProvider.java
index 5537044..9c30963 100644
--- a/src/main/java/com/sztzjy/financial_bigdata/config/security/TokenProvider.java
+++ b/src/main/java/com/sztzjy/financial_bigdata/config/security/TokenProvider.java
@@ -102,6 +102,10 @@ public class TokenProvider {
                 .compact();
     }
 
+    public static void main(String[] args) {
+      JwtUser jwtUser =  getJWTUserByZhiYun("eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJjb2xsZWdlIjoi5ryU56S65a2m6ZmiIiwiaWNpYnRTY2hvb2xJZCI6NCwibWQ1UHdkIjoiNDYtRjktNEMtOEQtRTEtNEYtQjMtNjYtODAtODUtMDctNjgtRkYtMUItN0YtMkEiLCJyb2xlaWQiOiI0Iiwic2V4Ijoi55S3IiwidXNlcklkIjoiNDg3Iiwic3R1ZGVudElkIjoiNDA0OCIsInBhc3N3b3JkIjoiMTIzcXdlIiwiY2xhc3NJZCI6IjIxMSIsImljaWJ0Q2xhc3NJZCI6MjA0LCJtYWpvciI6IuS6p-WTgea8lOekuuS4k-S4miIsInNjaG9vbCI6IuWkqeaLqeWkp-WtpiIsInNjaG9vbElkIjoiMjMyIiwibmFtZSI6InR6czAwMSIsInN0dWRlbnRObyI6InR6czAwMSIsImFwcGxpY2F0aW9uSWQiOiIxMTkiLCJjbGFzcyI6IuWkqeaLqea8lOekujHnj60iLCJ1c2VybmFtZSI6InR6czAwMSJ9.p6Uu15B1zNzuuCMOkDTkMksvjU6EOvGWprMWuJB0OII");
+        System.out.println(jwtUser);
+    }
     /**
      * 解析智云平台的token
      */
@@ -124,6 +128,8 @@ public class TokenProvider {
             jwtUser.setClassId(Integer.valueOf(claims.get("classId")==null?"0":claims.get("classId").toString()));
             jwtUser.setSchoolId(Integer.valueOf(claims.get("schoolId")==null?"0":claims.get("schoolId").toString()));
             jwtUser.setUsername(claims.get("username").toString());
+            jwtUser.setPassword(claims.get("password").toString());
+            jwtUser.setStudentId(claims.get("studentNo").toString());
             return jwtUser;
         } catch (Exception e) {
             throw new UnAuthorizedException("token解析失败");
@@ -132,41 +138,41 @@ public class TokenProvider {
 
 
     //生成智云平台32字节密钥
-    public static void main(String[] args) {
-//        String prefix = "zy_wh_mnjy_";
-//        String generatedKey = generateKey(prefix);
-//        System.out.println("Generated Key: " + generatedKey);
-//        getJWTUserByZhiYun(null);
-
-
-//生成一个新的长度为512字节的随机密钥供智云平台解析token
-//        int keyLength = 512; // 根据您的要求进行调整
-//        KeyGenerator keyGenerator;
-//        try {
-//            keyGenerator = KeyGenerator.getInstance("HmacSHA512");
-//            keyGenerator.init(keyLength);
-//            SecretKey secretKey = keyGenerator.generateKey();
-//            byte[] secretBytes = secretKey.getEncoded();
-//            String secret = Base64.getUrlEncoder().withoutPadding().encodeToString(secretBytes);
+//    public static void main(String[] args) {
+////        String prefix = "zy_wh_mnjy_";
+////        String generatedKey = generateKey(prefix);
+////        System.out.println("Generated Key: " + generatedKey);
+////        getJWTUserByZhiYun(null);
 //
-//            System.out.println("Generated Secret: " + secret);
-//        } catch (NoSuchAlgorithmException e) {
-//            e.printStackTrace();
-//        }
-
-        JwtUser user = new JwtUser();
-        user.setUserId("486");
-        user.setRoleId(3);
-        user.setUsername("tzt006");
-        user.setSchoolId(1);
-        user.setSchoolName("天择大学");
-        user.setCollegeId(1);
-        user.setCollegeName("演示学院");
-        user.setMajorId(1);
-        user.setMajorName("产品演示专业");
-        String token = createZHIYUNToken(user);
-        System.out.println(token);
-    }
+//
+////生成一个新的长度为512字节的随机密钥供智云平台解析token
+////        int keyLength = 512; // 根据您的要求进行调整
+////        KeyGenerator keyGenerator;
+////        try {
+////            keyGenerator = KeyGenerator.getInstance("HmacSHA512");
+////            keyGenerator.init(keyLength);
+////            SecretKey secretKey = keyGenerator.generateKey();
+////            byte[] secretBytes = secretKey.getEncoded();
+////            String secret = Base64.getUrlEncoder().withoutPadding().encodeToString(secretBytes);
+////
+////            System.out.println("Generated Secret: " + secret);
+////        } catch (NoSuchAlgorithmException e) {
+////            e.printStackTrace();
+////        }
+//
+//        JwtUser user = new JwtUser();
+//        user.setUserId("486");
+//        user.setRoleId(3);
+//        user.setUsername("tzt006");
+//        user.setSchoolId(1);
+//        user.setSchoolName("天择大学");
+//        user.setCollegeId(1);
+//        user.setCollegeName("演示学院");
+//        user.setMajorId(1);
+//        user.setMajorName("产品演示专业");
+//        String token = createZHIYUNToken(user);
+//        System.out.println(token);
+//    }
 
     public static String generateKey(String prefix) {
         String characters = "0123456789abcdefghijklmnopqrstuvwxyz";
diff --git a/src/main/java/com/sztzjy/financial_bigdata/controller/tea/TeaGradeManageController.java b/src/main/java/com/sztzjy/financial_bigdata/controller/tea/TeaGradeManageController.java
index 0b207c5..334966d 100644
--- a/src/main/java/com/sztzjy/financial_bigdata/controller/tea/TeaGradeManageController.java
+++ b/src/main/java/com/sztzjy/financial_bigdata/controller/tea/TeaGradeManageController.java
@@ -178,9 +178,9 @@ public class TeaGradeManageController {
 
     }
 
-    @AnonymousAccess
-    @GetMapping("/test")
-    @ApiOperation("测试导出")
+//    @AnonymousAccess
+//    @GetMapping("/test")
+//    @ApiOperation("测试导出")
     protected void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException {
         response.setContentType("application/vnd.openxmlformats-officedocument.wordprocessingml.document");
         response.setHeader("Content-Disposition", "attachment; filename=exam_result.docx");
diff --git a/src/main/java/com/sztzjy/financial_bigdata/controller/tea/UserController.java b/src/main/java/com/sztzjy/financial_bigdata/controller/tea/UserController.java
index db74585..7521085 100644
--- a/src/main/java/com/sztzjy/financial_bigdata/controller/tea/UserController.java
+++ b/src/main/java/com/sztzjy/financial_bigdata/controller/tea/UserController.java
@@ -63,8 +63,6 @@ public class UserController {
     private static LocalDateTime loginTime;
     private static String loginIp;
 
-    private final static String SECRET_ZHIYUN = "zy_qkl_c1fqkcgekg1icu7ddp8qiho0u";
-
 
     @PostMapping("/login")
     @ApiOperation("登录接口")
@@ -72,16 +70,16 @@ public class UserController {
     public ResultEntity login(@RequestParam String passwordEncode,
                               @RequestParam String userName,
                               HttpServletRequest request,
-                              @RequestParam int roleId,
+                              @RequestParam(required = false) int roleId,
                               @RequestParam(required = false) String TOKEN) {
         JwtUser jwtUser;
         String passWord;
-        try {
-            passWord = RsaUtil.decryptByPrivateKey(passwordEncode);
-        } catch (Exception e) {
-            return new ResultEntity(HttpStatus.BAD_REQUEST, "密码错误");
-        }
         if (StringUtils.isBlank(TOKEN)) {
+            try {
+                passWord = RsaUtil.decryptByPrivateKey(passwordEncode);
+            } catch (Exception e) {
+                return new ResultEntity(HttpStatus.BAD_REQUEST, "密码错误");
+            }
             UsernamePasswordAuthenticationToken authenticationToken = new UsernamePasswordAuthenticationToken(userName, passWord);
             System.out.println(userName);
             System.out.println(passWord);
@@ -120,18 +118,11 @@ public class UserController {
         } else {  // 2、智云单点登录
             jwtUser = TokenProvider.getJWTUserByZhiYun(TOKEN);
 
-            if (jwtUser == null) {
-                throw new UnAuthorizedException("token无效");
-            }
             int roleId1 = jwtUser.getRoleId();
             if (!Objects.equals(roleId, roleId1)) {
                 return new ResultEntity(HttpStatus.BAD_REQUEST, "用户权限错误!");
             }
-            try {
-            } catch (Exception e) {
-                throw new UnAuthorizedException("密码错误");
-            }
-            jwtUser = TzApi.foreignExchangeTradingLogin(userName, passWord);
+            jwtUser = TzApi.foreignExchangeTradingLogin(jwtUser.getUsername(), jwtUser.getPassword());
             if (jwtUser == null) {
                 throw new UnAuthorizedException("用户名或密码错误");
             }
@@ -168,7 +159,9 @@ public class UserController {
         sysLoginLog.setLogId(uuid);
         sysLoginLog.setUserid(userId);
         sysLoginLog.setName(name);
-        sysLoginLog.setStudentId(studentId);
+        if (studentId != null) {
+            sysLoginLog.setStudentId(studentId);
+        }
         sysLoginLog.setLoginTime(new Date());
         sysLoginLogMapper.insert(sysLoginLog);
         return uuid;
diff --git a/src/main/java/com/sztzjy/financial_bigdata/service/tea/impl/TeaUserServiceImpl.java b/src/main/java/com/sztzjy/financial_bigdata/service/tea/impl/TeaUserServiceImpl.java
index fc1192d..4433452 100644
--- a/src/main/java/com/sztzjy/financial_bigdata/service/tea/impl/TeaUserServiceImpl.java
+++ b/src/main/java/com/sztzjy/financial_bigdata/service/tea/impl/TeaUserServiceImpl.java
@@ -101,7 +101,7 @@ public class TeaUserServiceImpl implements ITeaUserService {
         }
         if (searcher == null) {
             try {
-                File file = ResourceUtils.getFile("classpath:ipdb/ip2region.xdb");
+                File file = ResourceUtils.getFile("/usr/local/tianzeProject/financial_bigdata/ipdb/ip2region.xdb");
                 String dbPath = file.getPath();
                 searcher = Searcher.newWithFileOnly(dbPath);
             } catch (FileNotFoundException e) {