diff --git a/src/main/java/cn/xf/basedemo/common/model/LoginInfo.java b/src/main/java/cn/xf/basedemo/common/model/LoginInfo.java new file mode 100644 index 0000000..14ba7d4 --- /dev/null +++ b/src/main/java/cn/xf/basedemo/common/model/LoginInfo.java @@ -0,0 +1,29 @@ +package cn.xf.basedemo.common.model; + +import lombok.Data; +import org.apache.commons.lang3.StringUtils; + +/** + * @program: xf-boot-base + * @ClassName LoginInfo + * @description: + * @author: xiongfeng + * @create: 2022-07-04 14:26 + **/ +@Data +public class LoginInfo { + + private String account; + + private String pwd; + + public String check(){ + if(StringUtils.isEmpty(account)){ + return "账号不能为空"; + } + if(StringUtils.isEmpty(pwd)){ + return "密码不能为空"; + } + return ""; + } +} diff --git a/src/main/java/cn/xf/basedemo/common/model/LoginUserInfo.java b/src/main/java/cn/xf/basedemo/common/model/LoginUser.java similarity index 83% rename from src/main/java/cn/xf/basedemo/common/model/LoginUserInfo.java rename to src/main/java/cn/xf/basedemo/common/model/LoginUser.java index 87189a1..ad817f8 100644 --- a/src/main/java/cn/xf/basedemo/common/model/LoginUserInfo.java +++ b/src/main/java/cn/xf/basedemo/common/model/LoginUser.java @@ -10,11 +10,13 @@ import lombok.Data; * @create: 2022-06-17 14:54 **/ @Data -public class LoginUserInfo { +public class LoginUser { private Integer id; private String name; + private String account; + private String phone; } diff --git a/src/main/java/cn/xf/basedemo/common/model/RetObj.java b/src/main/java/cn/xf/basedemo/common/model/RetObj.java new file mode 100644 index 0000000..bae12e5 --- /dev/null +++ b/src/main/java/cn/xf/basedemo/common/model/RetObj.java @@ -0,0 +1,26 @@ +package cn.xf.basedemo.common.model; + +import lombok.Data; + +/** + * @program: xf-boot-base + * @ClassName RetObj + * @description: 全局统一响应对象 + * @author: xiongfeng + * @create: 2022-07-04 15:57 + **/ +@Data +public class RetObj { + + private Integer code; + + private String message; + + private T data; + + public static RetObj success() { + return new RetObj(); + } + + +} diff --git a/src/main/java/cn/xf/basedemo/common/utils/JwtTokenUtils.java b/src/main/java/cn/xf/basedemo/common/utils/JwtTokenUtils.java index 7314322..e4569dc 100644 --- a/src/main/java/cn/xf/basedemo/common/utils/JwtTokenUtils.java +++ b/src/main/java/cn/xf/basedemo/common/utils/JwtTokenUtils.java @@ -8,6 +8,7 @@ import com.auth0.jwt.interfaces.Claim; import com.auth0.jwt.interfaces.DecodedJWT; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; +import org.springframework.stereotype.Component; import java.util.Date; import java.util.HashMap; @@ -22,8 +23,8 @@ import java.util.Map; @Slf4j public class JwtTokenUtils { - private String tokenSecret; - private int tokenExpire; + private static String tokenSecret; + private static int tokenExpire; public JwtTokenUtils(String tokenSecret, int tokenExpire) { this.tokenSecret = StringUtils.isNotEmpty(tokenSecret) ? tokenSecret : "remaindertime"; @@ -47,7 +48,7 @@ public class JwtTokenUtils { * * @param userId 用户id */ - public String createToken(int userId) { + public static String createToken(int userId) { try { Date iatDate = new Date(); // expire time @@ -82,7 +83,7 @@ public class JwtTokenUtils { * @return * @throws Exception */ - public Map verifyToken(String token) { + public static Map verifyToken(String token) { if (token == null) { return null; } @@ -105,7 +106,7 @@ public class JwtTokenUtils { * @param token * @return userId */ - public Integer getUserId(String token) { + public static Integer getUserId(String token) { Map claims = verifyToken(token); if (claims != null) { return null; diff --git a/src/main/java/cn/xf/basedemo/common/utils/RSAUtils.java b/src/main/java/cn/xf/basedemo/common/utils/RSAUtils.java index 113a141..0c53670 100644 --- a/src/main/java/cn/xf/basedemo/common/utils/RSAUtils.java +++ b/src/main/java/cn/xf/basedemo/common/utils/RSAUtils.java @@ -99,12 +99,13 @@ public class RSAUtils { public static String publicEncrypt(String data, RSAPublicKey publicKey){ try { + Cipher cipher = Cipher.getInstance(RSA); cipher.init(Cipher.ENCRYPT_MODE, publicKey); -// byte[] bytes = cipher.doFinal(data.getBytes()); -// return Base64.encodeBase64URLSafeString(bytes); - return Base64.encodeBase64URLSafeString(rsaSplitCodec(cipher, Cipher.ENCRYPT_MODE, data.getBytes(CHARSET), publicKey.getModulus().bitLength())); + byte[] bytes = cipher.doFinal(data.getBytes()); + return Base64.encodeBase64URLSafeString(bytes); +// return Base64.encodeBase64URLSafeString(rsaSplitCodec(cipher, Cipher.ENCRYPT_MODE, data.getBytes(CHARSET), publicKey.getModulus().bitLength())); }catch (Exception e){ throw new RuntimeException(); } @@ -115,9 +116,9 @@ public class RSAUtils { Cipher cipher = Cipher.getInstance(RSA); cipher.init(Cipher.DECRYPT_MODE, privateKey); -// byte[] bytes = cipher.doFinal(Base64.decodeBase64URLSafe(data)); +// byte[] bytes = cipher.doFinal(Base64.decodeBase64(data.getBytes(CHARSET))); // return new String(bytes); - return new String(rsaSplitCodec(cipher, Cipher.DECRYPT_MODE, Base64.decodeBase64URLSafe(data), privateKey.getModulus().bitLength()), CHARSET); + return new String(rsaSplitCodec(cipher, Cipher.DECRYPT_MODE, Base64.decodeBase64(data.getBytes(CHARSET)), privateKey.getModulus().bitLength()), CHARSET); } catch (Exception e) { throw new RuntimeException("解密字符串[" + data + "]时遇到异常", e); } @@ -166,16 +167,16 @@ public class RSAUtils { // // System.out.println(); // -// String data = "哈哈哈哈哈哈哈"; + String data = "data"; //加密 try { -// String s = publicEncrypt(data, getPublicKey(publicKey)); -// System.out.println("加密后密文:" + s); + String s = publicEncrypt(data, getPublicKey("MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC_F5UQC1QWsu3QsESQBz9M-GDA9Atm0qVSvwIsy568lyRLi-nq3VvvnmgrlL4yTbngFzyfb2Dn35cNCHsBvIaGuCY3_PpzPqMzVpxr2QlEkhEX9atnJQ1rWexS8QeZtPjpiIwoQrChTzXjD_sYUkDrqSykFplyivf0NSO2WqCBdwIDAQAB")); + System.out.println("加密后密文:" + s); - 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); +// 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(); diff --git a/src/main/java/cn/xf/basedemo/controller/UserController.java b/src/main/java/cn/xf/basedemo/controller/UserController.java index 602674e..5d116d3 100644 --- a/src/main/java/cn/xf/basedemo/controller/UserController.java +++ b/src/main/java/cn/xf/basedemo/controller/UserController.java @@ -1,5 +1,6 @@ package cn.xf.basedemo.controller; +import cn.xf.basedemo.model.res.LoginInfoRes; import cn.xf.basedemo.service.UserService; import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; import io.swagger.annotations.ApiModelProperty; @@ -27,8 +28,8 @@ public class UserController { @ApiOperation(value = "用户登录", notes = "用户登录") @ApiOperationSupport(order = 1) @PostMapping("/login") - public String login(@RequestBody String encryptedData){ + public String login(@RequestBody LoginInfoRes res){ - return userService.login(encryptedData); + return userService.login(res); } } diff --git a/src/main/java/cn/xf/basedemo/interceptor/SessionContext.java b/src/main/java/cn/xf/basedemo/interceptor/SessionContext.java index 2020a30..b836d06 100644 --- a/src/main/java/cn/xf/basedemo/interceptor/SessionContext.java +++ b/src/main/java/cn/xf/basedemo/interceptor/SessionContext.java @@ -1,6 +1,6 @@ package cn.xf.basedemo.interceptor; -import cn.xf.basedemo.common.model.LoginUserInfo; +import cn.xf.basedemo.common.model.LoginUser; /** * @program: xf-boot-base @@ -11,7 +11,7 @@ import cn.xf.basedemo.common.model.LoginUserInfo; **/ public class SessionContext { - private ThreadLocal threadLocal; + private ThreadLocal threadLocal; private SessionContext() { this.threadLocal = new ThreadLocal<>(); @@ -28,11 +28,11 @@ public class SessionContext { return Context.INSTANCE; } - public void set(LoginUserInfo user) { + public void set(LoginUser user) { this.threadLocal.set(user); } - public LoginUserInfo get() { + public LoginUser get() { return this.threadLocal.get(); } diff --git a/src/main/java/cn/xf/basedemo/interceptor/TokenInterceptor.java b/src/main/java/cn/xf/basedemo/interceptor/TokenInterceptor.java index 5bc3d16..f6b9992 100644 --- a/src/main/java/cn/xf/basedemo/interceptor/TokenInterceptor.java +++ b/src/main/java/cn/xf/basedemo/interceptor/TokenInterceptor.java @@ -1,10 +1,9 @@ package cn.xf.basedemo.interceptor; -import cn.xf.basedemo.common.model.LoginUserInfo; +import cn.xf.basedemo.common.model.LoginUser; import com.fasterxml.jackson.databind.ObjectMapper; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.data.redis.core.RedisTemplate; import org.springframework.data.redis.core.StringRedisTemplate; import org.springframework.web.servlet.HandlerInterceptor; @@ -49,7 +48,7 @@ public class TokenInterceptor implements HandlerInterceptor { if(StringUtils.isEmpty(value)){ return false; } - LoginUserInfo loginUserInfo = objectMapper.convertValue(value, LoginUserInfo.class); + LoginUser loginUserInfo = objectMapper.convertValue(value, LoginUser.class); if(loginUserInfo == null || loginUserInfo.getId() <= 0){ return false; } diff --git a/src/main/java/cn/xf/basedemo/mappers/UserMapper.java b/src/main/java/cn/xf/basedemo/mappers/UserMapper.java new file mode 100644 index 0000000..ca92daf --- /dev/null +++ b/src/main/java/cn/xf/basedemo/mappers/UserMapper.java @@ -0,0 +1,17 @@ +package cn.xf.basedemo.mappers; + +import cn.xf.basedemo.model.domain.User; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Mapper; + +/** + * @program: xf-boot-base + * @ClassName UserMapper + * @description: + * @author: xiongfeng + * @create: 2022-07-04 14:42 + **/ +@Mapper +public interface UserMapper extends BaseMapper { + +} diff --git a/src/main/java/cn/xf/basedemo/model/domain/User.java b/src/main/java/cn/xf/basedemo/model/domain/User.java new file mode 100644 index 0000000..3883cf2 --- /dev/null +++ b/src/main/java/cn/xf/basedemo/model/domain/User.java @@ -0,0 +1,30 @@ +package cn.xf.basedemo.model.domain; + +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; + +import java.util.Date; + +/** + * @program: xf-boot-base + * @ClassName User + * @description: + * @author: xiongfeng + * @create: 2022-07-04 14:39 + **/ +@Data +@TableName(value = "xf-user") +public class User { + + private Integer id; + + private String name; + + private String account; + + private String password; + + private String phone; + + private Date createTime; +} diff --git a/src/main/java/cn/xf/basedemo/model/res/LoginInfoRes.java b/src/main/java/cn/xf/basedemo/model/res/LoginInfoRes.java new file mode 100644 index 0000000..965bb47 --- /dev/null +++ b/src/main/java/cn/xf/basedemo/model/res/LoginInfoRes.java @@ -0,0 +1,19 @@ +package cn.xf.basedemo.model.res; + +import lombok.Data; + +/** + * @program: xf-boot-base + * @ClassName LoginInfoRes + * @description: + * @author: xiongfeng + * @create: 2022-07-04 11:46 + **/ +@Data +public class LoginInfoRes { + + /** + * 登录密文 + */ + private String encryptedData; +} diff --git a/src/main/java/cn/xf/basedemo/service/UserService.java b/src/main/java/cn/xf/basedemo/service/UserService.java index 30cb398..ced1f11 100644 --- a/src/main/java/cn/xf/basedemo/service/UserService.java +++ b/src/main/java/cn/xf/basedemo/service/UserService.java @@ -1,5 +1,7 @@ package cn.xf.basedemo.service; +import cn.xf.basedemo.model.res.LoginInfoRes; + /** * @program: xf-boot-base * @ClassName UserService @@ -9,5 +11,5 @@ package cn.xf.basedemo.service; **/ public interface UserService { - String login(String encryptedData); + String login(LoginInfoRes res); } diff --git a/src/main/java/cn/xf/basedemo/service/impl/UserServiceImpl.java b/src/main/java/cn/xf/basedemo/service/impl/UserServiceImpl.java index c34a43c..c93fc8c 100644 --- a/src/main/java/cn/xf/basedemo/service/impl/UserServiceImpl.java +++ b/src/main/java/cn/xf/basedemo/service/impl/UserServiceImpl.java @@ -1,14 +1,26 @@ package cn.xf.basedemo.service.impl; +import cn.xf.basedemo.common.model.LoginInfo; +import cn.xf.basedemo.common.model.LoginUser; +import cn.xf.basedemo.common.utils.JwtTokenUtils; import cn.xf.basedemo.common.utils.RSAUtils; import cn.xf.basedemo.config.GlobalConfig; +import cn.xf.basedemo.mappers.UserMapper; +import cn.xf.basedemo.model.domain.User; +import cn.xf.basedemo.model.res.LoginInfoRes; import cn.xf.basedemo.service.UserService; import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.fasterxml.jackson.databind.ObjectMapper; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.redis.core.RedisTemplate; import org.springframework.stereotype.Service; +import java.util.Objects; +import java.util.concurrent.TimeUnit; + /** * @program: xf-boot-base * @ClassName UserServiceImpl @@ -23,24 +35,50 @@ public class UserServiceImpl implements UserService { @Autowired private GlobalConfig globalConfig; - @Override - public String login(String encryptedData) { + @Autowired + private ObjectMapper objectMapper; - if(StringUtils.isEmpty(encryptedData)){ + @Autowired + private UserMapper userMapper; + + @Autowired + private RedisTemplate redisTemplate; + + @Override + public String login(LoginInfoRes res) { + + if (Objects.isNull(res) || StringUtils.isEmpty(res.getEncryptedData())) { return null; } - String loginJson = ""; try { - loginJson = RSAUtils.privateDecryption(encryptedData, RSAUtils.getPrivateKey(globalConfig.getRsaPrivateKey())); - }catch (Exception e){ - log.error("解密失败------》》》"); + loginJson = RSAUtils.privateDecryption(res.getEncryptedData(), RSAUtils.getPrivateKey(globalConfig.getRsaPrivateKey())); + } catch (Exception e) { + log.error("解密失败------", e); } - log.error("解密数据----" + loginJson); + LoginInfo loginInfo = objectMapper.convertValue(loginJson, LoginInfo.class); + if (StringUtils.isNotBlank(loginInfo.check())) { + return loginInfo.check(); + } + //校验登录账号密码 + QueryWrapper queryWrapper = new QueryWrapper(); + queryWrapper.eq("account", loginInfo.getAccount()); + queryWrapper.eq("password", loginInfo.getPwd()); + User user = userMapper.selectOne(queryWrapper); + if (Objects.isNull(user)) { + return "账号或密码错误"; + } + LoginUser loginUser = new LoginUser(); + loginUser.setId(user.getId()); + loginUser.setAccount(user.getAccount()); + loginUser.setName(user.getName()); + loginUser.setPhone(user.getPhone()); + String token = JwtTokenUtils.createToken(user.getId()); + redisTemplate.opsForValue().set("token:" + token, JSONObject.toJSONString(loginUser), 3600, TimeUnit.SECONDS); + redisTemplate.opsForValue().set("user_login_token:" + user.getId(), token, 3600, TimeUnit.SECONDS); - - return null; + return "登录成功"; } } diff --git a/src/main/resources/application-dev.yml b/src/main/resources/application-dev.yml index 6b790aa..a1c352f 100644 --- a/src/main/resources/application-dev.yml +++ b/src/main/resources/application-dev.yml @@ -38,9 +38,13 @@ 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 + rsaPublicKey: MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC_F5UQC1QWsu3QsESQBz9M-GDA9Atm0qVSvwIsy568lyRLi-nq3VvvnmgrlL4yTbngFzyfb2Dn35cNCHsBvIaGuCY3_PpzPqMzVpxr2QlEkhEX9atnJQ1rWexS8QeZtPjpiIwoQrChTzXjD_sYUkDrqSykFplyivf0NSO2WqCBdwIDAQAB + rsaPrivateKey: MIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBAL8XlRALVBay7dCwRJAHP0z4YMD0C2bSpVK_AizLnryXJEuL6erdW--eaCuUvjJNueAXPJ9vYOfflw0IewG8hoa4Jjf8-nM-ozNWnGvZCUSSERf1q2clDWtZ7FLxB5m0-OmIjChCsKFPNeMP-xhSQOupLKQWmXKK9_Q1I7ZaoIF3AgMBAAECgYBxTUA61Ry0oL7U_86HP2TO9G4ZuhmQi9EucMaPXOPvmgYRLRIzCbDbMKc_P-BN3zwYnG57cgSZNz9OoPqeGvP_oVTnkoEpVkCSV-JP2p_DK09LdbDqszJXMrxAkPmWGUw8IRMcTJT1xJJcgzFE6T0CmTo-Vk47AnmqfJD4U6o74QJBAPRjVUJKZnrMSnSqKPDL2ThgTo8h7-KFxl_Z-g724lTOFiCmBpi6nCWAcuacFRrrYqxF-r9c4zdIyR7AvLROql8CQQDIK_kRF52dVtwShciZhyeUBLoi0nWV9F8mMGt60NTEER9zPEgPsv2aVn8h97KMWOwmd2Da4EPm25QxOuaKQC_pAkBczcfXp5co9KElkmR_pHl1jiTm97U3qSM-zPDHc_tYxvXiKgoBP4QCPbfkWMsu8MoEr4Jb3vMt0EcHlZtTQTgzAkAfmNla-lhV4sUgY1_T5EK6GbjsED6hag6u74u3ukkrnexR-10ApWdkumydBwV3I_464DM4uZfeVCDjWIHVpuYpAkEA6QLPztGD4V8Q1PqTEeSF3i68CKPM8vO1_mCH2JD7qsqDQcIKkczj5rTg7hlOKwB9V6gSw4CbnOF6moTooRD-cQ + + + + +##redis #redis: # dynamic: # datasource: diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index 1e87bf8..671e309 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -1,6 +1,6 @@ server: - port: 8080 + port: 8088 shutdown: graceful spring: profiles: diff --git a/src/main/resources/templates/login.html b/src/main/resources/templates/login.html index ba78fff..88de722 100644 --- a/src/main/resources/templates/login.html +++ b/src/main/resources/templates/login.html @@ -1,16 +1,17 @@ - - 模拟登录 + + 模拟登录 @@ -25,57 +26,55 @@
-
- - - - - 登录 -
+
+ + + + + 登录 +