소스 검색

建筑物增加了displayModel
登陆密码加密了

wuweihao 5 년 전
부모
커밋
916087126f

+ 9 - 1
README.md

@@ -2,6 +2,11 @@
 
 上海历史博物馆
 
+# dev
+    使用api文档登录
+    password: 1UxELRpIExMTExcWG627AcMTQBIN2mog
+    userName: admin
+
 
 
 # sit
@@ -35,4 +40,7 @@
 # 不删除oss物理文件的原因是,下载管理有历史记录,删除了,跟显示有冲突。
 
 
-# uat
+# uat
+    后台UI
+    http://47.101.158.255:8080/dist/index.html
+    

+ 107 - 0
museum_common/src/main/java/com/museum/common/util/Base64Converter.java

@@ -0,0 +1,107 @@
+package com.museum.common.util;
+
+import org.junit.Test;
+
+import java.io.UnsupportedEncodingException;
+import java.util.Base64;
+
+/**
+ * Created by Hb_zzZ on 2020/4/17.
+ */
+public class Base64Converter {
+
+    final static Base64.Encoder encoder = Base64.getEncoder();
+    final static Base64.Decoder decoder = Base64.getDecoder();
+
+    /**
+     * 给字符串加密
+     * @param text
+     * @return
+     */
+    public static String encode(String text) {
+        byte[] textByte = new byte[0];
+        try {
+            textByte = text.getBytes("UTF-8");
+        } catch (UnsupportedEncodingException e) {
+            e.printStackTrace();
+        }
+        String encodedText = encoder.encodeToString(textByte);
+        return encodedText;
+    }
+
+    /**
+     * 将加密后的字符串进行解密
+     * @param encodedText
+     * @return
+     */
+    public static String decode(String encodedText) {
+        String text = null;
+        try {
+            text = new String(decoder.decode(encodedText), "UTF-8");
+        } catch (UnsupportedEncodingException e) {
+            e.printStackTrace();
+        }
+        return text;
+    }
+
+    /**
+     * 根据逻辑截取加密后的密码
+     * @param text
+     * @return
+     */
+    public static String subText(String text){
+        //去掉前8位字符串
+        text = text.substring(8);
+        //去掉后8位字符串
+        text = text.substring(0, text.length() - 8);
+        //最后两个字符串换到前面,并且去掉剩下的后8位字符串
+        String result = text.substring(text.length() - 2) + text.substring(0, text.length() - 10);
+        return result;
+    }
+
+    public static void main(String[] args) throws UnsupportedEncodingException {
+
+//        String username = "Miracle Luna";
+//        String password = "AUPhhlhkExMTExMTExMQ==tGC1irnLMTLF9V7HLh";
+        String password = "1UxELRpIExMTExcWG627AcMTQBIN2mog";
+
+        password = password.substring(8);
+        System.out.println(password);
+        password = password.substring(0, password.length() - 8);
+        System.out.println(password);
+        String key = password.substring(password.length() - 2) + password.substring(0, password.length() - 10);
+        System.out.println(key);
+
+
+        // 加密
+//        System.out.println("====  [加密后] 用户名/密码  =====");
+//        System.out.println(Base64Converter.encode(username));
+//        System.out.println(Base64Converter.encode(password));
+
+        // 解密
+        System.out.println("\n====  [解密后] 用户名/密码  =====");
+//        System.out.println(Base64Converter.decode(Base64Converter.encode(username)));
+        System.out.println(Base64Converter.decode(key));
+    }
+
+
+    @Test
+    public void test(){
+        String password = "1UxELRpIExMTExcWG627AcMTQBIN2mog";
+        System.out.println(decodePassword(password));
+    }
+
+
+    /**
+     *
+     *
+     * 将加密后的字符串进行解密
+     * @param ciphertext 密文
+     * @return 明文
+     */
+    public static String decodePassword(String ciphertext){
+        String key = subText(ciphertext);
+        return decode(key);
+
+    }
+}

+ 6 - 5
museum_domain/src/main/java/com/museum/domain/entity/BuildingEntity.java

@@ -38,13 +38,14 @@ public class BuildingEntity extends BaseEntity implements Serializable {
     @ApiModelProperty(value = "文件目录")
     private String fileDir;
 
-//    /** 封装权限字段,不需要映射到数据库*/
-//    @Transient
-//    @ApiModelProperty(value = "多媒体资料")
-//    private List<FileEntity> files;
-
     @ApiModelProperty(value = "多媒体资料ID, 多个以','逗号隔开 ")
     private String fileIds;
 
+    @ApiModelProperty(value = "视频url")
+    private String video;
+
+    @ApiModelProperty(value = "程序显示, 0:显示模型,1:场景漫游,2:动画视频")
+    private Integer displayModel;
+
 
 }

