⚡ 4.1.0.RELEASE 登录认证升级为国密算法,数据库password字段内容无需变动
This commit is contained in:
parent
7e6b9f0abc
commit
e6dc3ba4fe
15
README.md
15
README.md
|
|
@ -1,5 +1,5 @@
|
|||
<p align="center">
|
||||
<img src="https://img.shields.io/badge/Release-V4.0.0-green.svg" alt="Downloads">
|
||||
<img src="https://img.shields.io/badge/Release-V4.1.0-green.svg" alt="Downloads">
|
||||
<img src="https://img.shields.io/badge/JDK-17+-green.svg" alt="Build Status">
|
||||
<img src="https://img.shields.io/badge/license-Apache%202-blue.svg" alt="Build Status">
|
||||
<img src="https://img.shields.io/badge/Spring%20Cloud-2023-blue.svg" alt="Coverage Status">
|
||||
|
|
@ -32,12 +32,13 @@
|
|||
| 技术栈 | 版本 |
|
||||
|----------------------|------------|
|
||||
| Java | 17+ |
|
||||
| Spring | 6.1.5 |
|
||||
| Spring Boot | 3.2.4 |
|
||||
| Spring Cloud | 2023.0.1 |
|
||||
| Spring Cloud Alibaba | 2022.0.0.0 |
|
||||
| Nacos Alibaba | 2.3.1 |
|
||||
| Mybatis Plus | 3.5.6 |
|
||||
| NodeJS | 18+ |
|
||||
| Spring | 6.1.10 |
|
||||
| Spring Boot | 3.2.7 |
|
||||
| Spring Cloud | 2023.0.2 |
|
||||
| Spring Cloud Alibaba | 2023.0.1.0 |
|
||||
| Nacos Alibaba | 2.3.2 |
|
||||
| Mybatis Plus | 3.5.7 |
|
||||
|
||||
|
||||
## 工程结构
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@
|
|||
<parent>
|
||||
<artifactId>SpringBlade</artifactId>
|
||||
<groupId>org.springblade</groupId>
|
||||
<version>4.0.0</version>
|
||||
<version>4.1.0</version>
|
||||
</parent>
|
||||
|
||||
<artifactId>blade-auth</artifactId>
|
||||
|
|
|
|||
|
|
@ -16,9 +16,9 @@
|
|||
package org.springblade.auth.controller;
|
||||
|
||||
import com.wf.captcha.SpecCaptcha;
|
||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||
import io.swagger.v3.oas.annotations.Operation;
|
||||
import io.swagger.v3.oas.annotations.Parameter;
|
||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||
import lombok.AllArgsConstructor;
|
||||
import org.springblade.auth.granter.ITokenGranter;
|
||||
import org.springblade.auth.granter.TokenGranterBuilder;
|
||||
|
|
@ -92,4 +92,11 @@ public class AuthController {
|
|||
return R.data(Kv.init().set("key", key).set("image", specCaptcha.toBase64()));
|
||||
}
|
||||
|
||||
@PostMapping("/logout")
|
||||
@Operation(summary = "登出")
|
||||
public R<Kv> logout() {
|
||||
// 登出预留逻辑
|
||||
return R.data(Kv.init().set("code", "200").set("msg", "操作成功"));
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -20,6 +20,7 @@ import org.springblade.auth.enums.BladeUserEnum;
|
|||
import org.springblade.auth.utils.TokenUtil;
|
||||
import org.springblade.common.cache.CacheNames;
|
||||
import org.springblade.core.log.exception.ServiceException;
|
||||
import org.springblade.core.secure.props.BladeAuthProperties;
|
||||
import org.springblade.core.tool.api.R;
|
||||
import org.springblade.core.tool.utils.*;
|
||||
import org.springblade.system.user.entity.UserInfo;
|
||||
|
|
@ -42,6 +43,8 @@ public class CaptchaTokenGranter implements ITokenGranter {
|
|||
private IUserClient userClient;
|
||||
private RedisUtil redisUtil;
|
||||
|
||||
private BladeAuthProperties authProperties;
|
||||
|
||||
@Override
|
||||
public UserInfo grant(TokenParameter tokenParameter) {
|
||||
HttpServletRequest request = WebUtil.getRequest();
|
||||
|
|
@ -62,14 +65,17 @@ public class CaptchaTokenGranter implements ITokenGranter {
|
|||
if (Func.isNoneBlank(account, password)) {
|
||||
// 获取用户类型
|
||||
String userType = tokenParameter.getArgs().getStr("userType");
|
||||
// 解密密码
|
||||
String decryptPassword = TokenUtil.decryptPassword(password, authProperties.getPublicKey(), authProperties.getPrivateKey());
|
||||
// 定义返回结果
|
||||
R<UserInfo> result;
|
||||
// 根据不同用户类型调用对应的接口返回数据,用户可自行拓展
|
||||
if (userType.equals(BladeUserEnum.WEB.getName())) {
|
||||
result = userClient.userInfo(tenantId, account, DigestUtil.encrypt(password));
|
||||
result = userClient.userInfo(tenantId, account, DigestUtil.encrypt(decryptPassword));
|
||||
} else if (userType.equals(BladeUserEnum.APP.getName())) {
|
||||
result = userClient.userInfo(tenantId, account, DigestUtil.encrypt(password));
|
||||
result = userClient.userInfo(tenantId, account, DigestUtil.encrypt(decryptPassword));
|
||||
} else {
|
||||
result = userClient.userInfo(tenantId, account, DigestUtil.encrypt(password));
|
||||
result = userClient.userInfo(tenantId, account, DigestUtil.encrypt(decryptPassword));
|
||||
}
|
||||
userInfo = result.isSuccess() ? result.getData() : null;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -17,6 +17,8 @@ package org.springblade.auth.granter;
|
|||
|
||||
import lombok.AllArgsConstructor;
|
||||
import org.springblade.auth.enums.BladeUserEnum;
|
||||
import org.springblade.auth.utils.TokenUtil;
|
||||
import org.springblade.core.secure.props.BladeAuthProperties;
|
||||
import org.springblade.core.tool.api.R;
|
||||
import org.springblade.core.tool.utils.DigestUtil;
|
||||
import org.springblade.core.tool.utils.Func;
|
||||
|
|
@ -37,6 +39,8 @@ public class PasswordTokenGranter implements ITokenGranter {
|
|||
|
||||
private IUserClient userClient;
|
||||
|
||||
private BladeAuthProperties authProperties;
|
||||
|
||||
@Override
|
||||
public UserInfo grant(TokenParameter tokenParameter) {
|
||||
String tenantId = tokenParameter.getArgs().getStr("tenantId");
|
||||
|
|
@ -46,14 +50,17 @@ public class PasswordTokenGranter implements ITokenGranter {
|
|||
if (Func.isNoneBlank(account, password)) {
|
||||
// 获取用户类型
|
||||
String userType = tokenParameter.getArgs().getStr("userType");
|
||||
// 解密密码
|
||||
String decryptPassword = TokenUtil.decryptPassword(password, authProperties.getPublicKey(), authProperties.getPrivateKey());
|
||||
// 定义返回结果
|
||||
R<UserInfo> result;
|
||||
// 根据不同用户类型调用对应的接口返回数据,用户可自行拓展
|
||||
if (userType.equals(BladeUserEnum.WEB.getName())) {
|
||||
result = userClient.userInfo(tenantId, account, DigestUtil.encrypt(password));
|
||||
result = userClient.userInfo(tenantId, account, DigestUtil.encrypt(decryptPassword));
|
||||
} else if (userType.equals(BladeUserEnum.APP.getName())) {
|
||||
result = userClient.userInfo(tenantId, account, DigestUtil.encrypt(password));
|
||||
result = userClient.userInfo(tenantId, account, DigestUtil.encrypt(decryptPassword));
|
||||
} else {
|
||||
result = userClient.userInfo(tenantId, account, DigestUtil.encrypt(password));
|
||||
result = userClient.userInfo(tenantId, account, DigestUtil.encrypt(decryptPassword));
|
||||
}
|
||||
userInfo = result.isSuccess() ? result.getData() : null;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -20,6 +20,9 @@ import org.springblade.core.secure.AuthInfo;
|
|||
import org.springblade.core.secure.TokenInfo;
|
||||
import org.springblade.core.secure.utils.SecureUtil;
|
||||
import org.springblade.core.tool.utils.Func;
|
||||
import org.springblade.core.tool.utils.SM2Util;
|
||||
import org.springblade.core.tool.utils.StringPool;
|
||||
import org.springblade.core.tool.utils.StringUtil;
|
||||
import org.springblade.system.user.entity.User;
|
||||
import org.springblade.system.user.entity.UserInfo;
|
||||
|
||||
|
|
@ -43,7 +46,8 @@ public class TokenUtil {
|
|||
public final static String USER_NOT_FOUND = "用户名或密码错误";
|
||||
public final static String HEADER_KEY = "Authorization";
|
||||
public final static String HEADER_PREFIX = "Basic ";
|
||||
public final static String DEFAULT_AVATAR = "https://gw.alipayobjects.com/zos/rmsportal/BiazfanxmamNRoxxVxka.png";
|
||||
public final static String ENCRYPT_PREFIX = "04";
|
||||
public final static String DEFAULT_AVATAR = "https://bladex.cn/images/logo.png";
|
||||
|
||||
/**
|
||||
* 创建认证token
|
||||
|
|
@ -97,4 +101,31 @@ public class TokenUtil {
|
|||
return SecureUtil.createJWT(param, "audience", "issuser", TokenConstant.REFRESH_TOKEN);
|
||||
}
|
||||
|
||||
/**
|
||||
* 解析国密sm2加密密码
|
||||
*
|
||||
* @param rawPassword 请求时提交的原密码
|
||||
* @param publicKey 公钥
|
||||
* @param privateKey 私钥
|
||||
* @return 解密后的密码
|
||||
*/
|
||||
public static String decryptPassword(String rawPassword, String publicKey, String privateKey) {
|
||||
// 其中有空则匹配失败
|
||||
if (StringUtil.isAnyBlank(publicKey, privateKey)) {
|
||||
return StringPool.EMPTY;
|
||||
}
|
||||
// 处理部分工具类加密不带04前缀的情况
|
||||
if (!StringUtil.startsWithIgnoreCase(rawPassword, ENCRYPT_PREFIX)) {
|
||||
rawPassword = ENCRYPT_PREFIX + rawPassword;
|
||||
}
|
||||
// 解密密码
|
||||
String decryptPassword = SM2Util.decrypt(rawPassword, privateKey);
|
||||
// 签名校验
|
||||
boolean isVerified = SM2Util.verify(decryptPassword, SM2Util.sign(decryptPassword, privateKey), publicKey);
|
||||
if (!isVerified) {
|
||||
return StringPool.EMPTY;
|
||||
}
|
||||
return decryptPassword;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,23 +0,0 @@
|
|||
package org.springblade.test;
|
||||
|
||||
import org.springblade.core.tool.utils.AesUtil;
|
||||
|
||||
/**
|
||||
* aesKey生成器
|
||||
*
|
||||
* @author Chill
|
||||
*/
|
||||
public class AesKeyGenerator {
|
||||
|
||||
public static void main(String[] args) {
|
||||
System.out.println("=======================================================");
|
||||
for (int i = 0; i < 10; i++) {
|
||||
String aesKey = AesUtil.genAesKey();
|
||||
System.out.println("SpringBlade AesKey:[" + aesKey + "] ");
|
||||
}
|
||||
System.out.println("=======================================================");
|
||||
System.out.println("====== blade.token.aes-key 的值从中挑选一个便可 =========");
|
||||
System.out.println("=======================================================");
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -1,5 +1,6 @@
|
|||
package org.springblade.test;
|
||||
|
||||
import org.springblade.core.tool.utils.AesUtil;
|
||||
import org.springblade.core.tool.utils.RandomType;
|
||||
import org.springblade.core.tool.utils.StringUtil;
|
||||
|
||||
|
|
@ -11,13 +12,12 @@ import org.springblade.core.tool.utils.StringUtil;
|
|||
public class SignKeyGenerator {
|
||||
|
||||
public static void main(String[] args) {
|
||||
System.out.println("=======================================================");
|
||||
for (int i = 0; i < 10; i++) {
|
||||
String signKey = StringUtil.random(32, RandomType.ALL);
|
||||
System.out.println("SpringBlade SignKey:[" + signKey + "] ");
|
||||
}
|
||||
System.out.println("=======================================================");
|
||||
System.out.println("====== blade.token.sign-key 的值从中挑选一个便可 =========");
|
||||
System.out.println("=========== blade.token.sign-key 配置如下 ==============");
|
||||
System.out.println("#blade配置\n" +
|
||||
"blade:\n" +
|
||||
" token:\n" +
|
||||
" sign-key: " + StringUtil.random(32, RandomType.ALL) +"\n" +
|
||||
" aes-key: " + AesUtil.genAesKey() );
|
||||
System.out.println("=======================================================");
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -0,0 +1,46 @@
|
|||
package org.springblade.test;
|
||||
|
||||
import org.bouncycastle.crypto.AsymmetricCipherKeyPair;
|
||||
import org.bouncycastle.util.encoders.Hex;
|
||||
import org.springblade.core.tool.utils.SM2Util;
|
||||
import org.springblade.core.tool.utils.StringPool;
|
||||
|
||||
/**
|
||||
* signKey生成器
|
||||
*
|
||||
* @author Chill
|
||||
*/
|
||||
public class Sm2KeyGenerator {
|
||||
|
||||
public static void main(String[] args) {
|
||||
System.out.println("================ blade.auth 配置如下 =================");
|
||||
AsymmetricCipherKeyPair keyPair = SM2Util.generateKeyPair();
|
||||
String publicKey = SM2Util.getPublicKeyString(keyPair);
|
||||
String privateKey = SM2Util.getPrivateKeyString(keyPair);
|
||||
System.out.println("#blade配置 \n" +
|
||||
"blade:\n" +
|
||||
" auth:\n" +
|
||||
" public-key: " + publicKey + "\n" +
|
||||
" private-key: " + privateKey);
|
||||
System.out.println("=======================================================");
|
||||
System.out.println(StringPool.EMPTY);
|
||||
System.out.println("============== saber website.js 配置如下 ===============");
|
||||
System.out.println("//saber配置\n" +
|
||||
"auth: {\n" +
|
||||
" publicKey: '" + publicKey + "',\n" +
|
||||
"}");
|
||||
System.out.println("=======================================================");
|
||||
System.out.println(StringPool.EMPTY);
|
||||
System.out.println("============== 密码:[admin] 加密流程如下 ================");
|
||||
String password = "admin";
|
||||
byte[] encryptedData = SM2Util.encrypt(password, publicKey);
|
||||
String decryptedText = SM2Util.decrypt(encryptedData, privateKey);
|
||||
System.out.println("加密前: " + password);
|
||||
System.out.println("加密后: " + Hex.toHexString(encryptedData));
|
||||
System.out.println("解密后: " + decryptedText);
|
||||
System.out.println("请注意: 此密文为前端加密后调用token接口的密码参数");
|
||||
System.out.println("=======================================================");
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -5,7 +5,7 @@
|
|||
<parent>
|
||||
<artifactId>SpringBlade</artifactId>
|
||||
<groupId>org.springblade</groupId>
|
||||
<version>4.0.0</version>
|
||||
<version>4.1.0</version>
|
||||
</parent>
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
<parent>
|
||||
<artifactId>SpringBlade</artifactId>
|
||||
<groupId>org.springblade</groupId>
|
||||
<version>4.0.0</version>
|
||||
<version>4.1.0</version>
|
||||
</parent>
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
<parent>
|
||||
<artifactId>blade-ops</artifactId>
|
||||
<groupId>org.springblade</groupId>
|
||||
<version>4.0.0</version>
|
||||
<version>4.1.0</version>
|
||||
</parent>
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@
|
|||
<parent>
|
||||
<groupId>org.springblade</groupId>
|
||||
<artifactId>blade-ops</artifactId>
|
||||
<version>4.0.0</version>
|
||||
<version>4.1.0</version>
|
||||
</parent>
|
||||
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
<parent>
|
||||
<groupId>org.springblade</groupId>
|
||||
<artifactId>blade-ops</artifactId>
|
||||
<version>4.0.0</version>
|
||||
<version>4.1.0</version>
|
||||
</parent>
|
||||
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
<parent>
|
||||
<artifactId>blade-ops</artifactId>
|
||||
<groupId>org.springblade</groupId>
|
||||
<version>4.0.0</version>
|
||||
<version>4.1.0</version>
|
||||
</parent>
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
<parent>
|
||||
<artifactId>blade-ops</artifactId>
|
||||
<groupId>org.springblade</groupId>
|
||||
<version>4.0.0</version>
|
||||
<version>4.1.0</version>
|
||||
</parent>
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
<parent>
|
||||
<artifactId>blade-ops</artifactId>
|
||||
<groupId>org.springblade</groupId>
|
||||
<version>4.0.0</version>
|
||||
<version>4.1.0</version>
|
||||
</parent>
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
|
|
|
|||
|
|
@ -5,13 +5,13 @@
|
|||
<parent>
|
||||
<artifactId>SpringBlade</artifactId>
|
||||
<groupId>org.springblade</groupId>
|
||||
<version>4.0.0</version>
|
||||
<version>4.1.0</version>
|
||||
</parent>
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
<artifactId>blade-ops</artifactId>
|
||||
<name>${project.artifactId}</name>
|
||||
<version>4.0.0</version>
|
||||
<version>4.1.0</version>
|
||||
<packaging>pom</packaging>
|
||||
<modules>
|
||||
<module>blade-admin</module>
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
<parent>
|
||||
<artifactId>blade-service-api</artifactId>
|
||||
<groupId>org.springblade</groupId>
|
||||
<version>4.0.0</version>
|
||||
<version>4.1.0</version>
|
||||
</parent>
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
<parent>
|
||||
<artifactId>blade-service-api</artifactId>
|
||||
<groupId>org.springblade</groupId>
|
||||
<version>4.0.0</version>
|
||||
<version>4.1.0</version>
|
||||
</parent>
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
<parent>
|
||||
<artifactId>blade-service-api</artifactId>
|
||||
<groupId>org.springblade</groupId>
|
||||
<version>4.0.0</version>
|
||||
<version>4.1.0</version>
|
||||
</parent>
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
<parent>
|
||||
<artifactId>blade-service-api</artifactId>
|
||||
<groupId>org.springblade</groupId>
|
||||
<version>4.0.0</version>
|
||||
<version>4.1.0</version>
|
||||
</parent>
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
<parent>
|
||||
<artifactId>blade-service-api</artifactId>
|
||||
<groupId>org.springblade</groupId>
|
||||
<version>4.0.0</version>
|
||||
<version>4.1.0</version>
|
||||
</parent>
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
<parent>
|
||||
<artifactId>blade-service-api</artifactId>
|
||||
<groupId>org.springblade</groupId>
|
||||
<version>4.0.0</version>
|
||||
<version>4.1.0</version>
|
||||
</parent>
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
|
|
|
|||
|
|
@ -5,13 +5,13 @@
|
|||
<parent>
|
||||
<artifactId>SpringBlade</artifactId>
|
||||
<groupId>org.springblade</groupId>
|
||||
<version>4.0.0</version>
|
||||
<version>4.1.0</version>
|
||||
</parent>
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
<artifactId>blade-service-api</artifactId>
|
||||
<name>${project.artifactId}</name>
|
||||
<version>4.0.0</version>
|
||||
<version>4.1.0</version>
|
||||
<packaging>pom</packaging>
|
||||
<description>SpringBlade 微服务API集合</description>
|
||||
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
<parent>
|
||||
<artifactId>blade-service</artifactId>
|
||||
<groupId>org.springblade</groupId>
|
||||
<version>4.0.0</version>
|
||||
<version>4.1.0</version>
|
||||
</parent>
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@
|
|||
<parent>
|
||||
<groupId>org.springblade</groupId>
|
||||
<artifactId>blade-service</artifactId>
|
||||
<version>4.0.0</version>
|
||||
<version>4.1.0</version>
|
||||
</parent>
|
||||
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
<parent>
|
||||
<artifactId>blade-service</artifactId>
|
||||
<groupId>org.springblade</groupId>
|
||||
<version>4.0.0</version>
|
||||
<version>4.1.0</version>
|
||||
</parent>
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
<parent>
|
||||
<artifactId>blade-service</artifactId>
|
||||
<groupId>org.springblade</groupId>
|
||||
<version>4.0.0</version>
|
||||
<version>4.1.0</version>
|
||||
</parent>
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
<parent>
|
||||
<artifactId>blade-service</artifactId>
|
||||
<groupId>org.springblade</groupId>
|
||||
<version>4.0.0</version>
|
||||
<version>4.1.0</version>
|
||||
</parent>
|
||||
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
|
|
|||
|
|
@ -7,12 +7,12 @@
|
|||
<parent>
|
||||
<groupId>org.springblade</groupId>
|
||||
<artifactId>SpringBlade</artifactId>
|
||||
<version>4.0.0</version>
|
||||
<version>4.1.0</version>
|
||||
</parent>
|
||||
|
||||
<artifactId>blade-service</artifactId>
|
||||
<name>${project.artifactId}</name>
|
||||
<version>4.0.0</version>
|
||||
<version>4.1.0</version>
|
||||
<packaging>pom</packaging>
|
||||
<description>SpringBlade 微服务集合</description>
|
||||
|
||||
|
|
|
|||
|
|
@ -73,7 +73,7 @@ knife4j:
|
|||
swagger:
|
||||
title: SpringBlade 接口文档系统
|
||||
description: SpringBlade 接口文档系统
|
||||
version: 4.0.0
|
||||
version: 4.1.0
|
||||
license: Powered By SpringBlade
|
||||
licenseUrl: https://bladex.cn
|
||||
terms-of-service-url: https://bladex.cn
|
||||
|
|
@ -84,11 +84,16 @@ swagger:
|
|||
|
||||
#blade配置
|
||||
blade:
|
||||
auth:
|
||||
#使用 @org.springblade.test.Sm2KeyGenerator 获取,用于国密sm2验签,需和前端保持一致
|
||||
public-key: 请配置sm2公钥
|
||||
#使用 @org.springblade.test.Sm2KeyGenerator 获取,用于国密sm2解密,前端无需配置
|
||||
private-key: 请配置sm2私钥
|
||||
token:
|
||||
#使用 blade-auth服务 @org.springblade.test.SignKeyGenerator 获取
|
||||
sign-key: 请配置32位签名提高安全性
|
||||
#使用 blade-auth服务 @org.springblade.test.AesKeyGenerator 获取
|
||||
aes-key: 请配置Aes的密钥
|
||||
#使用 @org.springblade.test.SignKeyGenerator 获取
|
||||
sign-key: 请配置32位签名
|
||||
#使用 @org.springblade.test.SignKeyGenerator 获取
|
||||
aes-key: 请配置cryptoKey
|
||||
xss:
|
||||
enabled: true
|
||||
skip-url:
|
||||
|
|
|
|||
16
pom.xml
16
pom.xml
|
|
@ -5,12 +5,12 @@
|
|||
|
||||
<groupId>org.springblade</groupId>
|
||||
<artifactId>SpringBlade</artifactId>
|
||||
<version>4.0.0</version>
|
||||
<version>4.1.0</version>
|
||||
<packaging>pom</packaging>
|
||||
|
||||
<properties>
|
||||
<blade.tool.version>4.0.0</blade.tool.version>
|
||||
<blade.project.version>4.0.0</blade.project.version>
|
||||
<blade.tool.version>4.1.0</blade.tool.version>
|
||||
<blade.project.version>4.1.0</blade.project.version>
|
||||
|
||||
<java.version>17</java.version>
|
||||
<maven.plugin.version>3.11.0</maven.plugin.version>
|
||||
|
|
@ -21,13 +21,13 @@
|
|||
<easyexcel.version>3.3.4</easyexcel.version>
|
||||
<mica.auto.version>3.1.3</mica.auto.version>
|
||||
|
||||
<spring.version>6.1.5</spring.version>
|
||||
<spring.boot.version>3.2.4</spring.boot.version>
|
||||
<spring.version>6.1.10</spring.version>
|
||||
<spring.boot.version>3.2.7</spring.boot.version>
|
||||
<spring.boot.admin.version>3.2.3</spring.boot.admin.version>
|
||||
<spring.cloud.version>2023.0.1</spring.cloud.version>
|
||||
<spring.cloud.version>2023.0.2</spring.cloud.version>
|
||||
|
||||
<alibaba.cloud.version>2022.0.0.0</alibaba.cloud.version>
|
||||
<alibaba.nacos.version>2.3.1</alibaba.nacos.version>
|
||||
<alibaba.cloud.version>2023.0.1.0</alibaba.cloud.version>
|
||||
<alibaba.nacos.version>2.3.2</alibaba.nacos.version>
|
||||
|
||||
<!-- 推荐使用Harbor -->
|
||||
<docker.registry.url>10.211.55.5</docker.registry.url>
|
||||
|
|
|
|||
|
|
@ -1,2 +1,2 @@
|
|||
REGISTER=192.168.0.157/blade
|
||||
TAG=4.0.0
|
||||
TAG=4.1.0
|
||||
|
|
|
|||
|
|
@ -1,13 +1,14 @@
|
|||
version: '3'
|
||||
services:
|
||||
nacos:
|
||||
image: nacos/nacos-server:v2.3.1
|
||||
image: nacos/nacos-server:v2.3.2
|
||||
hostname: "nacos-standalone"
|
||||
environment:
|
||||
- NACOS_AUTH_ENABLE=true
|
||||
- NACOS_AUTH_CACHE_ENABLE=true
|
||||
- NACOS_AUTH_IDENTITY_KEY=nacos
|
||||
- NACOS_AUTH_IDENTITY_VALUE=nacos
|
||||
- NACOS_AUTH_TOKEN= # 请阅读官方文档了解规则后替换为自己的token:https://nacos.io/zh-cn/docs/v2/guide/user/auth.html
|
||||
- MODE=standalone
|
||||
- TZ=Asia/Shanghai
|
||||
volumes:
|
||||
|
|
|
|||
|
|
@ -152,7 +152,7 @@ spec:
|
|||
spec:
|
||||
containers:
|
||||
- name: blade-admin
|
||||
image: 'swr.cn-east-2.myhuaweicloud.com/blade/blade-admin:4.0.0'
|
||||
image: 'swr.cn-east-2.myhuaweicloud.com/blade/blade-admin:4.1.0'
|
||||
args:
|
||||
- '--spring.profiles.active=${PROFILE}'
|
||||
- '--spring.cloud.nacos.config.server-addr=${NACOS_SERVER_ADDR}'
|
||||
|
|
@ -386,7 +386,7 @@ spec:
|
|||
spec:
|
||||
containers:
|
||||
- name: blade-auth
|
||||
image: 'swr.cn-east-2.myhuaweicloud.com/blade/blade-auth:4.0.0'
|
||||
image: 'swr.cn-east-2.myhuaweicloud.com/blade/blade-auth:4.1.0'
|
||||
args:
|
||||
- '--spring.profiles.active=${PROFILE}'
|
||||
- '--spring.cloud.nacos.config.server-addr=${NACOS_SERVER_ADDR}'
|
||||
|
|
@ -625,7 +625,7 @@ spec:
|
|||
spec:
|
||||
containers:
|
||||
- name: blade-desk
|
||||
image: 'swr.cn-east-2.myhuaweicloud.com/blade/blade-desk:4.0.0'
|
||||
image: 'swr.cn-east-2.myhuaweicloud.com/blade/blade-desk:4.1.0'
|
||||
args:
|
||||
- '--spring.profiles.active=${PROFILE}'
|
||||
- '--spring.cloud.nacos.config.server-addr=${NACOS_SERVER_ADDR}'
|
||||
|
|
@ -864,7 +864,7 @@ spec:
|
|||
spec:
|
||||
containers:
|
||||
- name: blade-develop
|
||||
image: 'swr.cn-east-2.myhuaweicloud.com/blade/blade-develop:4.0.0'
|
||||
image: 'swr.cn-east-2.myhuaweicloud.com/blade/blade-develop:4.1.0'
|
||||
args:
|
||||
- '--spring.profiles.active=${PROFILE}'
|
||||
- '--spring.cloud.nacos.config.server-addr=${NACOS_SERVER_ADDR}'
|
||||
|
|
@ -1096,7 +1096,7 @@ spec:
|
|||
spec:
|
||||
containers:
|
||||
- name: blade-gateway
|
||||
image: 'swr.cn-east-2.myhuaweicloud.com/blade/blade-gateway:4.0.0'
|
||||
image: 'swr.cn-east-2.myhuaweicloud.com/blade/blade-gateway:4.1.0'
|
||||
args:
|
||||
- '--spring.profiles.active=${PROFILE}'
|
||||
- '--spring.cloud.nacos.config.server-addr=${NACOS_SERVER_ADDR}'
|
||||
|
|
@ -1331,7 +1331,7 @@ spec:
|
|||
spec:
|
||||
containers:
|
||||
- name: blade-log
|
||||
image: 'swr.cn-east-2.myhuaweicloud.com/blade/blade-log:4.0.0'
|
||||
image: 'swr.cn-east-2.myhuaweicloud.com/blade/blade-log:4.1.0'
|
||||
args:
|
||||
- '--spring.profiles.active=${PROFILE}'
|
||||
- '--spring.cloud.nacos.config.server-addr=${NACOS_SERVER_ADDR}'
|
||||
|
|
@ -1565,7 +1565,7 @@ spec:
|
|||
spec:
|
||||
containers:
|
||||
- name: blade-report
|
||||
image: 'swr.cn-east-2.myhuaweicloud.com/blade/blade-report:4.0.0'
|
||||
image: 'swr.cn-east-2.myhuaweicloud.com/blade/blade-report:4.1.0'
|
||||
args:
|
||||
- '--spring.profiles.active=${PROFILE}'
|
||||
- '--spring.cloud.nacos.config.server-addr=${NACOS_SERVER_ADDR}'
|
||||
|
|
@ -1799,7 +1799,7 @@ spec:
|
|||
spec:
|
||||
containers:
|
||||
- name: blade-resource
|
||||
image: 'swr.cn-east-2.myhuaweicloud.com/blade/blade-resource:4.0.0'
|
||||
image: 'swr.cn-east-2.myhuaweicloud.com/blade/blade-resource:4.1.0'
|
||||
args:
|
||||
- '--spring.profiles.active=${PROFILE}'
|
||||
- '--spring.cloud.nacos.config.server-addr=${NACOS_SERVER_ADDR}'
|
||||
|
|
@ -2033,7 +2033,7 @@ spec:
|
|||
spec:
|
||||
containers:
|
||||
- name: blade-system
|
||||
image: 'swr.cn-east-2.myhuaweicloud.com/blade/blade-system:4.0.0'
|
||||
image: 'swr.cn-east-2.myhuaweicloud.com/blade/blade-system:4.1.0'
|
||||
args:
|
||||
- '--spring.profiles.active=${PROFILE}'
|
||||
- '--spring.cloud.nacos.config.server-addr=${NACOS_SERVER_ADDR}'
|
||||
|
|
@ -2267,7 +2267,7 @@ spec:
|
|||
spec:
|
||||
containers:
|
||||
- name: blade-user
|
||||
image: 'swr.cn-east-2.myhuaweicloud.com/blade/blade-user:4.0.0'
|
||||
image: 'swr.cn-east-2.myhuaweicloud.com/blade/blade-user:4.1.0'
|
||||
args:
|
||||
- '--spring.profiles.active=${PROFILE}'
|
||||
- '--spring.cloud.nacos.config.server-addr=${NACOS_SERVER_ADDR}'
|
||||
|
|
@ -2496,7 +2496,7 @@ spec:
|
|||
spec:
|
||||
containers:
|
||||
- name: saber-web
|
||||
image: 'swr.cn-east-2.myhuaweicloud.com/blade/saber-web:4.0.0'
|
||||
image: 'swr.cn-east-2.myhuaweicloud.com/blade/saber-web:4.1.0'
|
||||
ports:
|
||||
- name: web
|
||||
containerPort: 80
|
||||
|
|
@ -2721,7 +2721,7 @@ spec:
|
|||
spec:
|
||||
containers:
|
||||
- name: blade-swagger
|
||||
image: 'swr.cn-east-2.myhuaweicloud.com/blade/blade-swagger:4.0.0'
|
||||
image: 'swr.cn-east-2.myhuaweicloud.com/blade/blade-swagger:4.1.0'
|
||||
args:
|
||||
- '--spring.profiles.active=${PROFILE}'
|
||||
- '--spring.cloud.nacos.config.server-addr=${NACOS_SERVER_ADDR}'
|
||||
|
|
@ -3749,7 +3749,7 @@ spec:
|
|||
spec:
|
||||
containers:
|
||||
- name: mysql
|
||||
image: 'swr.cn-east-2.myhuaweicloud.com/blade/saber-db:v4.0.0'
|
||||
image: 'swr.cn-east-2.myhuaweicloud.com/blade/saber-db:v4.1.0'
|
||||
ports:
|
||||
- name: mysql
|
||||
containerPort: 3306
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user