登录页面

登录接口功能
This commit is contained in:
xiongfeng
2022-06-28 20:07:35 +08:00
parent 9212332d4e
commit 6fabbcacd2
8 changed files with 136 additions and 24 deletions

View File

@@ -90,6 +90,14 @@
<version>2.11.1</version>
</dependency>
<!-- https://mvnrepository.com/artifact/com.alibaba/fastjson -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>2.0.8</version>
</dependency>
</dependencies>

View File

@@ -157,25 +157,29 @@ public class RSAUtils {
public static void main(String[] args) {
Map<String, String> encryptKey = createEncryptKey();
String publicKey = encryptKey.get("publicKey");
String privateKey = encryptKey.get("privateKey");
System.out.println("公匙加密串:" + publicKey);
System.out.println("私匙加密串:" + privateKey);
// Map<String, String> encryptKey = createEncryptKey();
// String publicKey = encryptKey.get("publicKey");
// String privateKey = encryptKey.get("privateKey");
//
// System.out.println("公匙加密串:" + publicKey);
// System.out.println("私匙加密串:" + privateKey);
//
// System.out.println();
//
// String data = "哈哈哈哈哈哈哈";
// //加密
// try {
//加密
try {
// String s = publicEncrypt(data, getPublicKey(publicKey));
// System.out.println("加密后密文:" + s);
//
// String s1 = privateDecryption(s, getPrivateKey(privateKey));
// System.out.println("解密后明文:" + s1);
//
// }catch (Exception e){
// throw new IllegalArgumentException();
// }
String ss = "bPrP3VQpVNj7jxzSvVRQQpOCzg4c9HAMd/Sesda0SOxmWbNzP8SnhayV2H9Jpih2sf26O8dOqiNE7V1u5NPgQBIPi6LqX2QiFTjynVLxQBUmISfmQ2Q6K3sjHBIRIhuZPrXijw7CextUUQwzh4VvEVkjyaUnqlMXVRkUGlgqP7M=";
String privateKey1 = "MIICeAIBADANBgkqhkiG9w0BAQEFAASCAmIwggJeAgEAAoGBALiJJ6RPMMh-ETrmppOG7JKINPSFaaZoHjzZkyQl3AcfrpKMmH82j_Pxl4mPvvgKtbR20N-88-nJLT4v4aOz9XYVl5ruE59SsJl_T8YqN-i8L8KH8Wptd0_ee7nDhF4-OGEi-o330daFv20eLpboy6nDkWLmLihKC0jEZWK8MLZzAgMBAAECgYAEhO9gmcPjFRtM6vsnX8WJbSaG2oGU3rXm3Zk56Gd0ETWQRzsw2mA6JC-G4etWXcTHb6V75T-_-PpPrJKFFNItEH-WFRS36xneomycxRG1YTfK1SsGLGF0BV3bLVZx8cQz7VsBY4vqbRCSKtcOZBJpnxI6iHAv07i8w34F6qjfsQJBAORnKUuJQ_GsHHBPT1VhMYjXVepAfTrWtCzRQ648KavbHLAGaRIhX10uj-hAhZLafDqQF8Y7T7GHTlasRL9ubWsCQQDO1R3KScJJSR3KDsnSsF0YCw7V28cr_OVAwiPoro90Me6MUz9yKV88gQlTuJkNFMuu_YdPXYKjlzNVg0zFmtUZAkEAoe9mPtDeZD0TmKkSZUVYul1543C_mPTan5_qrWCoZtkd2MtiuWEB3O4DR7ZfPcQ8KcU5pektUn_NEfRndZYUawJBAJfydOoxeawBLQNODfLcYefR59owlYe5SGpktaCw7O596DPqzId_4Vk_qqx4xueXSXOLCabCmcC4yZue0_2vm7ECQQDLrzXL-BpSqxbvtE0gNKcgaSkEUSOh1QmQFPCHERsOBxcflM6ej71STKglB21JD9m6tM2RySgbtUx4TfOuJTek";
String s1 = privateDecryption(ss, getPrivateKey(privateKey1));
System.out.println("解密后明文:" + s1);
}catch (Exception e){
throw new IllegalArgumentException();
}
}

View File

@@ -0,0 +1,34 @@
package cn.xf.basedemo.controller;
import cn.xf.basedemo.service.UserService;
import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
import io.swagger.annotations.ApiModelProperty;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* @program: xf-boot-base
* @ClassName UserController
* @description:
* @author: xiongfeng
* @create: 2022-06-28 09:17
**/
@RestController
@RequestMapping("/user")
public class UserController {
@Autowired
private UserService userService;
@ApiOperation(value = "用户登录", notes = "用户登录")
@ApiOperationSupport(order = 1)
@PostMapping("/login")
public String login(@RequestBody String encryptedData){
return userService.login(encryptedData);
}
}

View File

@@ -31,7 +31,7 @@ public class TokenInterceptor implements HandlerInterceptor {
private ObjectMapper objectMapper;
//不拦截的请求列表
private static final List<String> EXCLUDE_PATH_LIST = Arrays.asList("");
private static final List<String> EXCLUDE_PATH_LIST = Arrays.asList("/user/login");
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {

View File

@@ -0,0 +1,13 @@
package cn.xf.basedemo.service;
/**
* @program: xf-boot-base
* @ClassName UserService
* @description:
* @author: xiongfeng
* @create: 2022-06-28 09:21
**/
public interface UserService {
String login(String encryptedData);
}

View File

@@ -0,0 +1,46 @@
package cn.xf.basedemo.service.impl;
import cn.xf.basedemo.common.utils.RSAUtils;
import cn.xf.basedemo.config.GlobalConfig;
import cn.xf.basedemo.service.UserService;
import com.alibaba.fastjson.JSONObject;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
/**
* @program: xf-boot-base
* @ClassName UserServiceImpl
* @description:
* @author: xiongfeng
* @create: 2022-06-28 09:21
**/
@Slf4j
@Service
public class UserServiceImpl implements UserService {
@Autowired
private GlobalConfig globalConfig;
@Override
public String login(String encryptedData) {
if(StringUtils.isEmpty(encryptedData)){
return null;
}
String loginJson = "";
try {
loginJson = RSAUtils.privateDecryption(encryptedData, RSAUtils.getPrivateKey(globalConfig.getRsaPrivateKey()));
}catch (Exception e){
log.error("解密失败------》》》");
}
log.error("解密数据----" + loginJson);
return null;
}
}

View File

@@ -21,9 +21,9 @@ spring:
driver-class-name: com.mysql.cj.jdbc.Driver
redis:
port: 6379 #Redis服务器连接的端口
host: 127.0.0.1 # Redis服务器的地址
password: # Redis服务器连接密码默认为空
timeout: 5000ms # 连接超时时间(毫秒)
host: 122.112.153.128 # Redis服务器的地址
password: redis # Redis服务器连接密码默认为空
timeout: 5000 # 连接超时时间(毫秒)
lettuce: #参考博客 https://blog.csdn.net/weixin_43944305/article/details/124322595
pool:
maxActive: 5000 #最大连接数
@@ -39,8 +39,8 @@ spring:
global:
rsaPublicKey: MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC4iSekTzDIfhE65qaThuySiDT0hWmmaB482ZMkJdwHH66SjJh_No_z8ZeJj774CrW0dtDfvPPpyS0-L-Gjs_V2FZea7hOfUrCZf0_GKjfovC_Ch_FqbXdP3nu5w4RePjhhIvqN99HWhb9tHi6W6Mupw5Fi5i4oSgtIxGVivDC2cwIDAQAB
rsaPrivateKey: MIICeAIBADANBgkqhkiG9w0BAQEFAASCAmIwggJeAgEAAoGBALiJJ6RPMMh-ETrmppOG7JKINPSFaaZoHjzZkyQl3AcfrpKMmH82j_Pxl4mPvvgKtbR20N-88-nJLT4v4aOz9XYVl5ruE59SsJl_T8YqN-i8L8KH8Wptd0_ee7nDhF4-OGEi-o330daFv20eLpboy6nDkWLmLihKC0jEZWK8MLZzAgMBAAECgYAEhO9gmcPjFRtM6vsnX8WJbSaG2oGU3rXm3Zk56Gd0ETWQRzsw2mA6JC-G4etWXcTHb6V75T-_-PpPrJKFFNItEH-WFRS36xneomycxRG1YTfK1SsGLGF0BV3bLVZx8cQz7VsBY4vqbRCSKtcOZBJpnxI6iHAv07i8w34F6qjfsQJBAORnKUuJQ_GsHHBPT1VhMYjXVepAfTrWtCzRQ648KavbHLAGaRIhX10uj-hAhZLafDqQF8Y7T7GHTlasRL9ubWsCQQDO1R3KScJJSR3KDsnSsF0YCw7V28cr_OVAwiPoro90Me6MUz9yKV88gQlTuJkNFMuu_YdPXYKjlzNVg0zFmtUZAkEAoe9mPtDeZD0TmKkSZUVYul1543C_mPTan5_qrWCoZtkd2MtiuWEB3O4DR7ZfPcQ8KcU5pektUn_NEfRndZYUawJBAJfydOoxeawBLQNODfLcYefR59owlYe5SGpktaCw7O596DPqzId_4Vk_qqx4xueXSXOLCabCmcC4yZue0_2vm7ECQQDLrzXL-BpSqxbvtE0gNKcgaSkEUSOh1QmQFPCHERsOBxcflM6ej71STKglB21JD9m6tM2RySgbtUx4TfOuJTek
##redis
rsaPrivateKey: MIICeAIBADANBgkqhkiG9w0BAQEFAASCAmIwggJeAgEAAoGBALiJJ6RPMMh-ETrmppOG7JKINPSFaaZoHjzZkyQl3AcfrpKMmH82j_Pxl4mPvvgKtbR20N-88-nJLT4v4aOz9XYVl5ruE59SsJl_T8YqN-i8L8KH8Wptd0_ee7nDhF4-OGEi-o330daFv20eLpboy6nDkWLmLihKC0jEZWK8MLZzAgMBAAECgYAEhO9gmcPjFRtM6vsnX8WJbSaG2oGU3rXm3Zk56Gd0ETWQRzsw2mA6JC-G4etWXcTHb6V75T-_-PpPrJKFFNItEH-WFRS36xneomycxRG1YTfK1SsGLGF0BV3bLVZx8cQz7VsBY4vqbRCSKtcOZBJpnxI6iHAv07i8w34F6qjfsQJBAORnKUuJQ_GsHHBPT1VhMYjXVepAfTrWtCzRQ648KavbHLAGaRIhX10uj-hAhZLafDqQF8Y7T7GHTlasRL9ubWsCQQDO1R3KScJJSR3KDsnSsF0YCw7V28cr_OVAwiPoro90Me6MUz9yKV88gQlTuJkNFMuu_YdPXYKjlzNVg0zFmtUZAkEAoe9mPtDeZD0TmKkSZUVYul1543C_mPTan5_qrWCoZtkd2MtiuWEB3O4DR7ZfPcQ8KcU5pektUn_NEfRndZYUawJBAJfydOoxeawBLQNODfLcYefR59owlYe5SGpktaCw7O596DPqzId_4Vk_qqx4xueXSXOLCabCmcC4yZue0_2vm7ECQQDLrzXL-BpSqxbvtE0gNKcgaSkEUSOh1QmQFPCHERsOBxcflM6ej71STKglB21JD9m6tM2RySgbtUx4TfOuJTek
##redis
#redis:
# dynamic:
# datasource:

View File

@@ -53,9 +53,16 @@
var cipher = this.encryptByPublicKey(json);
console.log("密文 " + cipher);
this.axios.get(api).then((response) => {
console.log(response.data)
var url = "http://localhost:8080/user/login";
axios.post(url, {
encryptedData: cipher,
})
.then(function (response) {
console.log(response);
})
.catch(function (error) {
console.log(error);
});
},
encryptByPublicKey: function (val = '') {
if(val === ''){