+ 7 - 3
museum_domain/src/main/java/com/museum/domain/request/BuildingRequest.java

@@ -33,10 +33,14 @@ public class BuildingRequest implements Serializable {
     @ApiModelProperty(value = "展示封面,传url", name = "ico")
     private String ico;
 
-//    @ApiModelProperty(value = "多媒体资料", name = "files")
-//    private MultipartFile[] files;
-
     @ApiModelProperty(value = "多媒体资料ID, 多个以','逗号隔开 ", name = "fileIds")
     private String fileIds;
 
+    @ApiModelProperty(value = "视频url")
+    private String video;
+
+    @ApiModelProperty(value = "程序显示, 0:显示模型,1:场景漫游,2:动画视频", required = true)
+    private Integer displayModel;
+
+
 }

+ 6 - 0
museum_domain/src/main/java/com/museum/domain/response/BuildingResponse.java

@@ -43,6 +43,12 @@ public class BuildingResponse extends BaseEntity implements Serializable {
     @ApiModelProperty(value = "多媒体资料")
     private List<FileEntity> files = new ArrayList<>();
 
+    @ApiModelProperty(value = "视频url")
+    private String video;
+
+    @ApiModelProperty(value = "显示类型, 0:模型url,1:场景url,2:视频url")
+    private Integer displayModel;
+
 
 
 }

+ 1 - 0
museum_web/src/main/java/com/museum/web/controller/ExceptionController.java

@@ -53,6 +53,7 @@ public class ExceptionController {
     @ExceptionHandler(Exception.class)
     @ResponseStatus(HttpStatus.BAD_REQUEST)
     public Result globalException(HttpServletRequest request, Throwable ex) {
+        log.error(ex);
         return Result.failure(getStatus(request).value(), ex.getMessage());
     }
 

+ 7 - 1
museum_web/src/main/java/com/museum/web/controller/IndexController.java

@@ -1,6 +1,7 @@
 package com.museum.web.controller;
 
 import com.museum.common.constant.TypeCode;
+import com.museum.common.util.Base64Converter;
 import com.museum.common.util.PasswordUtils;
 import com.museum.common.util.Result;
 import com.museum.domain.entity.BaseEntity;
@@ -29,6 +30,7 @@ import springfox.documentation.annotations.ApiIgnore;
 
 import javax.servlet.http.HttpServletRequest;
 import javax.validation.Valid;
+import javax.validation.constraints.NotNull;
 import java.time.LocalDateTime;
 import java.util.Date;
 import java.util.HashMap;
@@ -68,8 +70,12 @@ public class IndexController extends BaseController {
             log.error("用户不存在");
             return Result.failure("用户不存在");
         }
+
+        // 解密密码
+        String password = Base64Converter.decodePassword(param.getPassword());
+
         // 验证密码,解密出来是明文密码,在跟输入密码比较
-        boolean decryptName = PasswordUtils.decrypt(userEntity.getPassword(), param.getPassword(), PasswordUtils.getStaticSalt());
+        boolean decryptName = PasswordUtils.decrypt(userEntity.getPassword(), password, PasswordUtils.getStaticSalt());
         if (!decryptName) {
             log.error("密码错误");
             return Result.failure("密码错误");

+ 7 - 2
museum_web/src/main/java/com/museum/web/controller/UserController.java

@@ -2,6 +2,7 @@ package com.museum.web.controller;
 
 
 import com.github.pagehelper.PageInfo;
+import com.museum.common.util.Base64Converter;
 import com.museum.common.util.PasswordUtils;
 import com.museum.common.util.Result;
 import com.museum.domain.entity.UserEntity;
@@ -106,14 +107,18 @@ public class UserController extends BaseController {
 
         UserEntity user = userService.findByUserName(JwtUtil.getUsername(getToken()));
 
+        // 解密密文密码
+        String oldPassword = Base64Converter.decodePassword(param.getOldPassword());
+        String newPassword = Base64Converter.decodePassword(param.getNewPassword());
+
         // 验证原密码
-        Boolean isBoolean = PasswordUtils.decrypt(user.getPassword(), param.getOldPassword(), PasswordUtils.getStaticSalt());
+        Boolean isBoolean = PasswordUtils.decrypt(user.getPassword(), oldPassword, PasswordUtils.getStaticSalt());
         if (!isBoolean) {
             log.error("原始密码错误");
             return Result.failure("原始密码错误");
         }
 
-        user.setPassword(PasswordUtils.encrypt(user.getUserName(), param.getNewPassword(), PasswordUtils.getStaticSalt()));
+        user.setPassword(PasswordUtils.encrypt(user.getUserName(), newPassword, PasswordUtils.getStaticSalt()));
         user.setUpdateTime(new Date());
         userService.update(user);
         return Result.success();