diff --git a/src/main/java/com/syjiaer/clinic/server/common/inteceptor/MvcInterceptor.java b/src/main/java/com/syjiaer/clinic/server/common/inteceptor/MvcInterceptor.java index 6903e22..aacc79b 100644 --- a/src/main/java/com/syjiaer/clinic/server/common/inteceptor/MvcInterceptor.java +++ b/src/main/java/com/syjiaer/clinic/server/common/inteceptor/MvcInterceptor.java @@ -41,10 +41,9 @@ public class MvcInterceptor implements HandlerInterceptor { setParms(request); setHeaders(request); - // 排除 /user/login 接口的校验 -// if (!request.getRequestURI().endsWith("/manager/user/login")) { -// return checkManage(response); -// } + if (!request.getRequestURI().endsWith("/manager/user/login")) { + return checkManage(response); + } return true; } diff --git a/src/main/java/com/syjiaer/clinic/server/common/util/RsaUtil.java b/src/main/java/com/syjiaer/clinic/server/common/util/RsaUtil.java index 14bc806..5ca7235 100644 --- a/src/main/java/com/syjiaer/clinic/server/common/util/RsaUtil.java +++ b/src/main/java/com/syjiaer/clinic/server/common/util/RsaUtil.java @@ -1,21 +1,35 @@ package com.syjiaer.clinic.server.common.util; +import com.syjiaer.clinic.server.common.exception.MessageException; +import org.springframework.stereotype.Component; + +import javax.crypto.BadPaddingException; import javax.crypto.Cipher; +import javax.crypto.IllegalBlockSizeException; +import javax.crypto.NoSuchPaddingException; +import java.security.InvalidKeyException; import java.security.KeyFactory; +import java.security.NoSuchAlgorithmException; import java.security.PublicKey; +import java.security.spec.InvalidKeySpecException; import java.security.spec.X509EncodedKeySpec; import java.util.Base64; - public class RsaUtil { - private final String publicKeyText="MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAuZIsQPculdbnvQhgNN6DyvMgnr1NhYfUcL6hYbUTrO1aF/GJDBOL8HTHnII8rz5CNmG/R55Ev6nMb9kLHnhjXujDsdNpNjVtH1EZkvjxIIl87sPP0xQCeI2qScLX2Jb/41g6zv2iopwISV/tbKk4KchJaMByJFpUfA1Dpc35sjQugI2j4+MY7OSd6JFO2i/xmtwev2cBQqZ6y7YX6BgMyKxBnaYZ9sFTa5AkMZoIfMyfllQm/MFtStHcLPM/sycooQOGwYGsFCShY/4oSwaG+WlVdW28+JOHgWlNAMR7S5ebb8PkGF+Kyva/KR+EG1b8bL5MkA1iZ5+dRFrQXwE3gwIDAQAB" ; - public String decryp(String encryptedDataStr) throws Exception { + private static final String publicKeyText="MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAuZIsQPculdbnvQhgNN6DyvMgnr1NhYfUcL6hYbUTrO1aF/GJDBOL8HTHnII8rz5CNmG/R55Ev6nMb9kLHnhjXujDsdNpNjVtH1EZkvjxIIl87sPP0xQCeI2qScLX2Jb/41g6zv2iopwISV/tbKk4KchJaMByJFpUfA1Dpc35sjQugI2j4+MY7OSd6JFO2i/xmtwev2cBQqZ6y7YX6BgMyKxBnaYZ9sFTa5AkMZoIfMyfllQm/MFtStHcLPM/sycooQOGwYGsFCShY/4oSwaG+WlVdW28+JOHgWlNAMR7S5ebb8PkGF+Kyva/KR+EG1b8bL5MkA1iZ5+dRFrQXwE3gwIDAQAB" ; + public static String decryp(String encryptedDataStr) { X509EncodedKeySpec keySpec = new X509EncodedKeySpec(Base64.getDecoder().decode(publicKeyText)); - PublicKey publicKey = KeyFactory.getInstance("RSA").generatePublic(keySpec); + PublicKey publicKey = null; + try { + publicKey = KeyFactory.getInstance("RSA").generatePublic(keySpec); + Cipher cipher = Cipher.getInstance("RSA/ECB/PKCS1Padding"); + cipher.init(Cipher.DECRYPT_MODE, publicKey); + byte[] encryptedData = Base64.getDecoder().decode(encryptedDataStr); + return new String(cipher.doFinal(encryptedData)); + } catch (Exception e) { + throw new MessageException("授权证书不正确或者已失效"); + } + - Cipher cipher = Cipher.getInstance("RSA/ECB/PKCS1Padding"); - cipher.init(Cipher.DECRYPT_MODE, publicKey); - byte[] encryptedData = Base64.getDecoder().decode(encryptedDataStr); - return new String(cipher.doFinal(encryptedData)); } } diff --git a/src/main/java/com/syjiaer/clinic/server/controller/common/AuthController.java b/src/main/java/com/syjiaer/clinic/server/controller/common/AuthController.java new file mode 100644 index 0000000..cbdcc32 --- /dev/null +++ b/src/main/java/com/syjiaer/clinic/server/controller/common/AuthController.java @@ -0,0 +1,29 @@ +package com.syjiaer.clinic.server.controller.common; + +import com.alibaba.fastjson.JSONObject; +import com.syjiaer.clinic.server.common.config.Config; +import com.syjiaer.clinic.server.common.util.RsaUtil; +import com.syjiaer.clinic.server.common.vo.Result; +import com.syjiaer.clinic.server.controller.BaseController; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +@RestController +@RequestMapping("/auth") +public class AuthController extends BaseController { + @Autowired + private Config config; + @RequestMapping("set") + public Result set() { + String ciphertext = parmsUtil.getString("ciphertext", "请输入密文"); + String data= RsaUtil.decryp(ciphertext); + config.set("common","cert",ciphertext); + return success(JSONObject.parseObject(data)); + } + @RequestMapping("set") + public Result get() { + String cert=config.get("common","cert"); + return success(JSONObject.parseObject(cert)); + } +} diff --git a/src/main/java/com/syjiaer/clinic/server/controller/common/CommonConfigController.java b/src/main/java/com/syjiaer/clinic/server/controller/common/CommonConfigController.java index a111f42..fe34cdf 100644 --- a/src/main/java/com/syjiaer/clinic/server/controller/common/CommonConfigController.java +++ b/src/main/java/com/syjiaer/clinic/server/controller/common/CommonConfigController.java @@ -3,6 +3,7 @@ package com.syjiaer.clinic.server.controller.common; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.syjiaer.clinic.server.common.config.Config; +import com.syjiaer.clinic.server.common.util.RsaUtil; import com.syjiaer.clinic.server.common.vo.Result; import com.syjiaer.clinic.server.controller.BaseController; import com.syjiaer.clinic.server.entity.common.CommonConfig; @@ -58,16 +59,6 @@ public class CommonConfigController extends BaseController { return success(); } - @RequestMapping("setcert") - public Result sercert() { - Map parms = getParms(); - String encryptedText = parmsUtil.getString("encryptedText", "请输入密文"); - CommonConfig commonConfig = new CommonConfig(); - commonConfig.setK("common_cert"); - commonConfig.setVal(encryptedText); - commonConfigService.saveOrUpdate(commonConfig); - return success(); - } @RequestMapping("get") public Result get() { @@ -102,11 +93,7 @@ public class CommonConfigController extends BaseController { return success(map); } -// @RequestMapping("parsing") -// public Result parsing() { -// String ciphertext = parmsUtil.getString("ciphertext", "请输入密文"); -// return success(new RsaUtil().parsing(ciphertext)); -// } + } diff --git a/src/main/java/com/syjiaer/clinic/server/controller/common/ManagerUserController.java b/src/main/java/com/syjiaer/clinic/server/controller/common/ManagerUserController.java index c81e21f..12752ad 100644 --- a/src/main/java/com/syjiaer/clinic/server/controller/common/ManagerUserController.java +++ b/src/main/java/com/syjiaer/clinic/server/controller/common/ManagerUserController.java @@ -39,6 +39,14 @@ public class ManagerUserController extends BaseController { String password = (String) parms.get("password"); return success(managerUserService.login(username, password)); } + @PostMapping("signUp") + public Result signUp() { + Map parms = getParms(); + String ip = (String) parms.get("ip"); + String mac = (String) parms.get("mac"); + return success(); + } + //验证token @PostMapping("verify")