Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

合并主分支 #1241

Merged
merged 8 commits into from
Oct 12, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -136,7 +136,7 @@

👍 我们正在组建国内最大,最权威的 **[Kafka中文社区](https://z.didi.cn/5gSF9)**

在这里你可以结交各大互联网的 Kafka大佬 以及 4000+ Kafka爱好者,一起实现知识共享,实时掌控最新行业资讯,期待 👏   您的加入中~ https://z.didi.cn/5gSF9
在这里你可以结交各大互联网的 Kafka大佬 以及 6200+ Kafka爱好者,一起实现知识共享,实时掌控最新行业资讯,期待 👏   您的加入中~ https://z.didi.cn/5gSF9

有问必答~! 互动有礼~!

Expand All @@ -146,7 +146,7 @@ PS: 提问请尽量把问题一次性描述清楚,并告知环境信息情况

**`2、微信群`**

微信加群:添加`PenceXie` 、`szzdzhp001`的微信号备注KnowStreaming加群。
微信加群:添加`PenceXie` 的微信号备注KnowStreaming加群。
<br/>

加群之前有劳点一下 star,一个小小的 star 是对KnowStreaming作者们努力建设社区的动力。
Expand Down
115 changes: 115 additions & 0 deletions docs/dev_guide/MYSQL密码加密手册.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,115 @@
## YML文件MYSQL密码加密存储手册

### 1、本地部署加密

**第一步:生成密文**

在本地仓库中找到jasypt-1.9.3.jar,默认在org/jasypt/jasypt/1.9.3中,使用`java -cp`生成密文。

```bash
java -cp jasypt-1.9.3.jar org.jasypt.intf.cli.JasyptPBEStringEncryptionCLI input=mysql密码 password=加密的salt algorithm=PBEWithMD5AndDES
```

```bash
## 得到密文
DYbVDLg5D0WRcJSCUGWjiw==
```

**第二步:配置jasypt**

在YML文件中配置jasypt,例如

```yaml
jasypt:
encryptor:
algorithm: PBEWithMD5AndDES
iv-generator-classname: org.jasypt.iv.NoIvGenerator
```

**第三步:配置密文**

使用密文替换YML文件中的明文密码为ENC(密文),例如[application.yml](https://github.com/didi/KnowStreaming/blob/master/km-rest/src/main/resources/application.yml)中MYSQL密码。

```yaml
know-streaming:
username: root
password: ENC(DYbVDLg5D0WRcJSCUGWjiw==)
```

**第四步:配置加密的salt(选择其一)**

- 配置在YML文件中(不推荐)

```yaml
jasypt:
encryptor:
password: salt
```

- 配置程序启动时的命令行参数

```bash
java -jar xxx.jar --jasypt.encryptor.password=salt
```

- 配置程序启动时的环境变量

```bash
export JASYPT_PASSWORD=salt
java -jar xxx.jar --jasypt.encryptor.password=${JASYPT_PASSWORD}
```

## 2、容器部署加密

利用docker swarm 提供的 secret 机制加密存储密码,使用docker swarm来管理密码。

### 2.1、secret加密存储

**第一步:初始化docker swarm**

```bash
docker swarm init
```

**第二步:创建密钥**

```bash
echo "admin2022_" | docker secret create mysql_password -

# 输出密钥
f964wi4gg946hu78quxsh2ge9
```

**第三步:使用密钥**

```yaml
# mysql用户密码
SERVER_MYSQL_USER: root
SERVER_MYSQL_PASSWORD: mysql_password

knowstreaming-mysql:
# root 用户密码
MYSQL_ROOT_PASSWORD: mysql_password
secrets:
mysql_password:
external: true
```

### 2.2、使用密钥文件加密

**第一步:创建密钥**

```bash
echo "admin2022_" > password
```

**第二步:使用密钥**

```yaml
# mysql用户密码
SERVER_MYSQL_USER: root
SERVER_MYSQL_PASSWORD: mysql_password
secrets:
mysql_password:
file: ./password
```
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ const ExpandPartition = (props: { record: any; onConfirm: () => void }) => {

setLoading(true);
const metricParams = {
aggType: 'avg',
aggType: 'sum',
endTime: Math.round(endStamp),
metricsNames: ['BytesIn', 'BytesOut'],
startTime: Math.round(startStamp),
Expand Down
2 changes: 0 additions & 2 deletions km-console/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -32,8 +32,6 @@
<configuration>
<nodeVersion>v12.22.12</nodeVersion>
<npmVersion>6.14.16</npmVersion>
<nodeDownloadRoot>https://npm.taobao.org/mirrors/node/</nodeDownloadRoot>
<npmDownloadRoot>https://registry.npm.taobao.org/npm/-/</npmDownloadRoot>
</configuration>
</execution>
<execution>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@

import javax.annotation.PostConstruct;
import java.util.*;
import java.util.stream.Collectors;

import static com.xiaojukeji.know.streaming.km.common.enums.version.VersionEnum.*;

Expand Down Expand Up @@ -154,9 +155,11 @@ private Result<List<KafkaConfigDetail>> getBrokerConfigByZKClient(VersionItemPar
if (propertiesResult.failed()) {
return Result.buildFromIgnoreData(propertiesResult);
}
List<String> configKeyList = propertiesResult.getData().keySet().stream().map(Object::toString).collect(Collectors.toList());


return Result.buildSuc(KafkaConfigConverter.convert2KafkaBrokerConfigDetailList(
new ArrayList<>(),
configKeyList,
propertiesResult.getData()
));
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,13 @@
}
}
},
{
"term": {
"brokerAgg" : {
"value": "1"
}
}
},
{
"range": {
"timestamp": {
Expand Down
6 changes: 6 additions & 0 deletions km-rest/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -138,6 +138,12 @@
<version>${springboot.version}</version>
</dependency>

<dependency>
<groupId>com.github.ulisesbocchio</groupId>
<artifactId>jasypt-spring-boot-starter</artifactId>
<version>3.0.5</version>
</dependency>

<!--testcontainers-->
<dependency>
<groupId>org.testcontainers</groupId>
Expand Down
Loading