mirror of
https://github.com/chillzhuang/SpringBlade.git
synced 2024-11-22 02:19:25 +08:00
🎉 3.6.0.RELEASE vue3版前端正式发布
This commit is contained in:
parent
647d85e326
commit
fd5135e3a5
2
LICENSE
2
LICENSE
@ -176,7 +176,7 @@ recommend that a file or class name and description of purpose be included on
|
|||||||
the same "printed page" as the copyright notice for easier identification within
|
the same "printed page" as the copyright notice for easier identification within
|
||||||
third-party archives.
|
third-party archives.
|
||||||
|
|
||||||
Copyright 2020 BladeX (https://bladex.vip)
|
Copyright 2023 BladeX (https://bladex.vip)
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License");
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
you may not use this file except in compliance with the License.
|
you may not use this file except in compliance with the License.
|
||||||
|
10
README.md
10
README.md
@ -1,9 +1,9 @@
|
|||||||
<p align="center">
|
<p align="center">
|
||||||
<img src="https://img.shields.io/badge/Release-V3.5.0-green.svg" alt="Downloads">
|
<img src="https://img.shields.io/badge/Release-V3.6.0-green.svg" alt="Downloads">
|
||||||
<img src="https://img.shields.io/badge/JDK-1.8+-green.svg" alt="Build Status">
|
<img src="https://img.shields.io/badge/JDK-1.8+-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/license-Apache%202-blue.svg" alt="Build Status">
|
||||||
<img src="https://img.shields.io/badge/Spring%20Cloud-2021-blue.svg" alt="Coverage Status">
|
<img src="https://img.shields.io/badge/Spring%20Cloud-2021-blue.svg" alt="Coverage Status">
|
||||||
<img src="https://img.shields.io/badge/Spring%20Boot-2.7.1-blue.svg" alt="Downloads">
|
<img src="https://img.shields.io/badge/Spring%20Boot-2.7.10-blue.svg" alt="Downloads">
|
||||||
<a target="_blank" href="https://bladex.vip">
|
<a target="_blank" href="https://bladex.vip">
|
||||||
<img src="https://img.shields.io/badge/Author-Small%20Chill-ff69b4.svg" alt="Downloads">
|
<img src="https://img.shields.io/badge/Author-Small%20Chill-ff69b4.svg" alt="Downloads">
|
||||||
</a>
|
</a>
|
||||||
@ -69,12 +69,13 @@ SpringBlade
|
|||||||
* Sword-基于React:[https://sword.bladex.vip](https://sword.bladex.vip)
|
* Sword-基于React:[https://sword.bladex.vip](https://sword.bladex.vip)
|
||||||
|
|
||||||
## 数据大屏
|
## 数据大屏
|
||||||
* Caster-数据大屏展示系统:[https://caster.bladex.vip](https://caster.bladex.vip)
|
* 数据大屏展示系统:[https://data.bladex.vip](https://data.bladex.vip)
|
||||||
|
|
||||||
## 技术文档
|
## 技术文档
|
||||||
* [SpringBlade开发手册一览](https://gitee.com/smallc/SpringBlade/wikis/SpringBlade开发手册)
|
* [SpringBlade开发手册一览](https://gitee.com/smallc/SpringBlade/wikis/SpringBlade开发手册)
|
||||||
* [SpringBlade常见问题集锦](https://sns.bladex.vip/article-14966.html)
|
* [SpringBlade常见问题集锦](https://sns.bladex.vip/article-14966.html)
|
||||||
* [SpringBlade基于Kuboard部署K8S](https://kuboard.cn/learning/k8s-practice/spring-blade/)
|
* [SpringBlade基于Kuboard部署K8S](https://kuboard.cn/learning/k8s-practice/spring-blade/)
|
||||||
|
* [SpringBlade基于Rainbond部署](https://www.rainbond.com/docs/micro-service/example/blade)
|
||||||
|
|
||||||
## 项目地址
|
## 项目地址
|
||||||
* 核心框架项目地址:[https://gitee.com/smallc/blade-tool](https://gitee.com/smallc/blade-tool)
|
* 核心框架项目地址:[https://gitee.com/smallc/blade-tool](https://gitee.com/smallc/blade-tool)
|
||||||
@ -82,7 +83,8 @@ SpringBlade
|
|||||||
* 后端Github地址:[https://github.com/chillzhuang/SpringBlade](https://github.com/chillzhuang/SpringBlade)
|
* 后端Github地址:[https://github.com/chillzhuang/SpringBlade](https://github.com/chillzhuang/SpringBlade)
|
||||||
* 后端SpringBoot版:[https://gitee.com/smallc/SpringBlade/tree/boot/](https://gitee.com/smallc/SpringBlade/tree/boot/)
|
* 后端SpringBoot版:[https://gitee.com/smallc/SpringBlade/tree/boot/](https://gitee.com/smallc/SpringBlade/tree/boot/)
|
||||||
* 前端框架Sword(基于React):[https://gitee.com/smallc/Sword](https://gitee.com/smallc/Sword)
|
* 前端框架Sword(基于React):[https://gitee.com/smallc/Sword](https://gitee.com/smallc/Sword)
|
||||||
* 前端框架Saber(基于Vue):[https://gitee.com/smallc/Saber](https://gitee.com/smallc/Saber)
|
* 前端框架Saber(基于Vue2):[https://gitee.com/smallc/Saber](https://gitee.com/smallc/Saber)
|
||||||
|
* 前端框架Saber3(基于Vue3):[https://gitee.com/smallc/Saber3](https://gitee.com/smallc/Saber/tree/3.x/)
|
||||||
|
|
||||||
# 开源协议
|
# 开源协议
|
||||||
Apache Licence 2.0 ([英文原文](http://www.apache.org/licenses/LICENSE-2.0.html))
|
Apache Licence 2.0 ([英文原文](http://www.apache.org/licenses/LICENSE-2.0.html))
|
||||||
|
@ -8,7 +8,7 @@
|
|||||||
<parent>
|
<parent>
|
||||||
<artifactId>SpringBlade</artifactId>
|
<artifactId>SpringBlade</artifactId>
|
||||||
<groupId>org.springblade</groupId>
|
<groupId>org.springblade</groupId>
|
||||||
<version>3.5.0</version>
|
<version>3.6.0</version>
|
||||||
</parent>
|
</parent>
|
||||||
|
|
||||||
<artifactId>blade-auth</artifactId>
|
<artifactId>blade-auth</artifactId>
|
||||||
@ -63,6 +63,7 @@
|
|||||||
<dependency>
|
<dependency>
|
||||||
<groupId>mysql</groupId>
|
<groupId>mysql</groupId>
|
||||||
<artifactId>mysql-connector-java</artifactId>
|
<artifactId>mysql-connector-java</artifactId>
|
||||||
|
<version>${mysql.connector.version}</version>
|
||||||
<scope>runtime</scope>
|
<scope>runtime</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
</dependencies>
|
</dependencies>
|
||||||
|
@ -0,0 +1,24 @@
|
|||||||
|
package org.springblade.test;
|
||||||
|
|
||||||
|
import org.springblade.core.tool.utils.RandomType;
|
||||||
|
import org.springblade.core.tool.utils.StringUtil;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* signKey生成器
|
||||||
|
*
|
||||||
|
* @author Chill
|
||||||
|
*/
|
||||||
|
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("=======================================================");
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -5,7 +5,7 @@
|
|||||||
<parent>
|
<parent>
|
||||||
<artifactId>SpringBlade</artifactId>
|
<artifactId>SpringBlade</artifactId>
|
||||||
<groupId>org.springblade</groupId>
|
<groupId>org.springblade</groupId>
|
||||||
<version>3.5.0</version>
|
<version>3.6.0</version>
|
||||||
</parent>
|
</parent>
|
||||||
<modelVersion>4.0.0</modelVersion>
|
<modelVersion>4.0.0</modelVersion>
|
||||||
|
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
<parent>
|
<parent>
|
||||||
<artifactId>SpringBlade</artifactId>
|
<artifactId>SpringBlade</artifactId>
|
||||||
<groupId>org.springblade</groupId>
|
<groupId>org.springblade</groupId>
|
||||||
<version>3.5.0</version>
|
<version>3.6.0</version>
|
||||||
</parent>
|
</parent>
|
||||||
<modelVersion>4.0.0</modelVersion>
|
<modelVersion>4.0.0</modelVersion>
|
||||||
|
|
||||||
@ -68,7 +68,6 @@
|
|||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.alibaba.cloud</groupId>
|
<groupId>com.alibaba.cloud</groupId>
|
||||||
<artifactId>spring-cloud-starter-alibaba-sentinel</artifactId>
|
<artifactId>spring-cloud-starter-alibaba-sentinel</artifactId>
|
||||||
<version>${alibaba.cloud.version}</version>
|
|
||||||
</dependency>
|
</dependency>
|
||||||
<!-- JWT -->
|
<!-- JWT -->
|
||||||
<dependency>
|
<dependency>
|
||||||
|
@ -0,0 +1,44 @@
|
|||||||
|
/**
|
||||||
|
* Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com).
|
||||||
|
* <p>
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
* <p>
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
* <p>
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package org.springblade.gateway.config;
|
||||||
|
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.springblade.gateway.props.JwtProperties;
|
||||||
|
import org.springblade.gateway.utils.JwtUtil;
|
||||||
|
import org.springframework.beans.factory.SmartInitializingSingleton;
|
||||||
|
import org.springframework.boot.context.properties.EnableConfigurationProperties;
|
||||||
|
import org.springframework.context.annotation.Configuration;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* JWT配置信息
|
||||||
|
*
|
||||||
|
* @author Chill
|
||||||
|
*/
|
||||||
|
@Slf4j
|
||||||
|
@Configuration(proxyBeanMethods = false)
|
||||||
|
@AllArgsConstructor
|
||||||
|
@EnableConfigurationProperties({JwtProperties.class})
|
||||||
|
public class JwtConfiguration implements SmartInitializingSingleton {
|
||||||
|
|
||||||
|
private final JwtProperties properties;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void afterSingletonsInstantiated() {
|
||||||
|
JwtUtil.setJwtProperties(properties);
|
||||||
|
}
|
||||||
|
}
|
@ -47,7 +47,7 @@ public class RouterFunctionConfiguration {
|
|||||||
/**
|
/**
|
||||||
* 这里为支持的请求头,如果有自定义的header字段请自己添加
|
* 这里为支持的请求头,如果有自定义的header字段请自己添加
|
||||||
*/
|
*/
|
||||||
private static final String ALLOWED_HEADERS = "X-Requested-With, Tenant-Id, Blade-Auth, Content-Type, Authorization, credential, X-XSRF-TOKEN, token, username, client, knfie4j-gateway-request, request-origion";
|
private static final String ALLOWED_HEADERS = "X-Requested-With, Tenant-Id, Blade-Auth, Content-Type, Authorization, credential, X-XSRF-TOKEN, token, username, client, knfie4j-gateway-request, knife4j-gateway-code, request-origion";
|
||||||
private static final String ALLOWED_METHODS = "GET,POST,PUT,DELETE,OPTIONS,HEAD";
|
private static final String ALLOWED_METHODS = "GET,POST,PUT,DELETE,OPTIONS,HEAD";
|
||||||
private static final String ALLOWED_ORIGIN = "*";
|
private static final String ALLOWED_ORIGIN = "*";
|
||||||
private static final String ALLOWED_EXPOSE = "*";
|
private static final String ALLOWED_EXPOSE = "*";
|
||||||
|
@ -0,0 +1,58 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
|
||||||
|
*
|
||||||
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
* modification, are permitted provided that the following conditions are met:
|
||||||
|
*
|
||||||
|
* Redistributions of source code must retain the above copyright notice,
|
||||||
|
* this list of conditions and the following disclaimer.
|
||||||
|
* Redistributions in binary form must reproduce the above copyright
|
||||||
|
* notice, this list of conditions and the following disclaimer in the
|
||||||
|
* documentation and/or other materials provided with the distribution.
|
||||||
|
* Neither the name of the dreamlu.net developer nor the names of its
|
||||||
|
* contributors may be used to endorse or promote products derived from
|
||||||
|
* this software without specific prior written permission.
|
||||||
|
* Author: Chill 庄骞 (smallchill@163.com)
|
||||||
|
*/
|
||||||
|
package org.springblade.gateway.props;
|
||||||
|
|
||||||
|
import io.jsonwebtoken.JwtException;
|
||||||
|
import lombok.Data;
|
||||||
|
import org.springblade.core.launch.constant.TokenConstant;
|
||||||
|
import org.springframework.boot.context.properties.ConfigurationProperties;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* JWT配置
|
||||||
|
*
|
||||||
|
* @author Chill
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@ConfigurationProperties("blade.token")
|
||||||
|
public class JwtProperties {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* token是否有状态
|
||||||
|
*/
|
||||||
|
private Boolean state = Boolean.FALSE;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 是否只可同时在线一人
|
||||||
|
*/
|
||||||
|
private Boolean single = Boolean.FALSE;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* token签名
|
||||||
|
*/
|
||||||
|
private String signKey = "";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取签名规则
|
||||||
|
*/
|
||||||
|
public String getSignKey() {
|
||||||
|
if (this.signKey.length() < TokenConstant.SIGN_KEY_LENGTH) {
|
||||||
|
throw new JwtException("请配置 blade.token.sign-key 的值, 长度32位以上");
|
||||||
|
}
|
||||||
|
return this.signKey;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -18,6 +18,7 @@ package org.springblade.gateway.utils;
|
|||||||
import io.jsonwebtoken.Claims;
|
import io.jsonwebtoken.Claims;
|
||||||
import io.jsonwebtoken.Jwts;
|
import io.jsonwebtoken.Jwts;
|
||||||
import org.springblade.core.launch.constant.TokenConstant;
|
import org.springblade.core.launch.constant.TokenConstant;
|
||||||
|
import org.springblade.gateway.props.JwtProperties;
|
||||||
|
|
||||||
import java.nio.charset.StandardCharsets;
|
import java.nio.charset.StandardCharsets;
|
||||||
import java.util.Base64;
|
import java.util.Base64;
|
||||||
@ -29,11 +30,30 @@ import java.util.Base64;
|
|||||||
*/
|
*/
|
||||||
public class JwtUtil {
|
public class JwtUtil {
|
||||||
|
|
||||||
public static String SIGN_KEY = TokenConstant.SIGN_KEY;
|
|
||||||
public static String BEARER = TokenConstant.BEARER;
|
public static String BEARER = TokenConstant.BEARER;
|
||||||
public static Integer AUTH_LENGTH = 7;
|
public static Integer AUTH_LENGTH = 7;
|
||||||
|
|
||||||
public static String BASE64_SECURITY = Base64.getEncoder().encodeToString(SIGN_KEY.getBytes(StandardCharsets.UTF_8));
|
/**
|
||||||
|
* jwt配置
|
||||||
|
*/
|
||||||
|
private static JwtProperties jwtProperties;
|
||||||
|
|
||||||
|
public static JwtProperties getJwtProperties() {
|
||||||
|
return jwtProperties;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void setJwtProperties(JwtProperties properties) {
|
||||||
|
if (JwtUtil.jwtProperties == null) {
|
||||||
|
JwtUtil.jwtProperties = properties;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 签名加密
|
||||||
|
*/
|
||||||
|
public static String getBase64Security() {
|
||||||
|
return Base64.getEncoder().encodeToString(getJwtProperties().getSignKey().getBytes(StandardCharsets.UTF_8));
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取token串
|
* 获取token串
|
||||||
@ -61,7 +81,7 @@ public class JwtUtil {
|
|||||||
public static Claims parseJWT(String jsonWebToken) {
|
public static Claims parseJWT(String jsonWebToken) {
|
||||||
try {
|
try {
|
||||||
return Jwts.parserBuilder()
|
return Jwts.parserBuilder()
|
||||||
.setSigningKey(Base64.getDecoder().decode(JwtUtil.BASE64_SECURITY)).build()
|
.setSigningKey(Base64.getDecoder().decode(getBase64Security())).build()
|
||||||
.parseClaimsJws(jsonWebToken).getBody();
|
.parseClaimsJws(jsonWebToken).getBody();
|
||||||
} catch (Exception ex) {
|
} catch (Exception ex) {
|
||||||
return null;
|
return null;
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
<parent>
|
<parent>
|
||||||
<artifactId>blade-ops</artifactId>
|
<artifactId>blade-ops</artifactId>
|
||||||
<groupId>org.springblade</groupId>
|
<groupId>org.springblade</groupId>
|
||||||
<version>3.5.0</version>
|
<version>3.6.0</version>
|
||||||
</parent>
|
</parent>
|
||||||
<modelVersion>4.0.0</modelVersion>
|
<modelVersion>4.0.0</modelVersion>
|
||||||
|
|
||||||
|
@ -6,7 +6,7 @@
|
|||||||
<parent>
|
<parent>
|
||||||
<groupId>org.springblade</groupId>
|
<groupId>org.springblade</groupId>
|
||||||
<artifactId>blade-ops</artifactId>
|
<artifactId>blade-ops</artifactId>
|
||||||
<version>3.5.0</version>
|
<version>3.6.0</version>
|
||||||
</parent>
|
</parent>
|
||||||
|
|
||||||
<modelVersion>4.0.0</modelVersion>
|
<modelVersion>4.0.0</modelVersion>
|
||||||
@ -33,23 +33,6 @@
|
|||||||
<artifactId>blade-core-develop</artifactId>
|
<artifactId>blade-core-develop</artifactId>
|
||||||
<version>${blade.tool.version}</version>
|
<version>${blade.tool.version}</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
<!--Swagger-->
|
|
||||||
<dependency>
|
|
||||||
<groupId>io.springfox</groupId>
|
|
||||||
<artifactId>springfox-swagger2</artifactId>
|
|
||||||
<version>${swagger.version}</version>
|
|
||||||
<exclusions>
|
|
||||||
<exclusion>
|
|
||||||
<groupId>io.swagger</groupId>
|
|
||||||
<artifactId>swagger-models</artifactId>
|
|
||||||
</exclusion>
|
|
||||||
</exclusions>
|
|
||||||
</dependency>
|
|
||||||
<dependency>
|
|
||||||
<groupId>io.swagger</groupId>
|
|
||||||
<artifactId>swagger-models</artifactId>
|
|
||||||
<version>${swagger.models.version}</version>
|
|
||||||
</dependency>
|
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.springblade</groupId>
|
<groupId>org.springblade</groupId>
|
||||||
<artifactId>blade-dict-api</artifactId>
|
<artifactId>blade-dict-api</artifactId>
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
<parent>
|
<parent>
|
||||||
<groupId>org.springblade</groupId>
|
<groupId>org.springblade</groupId>
|
||||||
<artifactId>blade-ops</artifactId>
|
<artifactId>blade-ops</artifactId>
|
||||||
<version>3.5.0</version>
|
<version>3.6.0</version>
|
||||||
</parent>
|
</parent>
|
||||||
|
|
||||||
<modelVersion>4.0.0</modelVersion>
|
<modelVersion>4.0.0</modelVersion>
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
<parent>
|
<parent>
|
||||||
<artifactId>blade-ops</artifactId>
|
<artifactId>blade-ops</artifactId>
|
||||||
<groupId>org.springblade</groupId>
|
<groupId>org.springblade</groupId>
|
||||||
<version>3.5.0</version>
|
<version>3.6.0</version>
|
||||||
</parent>
|
</parent>
|
||||||
<modelVersion>4.0.0</modelVersion>
|
<modelVersion>4.0.0</modelVersion>
|
||||||
|
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
<parent>
|
<parent>
|
||||||
<artifactId>blade-ops</artifactId>
|
<artifactId>blade-ops</artifactId>
|
||||||
<groupId>org.springblade</groupId>
|
<groupId>org.springblade</groupId>
|
||||||
<version>3.5.0</version>
|
<version>3.6.0</version>
|
||||||
</parent>
|
</parent>
|
||||||
<modelVersion>4.0.0</modelVersion>
|
<modelVersion>4.0.0</modelVersion>
|
||||||
|
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
<parent>
|
<parent>
|
||||||
<artifactId>blade-ops</artifactId>
|
<artifactId>blade-ops</artifactId>
|
||||||
<groupId>org.springblade</groupId>
|
<groupId>org.springblade</groupId>
|
||||||
<version>3.5.0</version>
|
<version>3.6.0</version>
|
||||||
</parent>
|
</parent>
|
||||||
<modelVersion>4.0.0</modelVersion>
|
<modelVersion>4.0.0</modelVersion>
|
||||||
|
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
<parent>
|
<parent>
|
||||||
<artifactId>blade-ops</artifactId>
|
<artifactId>blade-ops</artifactId>
|
||||||
<groupId>org.springblade</groupId>
|
<groupId>org.springblade</groupId>
|
||||||
<version>3.5.0</version>
|
<version>3.6.0</version>
|
||||||
</parent>
|
</parent>
|
||||||
<modelVersion>4.0.0</modelVersion>
|
<modelVersion>4.0.0</modelVersion>
|
||||||
|
|
||||||
@ -23,8 +23,14 @@
|
|||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.github.xiaoymin</groupId>
|
<groupId>com.github.xiaoymin</groupId>
|
||||||
<artifactId>knife4j-aggregation-spring-boot-starter</artifactId>
|
<artifactId>knife4j-aggregation-spring-boot-starter</artifactId>
|
||||||
<version>${knife4j.version}</version>
|
|
||||||
</dependency>
|
</dependency>
|
||||||
|
<!--Mac M1笔记本会报错,参考:https://github.com/netty/netty/issues/11020-->
|
||||||
|
<!--<dependency>
|
||||||
|
<groupId>io.netty</groupId>
|
||||||
|
<artifactId>netty-resolver-dns-native-macos</artifactId>
|
||||||
|
<version>${netty.resolver.version}</version>
|
||||||
|
<classifier>osx-aarch_64</classifier>
|
||||||
|
</dependency>-->
|
||||||
</dependencies>
|
</dependencies>
|
||||||
|
|
||||||
<build>
|
<build>
|
||||||
|
@ -5,13 +5,13 @@
|
|||||||
<parent>
|
<parent>
|
||||||
<artifactId>SpringBlade</artifactId>
|
<artifactId>SpringBlade</artifactId>
|
||||||
<groupId>org.springblade</groupId>
|
<groupId>org.springblade</groupId>
|
||||||
<version>3.5.0</version>
|
<version>3.6.0</version>
|
||||||
</parent>
|
</parent>
|
||||||
<modelVersion>4.0.0</modelVersion>
|
<modelVersion>4.0.0</modelVersion>
|
||||||
|
|
||||||
<artifactId>blade-ops</artifactId>
|
<artifactId>blade-ops</artifactId>
|
||||||
<name>${project.artifactId}</name>
|
<name>${project.artifactId}</name>
|
||||||
<version>3.5.0</version>
|
<version>3.6.0</version>
|
||||||
<packaging>pom</packaging>
|
<packaging>pom</packaging>
|
||||||
<modules>
|
<modules>
|
||||||
<module>blade-admin</module>
|
<module>blade-admin</module>
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
<parent>
|
<parent>
|
||||||
<artifactId>blade-service-api</artifactId>
|
<artifactId>blade-service-api</artifactId>
|
||||||
<groupId>org.springblade</groupId>
|
<groupId>org.springblade</groupId>
|
||||||
<version>3.5.0</version>
|
<version>3.6.0</version>
|
||||||
</parent>
|
</parent>
|
||||||
<modelVersion>4.0.0</modelVersion>
|
<modelVersion>4.0.0</modelVersion>
|
||||||
|
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
<parent>
|
<parent>
|
||||||
<artifactId>blade-service-api</artifactId>
|
<artifactId>blade-service-api</artifactId>
|
||||||
<groupId>org.springblade</groupId>
|
<groupId>org.springblade</groupId>
|
||||||
<version>3.5.0</version>
|
<version>3.6.0</version>
|
||||||
</parent>
|
</parent>
|
||||||
<modelVersion>4.0.0</modelVersion>
|
<modelVersion>4.0.0</modelVersion>
|
||||||
|
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
<parent>
|
<parent>
|
||||||
<artifactId>blade-service-api</artifactId>
|
<artifactId>blade-service-api</artifactId>
|
||||||
<groupId>org.springblade</groupId>
|
<groupId>org.springblade</groupId>
|
||||||
<version>3.5.0</version>
|
<version>3.6.0</version>
|
||||||
</parent>
|
</parent>
|
||||||
<modelVersion>4.0.0</modelVersion>
|
<modelVersion>4.0.0</modelVersion>
|
||||||
|
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
<parent>
|
<parent>
|
||||||
<artifactId>blade-service-api</artifactId>
|
<artifactId>blade-service-api</artifactId>
|
||||||
<groupId>org.springblade</groupId>
|
<groupId>org.springblade</groupId>
|
||||||
<version>3.5.0</version>
|
<version>3.6.0</version>
|
||||||
</parent>
|
</parent>
|
||||||
<modelVersion>4.0.0</modelVersion>
|
<modelVersion>4.0.0</modelVersion>
|
||||||
|
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
<parent>
|
<parent>
|
||||||
<artifactId>blade-service-api</artifactId>
|
<artifactId>blade-service-api</artifactId>
|
||||||
<groupId>org.springblade</groupId>
|
<groupId>org.springblade</groupId>
|
||||||
<version>3.5.0</version>
|
<version>3.6.0</version>
|
||||||
</parent>
|
</parent>
|
||||||
<modelVersion>4.0.0</modelVersion>
|
<modelVersion>4.0.0</modelVersion>
|
||||||
|
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
<parent>
|
<parent>
|
||||||
<artifactId>blade-service-api</artifactId>
|
<artifactId>blade-service-api</artifactId>
|
||||||
<groupId>org.springblade</groupId>
|
<groupId>org.springblade</groupId>
|
||||||
<version>3.5.0</version>
|
<version>3.6.0</version>
|
||||||
</parent>
|
</parent>
|
||||||
<modelVersion>4.0.0</modelVersion>
|
<modelVersion>4.0.0</modelVersion>
|
||||||
|
|
||||||
|
@ -5,13 +5,13 @@
|
|||||||
<parent>
|
<parent>
|
||||||
<artifactId>SpringBlade</artifactId>
|
<artifactId>SpringBlade</artifactId>
|
||||||
<groupId>org.springblade</groupId>
|
<groupId>org.springblade</groupId>
|
||||||
<version>3.5.0</version>
|
<version>3.6.0</version>
|
||||||
</parent>
|
</parent>
|
||||||
<modelVersion>4.0.0</modelVersion>
|
<modelVersion>4.0.0</modelVersion>
|
||||||
|
|
||||||
<artifactId>blade-service-api</artifactId>
|
<artifactId>blade-service-api</artifactId>
|
||||||
<name>${project.artifactId}</name>
|
<name>${project.artifactId}</name>
|
||||||
<version>3.5.0</version>
|
<version>3.6.0</version>
|
||||||
<packaging>pom</packaging>
|
<packaging>pom</packaging>
|
||||||
<description>SpringBlade 微服务API集合</description>
|
<description>SpringBlade 微服务API集合</description>
|
||||||
|
|
||||||
@ -34,22 +34,6 @@
|
|||||||
<groupId>org.springframework.cloud</groupId>
|
<groupId>org.springframework.cloud</groupId>
|
||||||
<artifactId>spring-cloud-starter-openfeign</artifactId>
|
<artifactId>spring-cloud-starter-openfeign</artifactId>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
|
||||||
<groupId>io.springfox</groupId>
|
|
||||||
<artifactId>springfox-swagger2</artifactId>
|
|
||||||
<version>${swagger.version}</version>
|
|
||||||
<exclusions>
|
|
||||||
<exclusion>
|
|
||||||
<groupId>io.swagger</groupId>
|
|
||||||
<artifactId>swagger-models</artifactId>
|
|
||||||
</exclusion>
|
|
||||||
</exclusions>
|
|
||||||
</dependency>
|
|
||||||
<dependency>
|
|
||||||
<groupId>io.swagger</groupId>
|
|
||||||
<artifactId>swagger-models</artifactId>
|
|
||||||
<version>${swagger.models.version}</version>
|
|
||||||
</dependency>
|
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>net.dreamlu</groupId>
|
<groupId>net.dreamlu</groupId>
|
||||||
<artifactId>mica-auto</artifactId>
|
<artifactId>mica-auto</artifactId>
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
<parent>
|
<parent>
|
||||||
<artifactId>blade-service</artifactId>
|
<artifactId>blade-service</artifactId>
|
||||||
<groupId>org.springblade</groupId>
|
<groupId>org.springblade</groupId>
|
||||||
<version>3.5.0</version>
|
<version>3.6.0</version>
|
||||||
</parent>
|
</parent>
|
||||||
<modelVersion>4.0.0</modelVersion>
|
<modelVersion>4.0.0</modelVersion>
|
||||||
|
|
||||||
|
@ -6,7 +6,7 @@
|
|||||||
<parent>
|
<parent>
|
||||||
<groupId>org.springblade</groupId>
|
<groupId>org.springblade</groupId>
|
||||||
<artifactId>blade-service</artifactId>
|
<artifactId>blade-service</artifactId>
|
||||||
<version>3.5.0</version>
|
<version>3.6.0</version>
|
||||||
</parent>
|
</parent>
|
||||||
|
|
||||||
<modelVersion>4.0.0</modelVersion>
|
<modelVersion>4.0.0</modelVersion>
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
<parent>
|
<parent>
|
||||||
<artifactId>blade-service</artifactId>
|
<artifactId>blade-service</artifactId>
|
||||||
<groupId>org.springblade</groupId>
|
<groupId>org.springblade</groupId>
|
||||||
<version>3.5.0</version>
|
<version>3.6.0</version>
|
||||||
</parent>
|
</parent>
|
||||||
<modelVersion>4.0.0</modelVersion>
|
<modelVersion>4.0.0</modelVersion>
|
||||||
|
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
<parent>
|
<parent>
|
||||||
<artifactId>blade-service</artifactId>
|
<artifactId>blade-service</artifactId>
|
||||||
<groupId>org.springblade</groupId>
|
<groupId>org.springblade</groupId>
|
||||||
<version>3.5.0</version>
|
<version>3.6.0</version>
|
||||||
</parent>
|
</parent>
|
||||||
<modelVersion>4.0.0</modelVersion>
|
<modelVersion>4.0.0</modelVersion>
|
||||||
|
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
<parent>
|
<parent>
|
||||||
<artifactId>blade-service</artifactId>
|
<artifactId>blade-service</artifactId>
|
||||||
<groupId>org.springblade</groupId>
|
<groupId>org.springblade</groupId>
|
||||||
<version>3.5.0</version>
|
<version>3.6.0</version>
|
||||||
</parent>
|
</parent>
|
||||||
|
|
||||||
<modelVersion>4.0.0</modelVersion>
|
<modelVersion>4.0.0</modelVersion>
|
||||||
|
@ -7,12 +7,12 @@
|
|||||||
<parent>
|
<parent>
|
||||||
<groupId>org.springblade</groupId>
|
<groupId>org.springblade</groupId>
|
||||||
<artifactId>SpringBlade</artifactId>
|
<artifactId>SpringBlade</artifactId>
|
||||||
<version>3.5.0</version>
|
<version>3.6.0</version>
|
||||||
</parent>
|
</parent>
|
||||||
|
|
||||||
<artifactId>blade-service</artifactId>
|
<artifactId>blade-service</artifactId>
|
||||||
<name>${project.artifactId}</name>
|
<name>${project.artifactId}</name>
|
||||||
<version>3.5.0</version>
|
<version>3.6.0</version>
|
||||||
<packaging>pom</packaging>
|
<packaging>pom</packaging>
|
||||||
<description>SpringBlade 微服务集合</description>
|
<description>SpringBlade 微服务集合</description>
|
||||||
|
|
||||||
|
@ -60,16 +60,16 @@ knife4j:
|
|||||||
enableRequestCache: true
|
enableRequestCache: true
|
||||||
enableFilterMultipartApis: false
|
enableFilterMultipartApis: false
|
||||||
enableFilterMultipartApiMethodType: POST
|
enableFilterMultipartApiMethodType: POST
|
||||||
language: zh-CN
|
language: zh_cn
|
||||||
enableFooter: false
|
enableFooter: false
|
||||||
enableFooterCustom: true
|
enableFooterCustom: true
|
||||||
footerCustomContent: Copyright © 2022 SpringBlade All Rights Reserved
|
footerCustomContent: Copyright © 2023 SpringBlade All Rights Reserved
|
||||||
|
|
||||||
#swagger配置信息
|
#swagger配置信息
|
||||||
swagger:
|
swagger:
|
||||||
title: SpringBlade 接口文档系统
|
title: SpringBlade 接口文档系统
|
||||||
description: SpringBlade 接口文档系统
|
description: SpringBlade 接口文档系统
|
||||||
version: 3.5.0
|
version: 3.6.0
|
||||||
license: Powered By SpringBlade
|
license: Powered By SpringBlade
|
||||||
licenseUrl: https://bladex.vip
|
licenseUrl: https://bladex.vip
|
||||||
terms-of-service-url: https://bladex.vip
|
terms-of-service-url: https://bladex.vip
|
||||||
@ -81,6 +81,7 @@ swagger:
|
|||||||
#blade配置
|
#blade配置
|
||||||
blade:
|
blade:
|
||||||
token:
|
token:
|
||||||
|
#使用 blade-auth服务 @org.springblade.test.SignKeyGenerator 获取
|
||||||
sign-key: 请配置32位签名提高安全性
|
sign-key: 请配置32位签名提高安全性
|
||||||
xss:
|
xss:
|
||||||
enabled: true
|
enabled: true
|
||||||
|
@ -1,115 +0,0 @@
|
|||||||
|
|
||||||
-- ----------------------------
|
|
||||||
-- 创建数据权限表
|
|
||||||
-- ----------------------------
|
|
||||||
CREATE TABLE `blade_scope_data` (
|
|
||||||
`id` bigint(20) NOT NULL COMMENT '主键',
|
|
||||||
`menu_id` bigint(20) NULL DEFAULT NULL COMMENT '菜单主键',
|
|
||||||
`resource_code` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '资源编号',
|
|
||||||
`scope_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '数据权限名称',
|
|
||||||
`scope_field` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '数据权限字段',
|
|
||||||
`scope_class` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '数据权限类名',
|
|
||||||
`scope_column` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '数据权限字段',
|
|
||||||
`scope_type` int(2) NULL DEFAULT NULL COMMENT '数据权限类型',
|
|
||||||
`scope_value` varchar(2000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '数据权限值域',
|
|
||||||
`remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '数据权限备注',
|
|
||||||
`create_user` bigint(20) NULL DEFAULT NULL COMMENT '创建人',
|
|
||||||
`create_dept` bigint(20) NULL DEFAULT NULL COMMENT '创建部门',
|
|
||||||
`create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间',
|
|
||||||
`update_user` bigint(20) NULL DEFAULT NULL COMMENT '修改人',
|
|
||||||
`update_time` datetime(0) NULL DEFAULT NULL COMMENT '修改时间',
|
|
||||||
`status` int(2) NULL DEFAULT NULL COMMENT '状态',
|
|
||||||
`is_deleted` int(2) NULL DEFAULT NULL COMMENT '是否已删除',
|
|
||||||
PRIMARY KEY (`id`) USING BTREE
|
|
||||||
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '数据权限表';
|
|
||||||
|
|
||||||
|
|
||||||
-- ----------------------------
|
|
||||||
-- 创建数据权限角色表
|
|
||||||
-- ----------------------------
|
|
||||||
DROP TABLE IF EXISTS `blade_role_scope`;
|
|
||||||
CREATE TABLE `blade_role_scope` (
|
|
||||||
`id` bigint(20) NOT NULL COMMENT '主键',
|
|
||||||
`scope_id` bigint(20) NULL DEFAULT NULL COMMENT '数据权限id',
|
|
||||||
`role_id` bigint(20) NULL DEFAULT NULL COMMENT '角色id',
|
|
||||||
PRIMARY KEY (`id`) USING BTREE
|
|
||||||
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci;
|
|
||||||
|
|
||||||
SET FOREIGN_KEY_CHECKS = 1;
|
|
||||||
|
|
||||||
-- ----------------------------
|
|
||||||
-- 部门表增加字段
|
|
||||||
-- ----------------------------
|
|
||||||
ALTER TABLE `blade_dept`
|
|
||||||
ADD COLUMN `ancestors` varchar(2000) NULL COMMENT '祖级列表' AFTER `parent_id`;
|
|
||||||
|
|
||||||
UPDATE `blade_dept` SET `tenant_id` = '000000', `parent_id` = 0, `ancestors` = '0', `dept_name` = '刀锋科技', `full_name` = '江苏刀锋科技有限公司', `sort` = 1, `remark` = NULL, `is_deleted` = 0 WHERE `id` = 1123598813738675201;
|
|
||||||
UPDATE `blade_dept` SET `tenant_id` = '000000', `parent_id` = 1123598813738675201, `ancestors` = '0,1123598813738675201', `dept_name` = '常州刀锋', `full_name` = '常州刀锋科技有限公司', `sort` = 1, `remark` = NULL, `is_deleted` = 0 WHERE `id` = 1123598813738675202;
|
|
||||||
UPDATE `blade_dept` SET `tenant_id` = '000000', `parent_id` = 1123598813738675201, `ancestors` = '0,1123598813738675201', `dept_name` = '苏州刀锋', `full_name` = '苏州刀锋科技有限公司', `sort` = 1, `remark` = NULL, `is_deleted` = 0 WHERE `id` = 1123598813738675203;
|
|
||||||
|
|
||||||
-- ----------------------------
|
|
||||||
-- 增加字典项
|
|
||||||
-- ----------------------------
|
|
||||||
INSERT INTO `blade_dict`(`id`, `parent_id`, `code`, `dict_key`, `dict_value`, `sort`, `remark`, `is_deleted`) VALUES (1123598814738675231, 0, 'data_scope_type', -1, '数据权限', 8, NULL, 0);
|
|
||||||
INSERT INTO `blade_dict`(`id`, `parent_id`, `code`, `dict_key`, `dict_value`, `sort`, `remark`, `is_deleted`) VALUES (1123598814738675232, 1123598814738675231, 'data_scope_type', 1, '全部可见', 1, NULL, 0);
|
|
||||||
INSERT INTO `blade_dict`(`id`, `parent_id`, `code`, `dict_key`, `dict_value`, `sort`, `remark`, `is_deleted`) VALUES (1123598814738675233, 1123598814738675231, 'data_scope_type', 2, '本人可见', 2, NULL, 0);
|
|
||||||
INSERT INTO `blade_dict`(`id`, `parent_id`, `code`, `dict_key`, `dict_value`, `sort`, `remark`, `is_deleted`) VALUES (1123598814738675234, 1123598814738675231, 'data_scope_type', 3, '所在机构可见', 3, NULL, 0);
|
|
||||||
INSERT INTO `blade_dict`(`id`, `parent_id`, `code`, `dict_key`, `dict_value`, `sort`, `remark`, `is_deleted`) VALUES (1123598814738675235, 1123598814738675231, 'data_scope_type', 4, '所在机构及子级可见', 4, NULL, 0);
|
|
||||||
INSERT INTO `blade_dict`(`id`, `parent_id`, `code`, `dict_key`, `dict_value`, `sort`, `remark`, `is_deleted`) VALUES (1123598814738675236, 1123598814738675231, 'data_scope_type', 5, '自定义', 5, NULL, 0);
|
|
||||||
|
|
||||||
|
|
||||||
-- ----------------------------
|
|
||||||
-- 增加权限管理模块
|
|
||||||
-- ----------------------------
|
|
||||||
INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`) VALUES (1123598815738675307, 0, 'authority', '权限管理', 'menu', '/authority', 'iconfont icon-bofangqi-suoping', 98, 1, 0, 1, '', 0);
|
|
||||||
|
|
||||||
-- ----------------------------
|
|
||||||
-- 角色管理迁移至权限管理
|
|
||||||
-- ----------------------------
|
|
||||||
DELETE FROM `blade_menu` WHERE ID = 1123598815738675208;
|
|
||||||
INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`) VALUES (1123598815738675308, 1123598815738675307, 'role', '角色管理', 'menu', '/authority/role', 'iconfont iconicon_boss', 1, 1, 0, 1, NULL, 0);
|
|
||||||
UPDATE `blade_menu` SET `parent_id` = 1123598815738675308, `code` = 'role_add', `name` = '新增', `alias` = 'add', `path` = '/authority/role/add', `source` = 'plus', `sort` = 1, `category` = 2, `action` = 1, `is_open` = 1, `remark` = NULL, `is_deleted` = 0 WHERE `id` = 1123598815738675241;
|
|
||||||
UPDATE `blade_menu` SET `parent_id` = 1123598815738675308, `code` = 'role_edit', `name` = '修改', `alias` = 'edit', `path` = '/authority/role/edit', `source` = 'form', `sort` = 2, `category` = 2, `action` = 2, `is_open` = 1, `remark` = NULL, `is_deleted` = 0 WHERE `id` = 1123598815738675242;
|
|
||||||
UPDATE `blade_menu` SET `parent_id` = 1123598815738675308, `code` = 'role_delete', `name` = '删除', `alias` = 'delete', `path` = '/api/blade-system/role/remove', `source` = 'delete', `sort` = 3, `category` = 2, `action` = 3, `is_open` = 1, `remark` = NULL, `is_deleted` = 0 WHERE `id` = 1123598815738675243;
|
|
||||||
UPDATE `blade_menu` SET `parent_id` = 1123598815738675308, `code` = 'role_view', `name` = '查看', `alias` = 'view', `path` = '/authority/role/view', `source` = 'file-text', `sort` = 4, `category` = 2, `action` = 2, `is_open` = 1, `remark` = NULL, `is_deleted` = 0 WHERE `id` = 1123598815738675244;
|
|
||||||
|
|
||||||
|
|
||||||
-- ----------------------------
|
|
||||||
-- 增加数据权限及接口权限独立菜单
|
|
||||||
-- ----------------------------
|
|
||||||
INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`) VALUES (1123598815738675309, 1123598815738675307, 'data_scope', '数据权限', 'menu', '/authority/datascope', 'iconfont icon-shujuzhanshi2', 2, 1, 0, 1, '', 0);
|
|
||||||
INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`) VALUES (1123598815738675310, 1123598815738675309, 'data_scope_setting', '权限配置', 'setting', NULL, 'setting', 1, 2, 2, 1, NULL, 0);
|
|
||||||
|
|
||||||
|
|
||||||
-- ----------------------------
|
|
||||||
-- 增加数据权限及菜单权限
|
|
||||||
-- ----------------------------
|
|
||||||
INSERT INTO `blade_role_menu`(`id`, `menu_id`, `role_id`) VALUES (1455363615489028098, 1123598815738675307, 1123598816738675201);
|
|
||||||
INSERT INTO `blade_role_menu`(`id`, `menu_id`, `role_id`) VALUES (1455363615505805313, 1123598815738675309, 1123598816738675201);
|
|
||||||
INSERT INTO `blade_role_menu`(`id`, `menu_id`, `role_id`) VALUES (1455363615518388225, 1123598815738675310, 1123598816738675201);
|
|
||||||
|
|
||||||
|
|
||||||
-- ----------------------------
|
|
||||||
-- 增加create_dept字段并赋默认值
|
|
||||||
-- ----------------------------
|
|
||||||
ALTER TABLE `blade_client`
|
|
||||||
ADD COLUMN `create_dept` bigint(20) NULL COMMENT '创建部门' AFTER `create_user`;
|
|
||||||
ALTER TABLE `blade_notice`
|
|
||||||
ADD COLUMN `create_dept` bigint(20) NULL COMMENT '创建部门' AFTER `create_user`;
|
|
||||||
ALTER TABLE `blade_param`
|
|
||||||
ADD COLUMN `create_dept` bigint(20) NULL COMMENT '创建部门' AFTER `create_user`;
|
|
||||||
ALTER TABLE `blade_tenant`
|
|
||||||
ADD COLUMN `create_dept` bigint(20) NULL COMMENT '创建部门' AFTER `create_user`;
|
|
||||||
ALTER TABLE `blade_user`
|
|
||||||
ADD COLUMN `create_dept` bigint(20) NULL COMMENT '创建部门' AFTER `create_user`;
|
|
||||||
|
|
||||||
UPDATE `blade_client` SET create_dept = 1123598813738675201 WHERE create_dept IS NULL;
|
|
||||||
UPDATE `blade_notice` SET create_dept = 1123598813738675201 WHERE create_dept IS NULL;
|
|
||||||
UPDATE `blade_param` SET create_dept = 1123598813738675201 WHERE create_dept IS NULL;
|
|
||||||
UPDATE `blade_tenant` SET create_dept = 1123598813738675201 WHERE create_dept IS NULL;
|
|
||||||
UPDATE `blade_user` SET create_dept = 1123598813738675201 WHERE create_dept IS NULL;
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
55
pom.xml
55
pom.xml
@ -5,30 +5,29 @@
|
|||||||
|
|
||||||
<groupId>org.springblade</groupId>
|
<groupId>org.springblade</groupId>
|
||||||
<artifactId>SpringBlade</artifactId>
|
<artifactId>SpringBlade</artifactId>
|
||||||
<version>3.5.0</version>
|
<version>3.6.0</version>
|
||||||
<packaging>pom</packaging>
|
<packaging>pom</packaging>
|
||||||
|
|
||||||
<properties>
|
<properties>
|
||||||
<blade.tool.version>3.5.0</blade.tool.version>
|
<blade.tool.version>3.6.0</blade.tool.version>
|
||||||
<blade.project.version>3.5.0</blade.project.version>
|
<blade.project.version>3.6.0</blade.project.version>
|
||||||
|
|
||||||
<java.version>1.8</java.version>
|
<java.version>1.8</java.version>
|
||||||
<maven.plugin.version>3.8.1</maven.plugin.version>
|
<maven.plugin.version>3.8.1</maven.plugin.version>
|
||||||
<swagger.version>2.10.5</swagger.version>
|
|
||||||
<swagger.models.version>1.6.2</swagger.models.version>
|
<knife4j.version>4.1.0</knife4j.version>
|
||||||
<knife4j.version>2.0.9</knife4j.version>
|
|
||||||
<protostuff.version>1.6.0</protostuff.version>
|
<protostuff.version>1.6.0</protostuff.version>
|
||||||
<captcha.version>1.6.2</captcha.version>
|
<captcha.version>1.6.2</captcha.version>
|
||||||
<easyexcel.version>2.2.6</easyexcel.version>
|
<easyexcel.version>2.2.11</easyexcel.version>
|
||||||
<mica.auto.version>1.2.5</mica.auto.version>
|
<mica.auto.version>2.3.2</mica.auto.version>
|
||||||
<alibaba.cloud.version>2021.0.1.0</alibaba.cloud.version>
|
<mysql.connector.version>8.0.32</mysql.connector.version>
|
||||||
<alibaba.nacos.version>2.1.0</alibaba.nacos.version>
|
|
||||||
<spring.boot.admin.version>2.7.1</spring.boot.admin.version>
|
|
||||||
<spring.plugin.version>2.0.0.RELEASE</spring.plugin.version>
|
|
||||||
|
|
||||||
<spring.boot.version>2.7.1</spring.boot.version>
|
<spring.version>5.3.27</spring.version>
|
||||||
<spring.cloud.version>2021.0.3</spring.cloud.version>
|
<spring.boot.version>2.7.10</spring.boot.version>
|
||||||
<spring.platform.version>Cairo-SR8</spring.platform.version>
|
<spring.boot.admin.version>2.7.10</spring.boot.admin.version>
|
||||||
|
<spring.cloud.version>2021.0.6</spring.cloud.version>
|
||||||
|
<alibaba.cloud.version>2021.0.5.0</alibaba.cloud.version>
|
||||||
|
<alibaba.nacos.version>2.1.2</alibaba.nacos.version>
|
||||||
|
|
||||||
<!-- 推荐使用Harbor -->
|
<!-- 推荐使用Harbor -->
|
||||||
<docker.registry.url>10.211.55.5</docker.registry.url>
|
<docker.registry.url>10.211.55.5</docker.registry.url>
|
||||||
@ -48,14 +47,11 @@
|
|||||||
<dependencyManagement>
|
<dependencyManagement>
|
||||||
<dependencies>
|
<dependencies>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.springframework.plugin</groupId>
|
<groupId>org.springframework</groupId>
|
||||||
<artifactId>spring-plugin-core</artifactId>
|
<artifactId>spring-framework-bom</artifactId>
|
||||||
<version>${spring.plugin.version}</version>
|
<version>${spring.version}</version>
|
||||||
</dependency>
|
<type>pom</type>
|
||||||
<dependency>
|
<scope>import</scope>
|
||||||
<groupId>org.springframework.plugin</groupId>
|
|
||||||
<artifactId>spring-plugin-metadata</artifactId>
|
|
||||||
<version>${spring.plugin.version}</version>
|
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.springframework.boot</groupId>
|
<groupId>org.springframework.boot</groupId>
|
||||||
@ -72,9 +68,16 @@
|
|||||||
<scope>import</scope>
|
<scope>import</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>io.spring.platform</groupId>
|
<groupId>com.alibaba.cloud</groupId>
|
||||||
<artifactId>platform-bom</artifactId>
|
<artifactId>spring-cloud-alibaba-dependencies</artifactId>
|
||||||
<version>${spring.platform.version}</version>
|
<version>${alibaba.cloud.version}</version>
|
||||||
|
<type>pom</type>
|
||||||
|
<scope>import</scope>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.github.xiaoymin</groupId>
|
||||||
|
<artifactId>knife4j-dependencies</artifactId>
|
||||||
|
<version>${knife4j.version}</version>
|
||||||
<type>pom</type>
|
<type>pom</type>
|
||||||
<scope>import</scope>
|
<scope>import</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
@ -1,2 +1,2 @@
|
|||||||
REGISTER=192.168.0.157/blade
|
REGISTER=192.168.0.157/blade
|
||||||
TAG=3.5.0
|
TAG=3.6.0
|
||||||
|
@ -33,9 +33,9 @@ mount(){
|
|||||||
cp nginx/web/nginx.conf /docker/nginx/web/nginx.conf
|
cp nginx/web/nginx.conf /docker/nginx/web/nginx.conf
|
||||||
cp -r nginx/web/html /docker/nginx/web/html
|
cp -r nginx/web/html /docker/nginx/web/html
|
||||||
fi
|
fi
|
||||||
if test ! -f "/docker/nacos/init.d/custom.properties" ;then
|
if test ! -f "/docker/nacos/conf/application.properties" ;then
|
||||||
mkdir -p /docker/nacos/init.d
|
mkdir -p /docker/nacos/conf
|
||||||
cp nacos/init.d/custom.properties /docker/nacos/init.d/custom.properties
|
cp nacos/conf/application.properties /docker/nacos/conf/application.properties
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,13 +1,14 @@
|
|||||||
version: '3'
|
version: '3'
|
||||||
services:
|
services:
|
||||||
nacos:
|
nacos:
|
||||||
image: nacos/nacos-server:2.0.2
|
image: nacos/nacos-server:v2.1.2
|
||||||
hostname: "nacos-standalone"
|
hostname: "nacos-standalone"
|
||||||
environment:
|
environment:
|
||||||
- MODE=standalone
|
- MODE=standalone
|
||||||
|
- TZ=Asia/Shanghai
|
||||||
volumes:
|
volumes:
|
||||||
- /docker/nacos/standalone-logs/:/home/nacos/logs
|
- /docker/nacos/standalone-logs/:/home/nacos/logs
|
||||||
- /docker/nacos/init.d/custom.properties:/home/nacos/init.d/custom.properties
|
- /docker/nacos/conf/application.properties:/home/nacos/conf/application.properties
|
||||||
ports:
|
ports:
|
||||||
- 8848:8848
|
- 8848:8848
|
||||||
- 9848:9848
|
- 9848:9848
|
||||||
|
46
script/docker/nacos/conf/application.properties
Normal file
46
script/docker/nacos/conf/application.properties
Normal file
@ -0,0 +1,46 @@
|
|||||||
|
# spring
|
||||||
|
server.servlet.contextPath=${SERVER_SERVLET_CONTEXTPATH:/nacos}
|
||||||
|
server.contextPath=/nacos
|
||||||
|
server.port=${NACOS_APPLICATION_PORT:8848}
|
||||||
|
server.tomcat.accesslog.max-days=30
|
||||||
|
server.tomcat.accesslog.pattern=%h %l %u %t "%r" %s %b %D %{User-Agent}i %{Request-Source}i
|
||||||
|
spring.datasource.platform=${SPRING_DATASOURCE_PLATFORM:""}
|
||||||
|
nacos.cmdb.dumpTaskInterval=3600
|
||||||
|
nacos.cmdb.eventTaskInterval=10
|
||||||
|
nacos.cmdb.labelTaskInterval=300
|
||||||
|
nacos.cmdb.loadDataAtStart=false
|
||||||
|
db.num=${MYSQL_DATABASE_NUM:1}
|
||||||
|
db.url.0=jdbc:mysql://${MYSQL_SERVICE_HOST}:${MYSQL_SERVICE_PORT:3306}/${MYSQL_SERVICE_DB_NAME}?${MYSQL_SERVICE_DB_PARAM:characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useSSL=false}
|
||||||
|
db.url.1=jdbc:mysql://${MYSQL_SERVICE_HOST}:${MYSQL_SERVICE_PORT:3306}/${MYSQL_SERVICE_DB_NAME}?${MYSQL_SERVICE_DB_PARAM:characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useSSL=false}
|
||||||
|
db.user=${MYSQL_SERVICE_USER}
|
||||||
|
db.password=${MYSQL_SERVICE_PASSWORD}
|
||||||
|
### The auth system to use, currently only 'nacos' and 'ldap' is supported:
|
||||||
|
nacos.core.auth.system.type=${NACOS_AUTH_SYSTEM_TYPE:nacos}
|
||||||
|
### worked when nacos.core.auth.system.type=nacos
|
||||||
|
### The token expiration in seconds:
|
||||||
|
nacos.core.auth.plugin.nacos.token.expire.seconds=${NACOS_AUTH_TOKEN_EXPIRE_SECONDS:18000}
|
||||||
|
### The default token:
|
||||||
|
nacos.core.auth.plugin.nacos.token.secret.key=${NACOS_AUTH_TOKEN:SecretKey012345678901234567890123456789012345678901234567890123456789}
|
||||||
|
### Turn on/off caching of auth information. By turning on this switch, the update of auth information would have a 15 seconds delay.
|
||||||
|
nacos.core.auth.caching.enabled=${NACOS_AUTH_CACHE_ENABLE:false}
|
||||||
|
nacos.core.auth.enable.userAgentAuthWhite=${NACOS_AUTH_USER_AGENT_AUTH_WHITE_ENABLE:false}
|
||||||
|
nacos.core.auth.server.identity.key=${NACOS_AUTH_IDENTITY_KEY:serverIdentity}
|
||||||
|
nacos.core.auth.server.identity.value=${NACOS_AUTH_IDENTITY_VALUE:security}
|
||||||
|
server.tomcat.accesslog.enabled=${TOMCAT_ACCESSLOG_ENABLED:false}
|
||||||
|
# default current work dir
|
||||||
|
server.tomcat.basedir=file:.
|
||||||
|
## spring security config
|
||||||
|
### turn off security
|
||||||
|
nacos.security.ignore.urls=${NACOS_SECURITY_IGNORE_URLS:/,/error,/**/*.css,/**/*.js,/**/*.html,/**/*.map,/**/*.svg,/**/*.png,/**/*.ico,/console-fe/public/**,/v1/auth/**,/v1/console/health/**,/actuator/**,/v1/console/server/**}
|
||||||
|
# metrics for elastic search
|
||||||
|
management.metrics.export.elastic.enabled=false
|
||||||
|
management.metrics.export.influx.enabled=false
|
||||||
|
nacos.naming.distro.taskDispatchThreadCount=10
|
||||||
|
nacos.naming.distro.taskDispatchPeriod=200
|
||||||
|
nacos.naming.distro.batchSyncKeyCount=1000
|
||||||
|
nacos.naming.distro.initDataRatio=0.9
|
||||||
|
nacos.naming.distro.syncRetryDelay=5000
|
||||||
|
nacos.naming.data.warmup=true
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -1,19 +0,0 @@
|
|||||||
#spring.security.enabled=false
|
|
||||||
#management.security=false
|
|
||||||
#security.basic.enabled=false
|
|
||||||
#nacos.security.ignore.urls=/**
|
|
||||||
#management.metrics.export.elastic.host=http://localhost:9200
|
|
||||||
# metrics for prometheus
|
|
||||||
management.endpoints.web.exposure.include=*
|
|
||||||
|
|
||||||
# metrics for elastic search
|
|
||||||
#management.metrics.export.elastic.enabled=false
|
|
||||||
#management.metrics.export.elastic.host=http://localhost:9200
|
|
||||||
|
|
||||||
# metrics for influx
|
|
||||||
#management.metrics.export.influx.enabled=false
|
|
||||||
#management.metrics.export.influx.db=springboot
|
|
||||||
#management.metrics.export.influx.uri=http://localhost:8086
|
|
||||||
#management.metrics.export.influx.auto-create-db=true
|
|
||||||
#management.metrics.export.influx.consistency=one
|
|
||||||
#management.metrics.export.influx.compressed=true
|
|
@ -152,7 +152,7 @@ spec:
|
|||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
- name: blade-admin
|
- name: blade-admin
|
||||||
image: 'swr.cn-east-2.myhuaweicloud.com/blade/blade-admin:3.5.0'
|
image: 'swr.cn-east-2.myhuaweicloud.com/blade/blade-admin:3.6.0'
|
||||||
args:
|
args:
|
||||||
- '--spring.profiles.active=${PROFILE}'
|
- '--spring.profiles.active=${PROFILE}'
|
||||||
- '--spring.cloud.nacos.config.server-addr=${NACOS_SERVER_ADDR}'
|
- '--spring.cloud.nacos.config.server-addr=${NACOS_SERVER_ADDR}'
|
||||||
@ -386,7 +386,7 @@ spec:
|
|||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
- name: blade-auth
|
- name: blade-auth
|
||||||
image: 'swr.cn-east-2.myhuaweicloud.com/blade/blade-auth:3.5.0'
|
image: 'swr.cn-east-2.myhuaweicloud.com/blade/blade-auth:3.6.0'
|
||||||
args:
|
args:
|
||||||
- '--spring.profiles.active=${PROFILE}'
|
- '--spring.profiles.active=${PROFILE}'
|
||||||
- '--spring.cloud.nacos.config.server-addr=${NACOS_SERVER_ADDR}'
|
- '--spring.cloud.nacos.config.server-addr=${NACOS_SERVER_ADDR}'
|
||||||
@ -625,7 +625,7 @@ spec:
|
|||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
- name: blade-desk
|
- name: blade-desk
|
||||||
image: 'swr.cn-east-2.myhuaweicloud.com/blade/blade-desk:3.5.0'
|
image: 'swr.cn-east-2.myhuaweicloud.com/blade/blade-desk:3.6.0'
|
||||||
args:
|
args:
|
||||||
- '--spring.profiles.active=${PROFILE}'
|
- '--spring.profiles.active=${PROFILE}'
|
||||||
- '--spring.cloud.nacos.config.server-addr=${NACOS_SERVER_ADDR}'
|
- '--spring.cloud.nacos.config.server-addr=${NACOS_SERVER_ADDR}'
|
||||||
@ -864,7 +864,7 @@ spec:
|
|||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
- name: blade-develop
|
- name: blade-develop
|
||||||
image: 'swr.cn-east-2.myhuaweicloud.com/blade/blade-develop:3.5.0'
|
image: 'swr.cn-east-2.myhuaweicloud.com/blade/blade-develop:3.6.0'
|
||||||
args:
|
args:
|
||||||
- '--spring.profiles.active=${PROFILE}'
|
- '--spring.profiles.active=${PROFILE}'
|
||||||
- '--spring.cloud.nacos.config.server-addr=${NACOS_SERVER_ADDR}'
|
- '--spring.cloud.nacos.config.server-addr=${NACOS_SERVER_ADDR}'
|
||||||
@ -1096,7 +1096,7 @@ spec:
|
|||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
- name: blade-gateway
|
- name: blade-gateway
|
||||||
image: 'swr.cn-east-2.myhuaweicloud.com/blade/blade-gateway:3.5.0'
|
image: 'swr.cn-east-2.myhuaweicloud.com/blade/blade-gateway:3.6.0'
|
||||||
args:
|
args:
|
||||||
- '--spring.profiles.active=${PROFILE}'
|
- '--spring.profiles.active=${PROFILE}'
|
||||||
- '--spring.cloud.nacos.config.server-addr=${NACOS_SERVER_ADDR}'
|
- '--spring.cloud.nacos.config.server-addr=${NACOS_SERVER_ADDR}'
|
||||||
@ -1331,7 +1331,7 @@ spec:
|
|||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
- name: blade-log
|
- name: blade-log
|
||||||
image: 'swr.cn-east-2.myhuaweicloud.com/blade/blade-log:3.5.0'
|
image: 'swr.cn-east-2.myhuaweicloud.com/blade/blade-log:3.6.0'
|
||||||
args:
|
args:
|
||||||
- '--spring.profiles.active=${PROFILE}'
|
- '--spring.profiles.active=${PROFILE}'
|
||||||
- '--spring.cloud.nacos.config.server-addr=${NACOS_SERVER_ADDR}'
|
- '--spring.cloud.nacos.config.server-addr=${NACOS_SERVER_ADDR}'
|
||||||
@ -1565,7 +1565,7 @@ spec:
|
|||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
- name: blade-report
|
- name: blade-report
|
||||||
image: 'swr.cn-east-2.myhuaweicloud.com/blade/blade-report:3.5.0'
|
image: 'swr.cn-east-2.myhuaweicloud.com/blade/blade-report:3.6.0'
|
||||||
args:
|
args:
|
||||||
- '--spring.profiles.active=${PROFILE}'
|
- '--spring.profiles.active=${PROFILE}'
|
||||||
- '--spring.cloud.nacos.config.server-addr=${NACOS_SERVER_ADDR}'
|
- '--spring.cloud.nacos.config.server-addr=${NACOS_SERVER_ADDR}'
|
||||||
@ -1799,7 +1799,7 @@ spec:
|
|||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
- name: blade-resource
|
- name: blade-resource
|
||||||
image: 'swr.cn-east-2.myhuaweicloud.com/blade/blade-resource:3.5.0'
|
image: 'swr.cn-east-2.myhuaweicloud.com/blade/blade-resource:3.6.0'
|
||||||
args:
|
args:
|
||||||
- '--spring.profiles.active=${PROFILE}'
|
- '--spring.profiles.active=${PROFILE}'
|
||||||
- '--spring.cloud.nacos.config.server-addr=${NACOS_SERVER_ADDR}'
|
- '--spring.cloud.nacos.config.server-addr=${NACOS_SERVER_ADDR}'
|
||||||
@ -2033,7 +2033,7 @@ spec:
|
|||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
- name: blade-system
|
- name: blade-system
|
||||||
image: 'swr.cn-east-2.myhuaweicloud.com/blade/blade-system:3.5.0'
|
image: 'swr.cn-east-2.myhuaweicloud.com/blade/blade-system:3.6.0'
|
||||||
args:
|
args:
|
||||||
- '--spring.profiles.active=${PROFILE}'
|
- '--spring.profiles.active=${PROFILE}'
|
||||||
- '--spring.cloud.nacos.config.server-addr=${NACOS_SERVER_ADDR}'
|
- '--spring.cloud.nacos.config.server-addr=${NACOS_SERVER_ADDR}'
|
||||||
@ -2267,7 +2267,7 @@ spec:
|
|||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
- name: blade-user
|
- name: blade-user
|
||||||
image: 'swr.cn-east-2.myhuaweicloud.com/blade/blade-user:3.5.0'
|
image: 'swr.cn-east-2.myhuaweicloud.com/blade/blade-user:3.6.0'
|
||||||
args:
|
args:
|
||||||
- '--spring.profiles.active=${PROFILE}'
|
- '--spring.profiles.active=${PROFILE}'
|
||||||
- '--spring.cloud.nacos.config.server-addr=${NACOS_SERVER_ADDR}'
|
- '--spring.cloud.nacos.config.server-addr=${NACOS_SERVER_ADDR}'
|
||||||
@ -2496,7 +2496,7 @@ spec:
|
|||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
- name: saber-web
|
- name: saber-web
|
||||||
image: 'swr.cn-east-2.myhuaweicloud.com/blade/saber-web:3.5.0'
|
image: 'swr.cn-east-2.myhuaweicloud.com/blade/saber-web:3.6.0'
|
||||||
ports:
|
ports:
|
||||||
- name: web
|
- name: web
|
||||||
containerPort: 80
|
containerPort: 80
|
||||||
@ -2721,7 +2721,7 @@ spec:
|
|||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
- name: blade-swagger
|
- name: blade-swagger
|
||||||
image: 'swr.cn-east-2.myhuaweicloud.com/blade/blade-swagger:3.5.0'
|
image: 'swr.cn-east-2.myhuaweicloud.com/blade/blade-swagger:3.6.0'
|
||||||
args:
|
args:
|
||||||
- '--spring.profiles.active=${PROFILE}'
|
- '--spring.profiles.active=${PROFILE}'
|
||||||
- '--spring.cloud.nacos.config.server-addr=${NACOS_SERVER_ADDR}'
|
- '--spring.cloud.nacos.config.server-addr=${NACOS_SERVER_ADDR}'
|
||||||
@ -3749,7 +3749,7 @@ spec:
|
|||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
- name: mysql
|
- name: mysql
|
||||||
image: 'swr.cn-east-2.myhuaweicloud.com/blade/saber-db:v3.5.0'
|
image: 'swr.cn-east-2.myhuaweicloud.com/blade/saber-db:v3.6.0'
|
||||||
ports:
|
ports:
|
||||||
- name: mysql
|
- name: mysql
|
||||||
containerPort: 3306
|
containerPort: 3306
|
||||||
|
Loading…
Reference in New Issue
Block a user