Compare commits
23 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
0f6d84dab2 | ||
|
|
f64eb395a8 | ||
|
|
2e69c67de0 | ||
|
|
7747b4e52e | ||
|
|
830622aafb | ||
|
|
2919950c5b | ||
|
|
d56cfbba82 | ||
|
|
cfe1924f11 | ||
|
|
dfd2ec45f4 | ||
|
|
19c7e31f53 | ||
|
|
f618aef988 | ||
|
|
af97f752f5 | ||
|
|
bfb80afee2 | ||
|
|
72695af0f0 | ||
|
|
3a5b84eec4 | ||
|
|
387ed53328 | ||
|
|
c9cbc5fd55 | ||
|
|
ae03460a33 | ||
|
|
4b060a864a | ||
|
|
07e8e63ee6 | ||
|
|
ab1d4ed97f | ||
|
|
2bd7dfd5b8 | ||
|
|
c39049e5f5 |
33
README.md
33
README.md
@@ -13,27 +13,27 @@
|
|||||||
</a>
|
</a>
|
||||||
<a target="_blank"
|
<a target="_blank"
|
||||||
style="text-decoration: none !important;"
|
style="text-decoration: none !important;"
|
||||||
href="https://github.com/lijiahangmax/orion-visor/releases">
|
href="https://github.com/dromara/orion-visor/releases">
|
||||||
<img src="https://img.shields.io/github/v/release/lijiahangmax/orion-visor" alt="release" />
|
<img src="https://img.shields.io/github/v/release/lijiahangmax/orion-visor" alt="release" />
|
||||||
</a>
|
</a>
|
||||||
<a target="_blank"
|
<a target="_blank"
|
||||||
style="text-decoration: none !important;"
|
style="text-decoration: none !important;"
|
||||||
href="https://gitee.com/lijiahangmax/orion-visor/stargazers">
|
href="https://gitee.com/dromara/orion-visor/stargazers">
|
||||||
<img src="https://gitee.com/lijiahangmax/orion-visor/badge/star.svg?theme=dark" alt="star" />
|
<img src="https://gitee.com/dromara/orion-visor/badge/star.svg?theme=dark" alt="star" />
|
||||||
</a>
|
</a>
|
||||||
<a target="_blank"
|
<a target="_blank"
|
||||||
style="text-decoration: none !important;"
|
style="text-decoration: none !important;"
|
||||||
href="https://gitee.com/lijiahangmax/orion-visor/members">
|
href="https://gitee.com/dromara/orion-visor/members">
|
||||||
<img src="https://gitee.com/lijiahangmax/orion-visor/badge/fork.svg?theme=dark" alt="fork" />
|
<img src="https://gitee.com/dromara/orion-visor/badge/fork.svg?theme=dark" alt="fork" />
|
||||||
</a>
|
</a>
|
||||||
<a target="_blank"
|
<a target="_blank"
|
||||||
style="text-decoration: none !important;"
|
style="text-decoration: none !important;"
|
||||||
href="https://github.com/lijiahangmax/orion-visor">
|
href="https://github.com/dromara/orion-visor">
|
||||||
<img src="https://img.shields.io/github/stars/lijiahangmax/orion-visor" alt="star" />
|
<img src="https://img.shields.io/github/stars/lijiahangmax/orion-visor" alt="star" />
|
||||||
</a>
|
</a>
|
||||||
<a target="_blank"
|
<a target="_blank"
|
||||||
style="text-decoration: none !important;"
|
style="text-decoration: none !important;"
|
||||||
href="https://github.com/lijiahangmax/orion-visor">
|
href="https://github.com/dromara/orion-visor">
|
||||||
<img src="https://img.shields.io/github/forks/lijiahangmax/orion-visor" alt="star" />
|
<img src="https://img.shields.io/github/forks/lijiahangmax/orion-visor" alt="star" />
|
||||||
</a>
|
</a>
|
||||||
</p>
|
</p>
|
||||||
@@ -51,18 +51,19 @@
|
|||||||
|
|
||||||
## 演示环境
|
## 演示环境
|
||||||
|
|
||||||
演示地址: http://101.43.254.243:1081/
|
* 🔗 演示地址: http://101.43.254.243:1081/
|
||||||
演示账号: admin/admin
|
* 🔏 演示账号: admin/admin
|
||||||
|
* ⭐ 体验后可以点一下 `star` 这对我很重要! [github](https://github.com/dromara/orion-visor) [gitee](https://gitee.com/dromara/orion-visor)
|
||||||
⭐ 体验后可以点一下 `star` 这对我很重要!
|
* 🌈 如果本项目对你有帮助请帮忙推广一下 让更多的人知道此项目!
|
||||||
🌈 如果本项目对你有帮助请帮忙推广一下 让更多的人知道此项目!
|
* 🎭 演示环境部分功能不可用, 完整功能请本地部署!
|
||||||
[github](https://github.com/lijiahangmax/orion-visor) [gitee](https://gitee.com/lijiahangmax/orion-visor)
|
* 📛 演示环境请不要随便删除数据!
|
||||||
|
* 📧 如果演示环境不可用请联系我!
|
||||||
|
|
||||||
## 快速开始
|
## 快速开始
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# clone
|
# clone
|
||||||
git clone https://github.com/lijiahangmax/orion-visor
|
git clone https://github.com/dromara/orion-visor
|
||||||
cd orion-visor
|
cd orion-visor
|
||||||
# 启动
|
# 启动
|
||||||
docker compose up -d
|
docker compose up -d
|
||||||
@@ -130,8 +131,8 @@ docker compose up -d
|
|||||||
|
|
||||||
## 免责声明
|
## 免责声明
|
||||||
|
|
||||||
在使用本项目之前, 请确保您已经了解并同意相关的使用协议和隐私政策。[免责声明](https://github.com/lijiahangmax/orion-visor/blob/main/DISCLAIMER.md)
|
在使用本项目之前, 请确保您已经了解并同意相关的使用协议和隐私政策。[免责声明](https://github.com/dromara/orion-visor/blob/main/DISCLAIMER.md)
|
||||||
|
|
||||||
## License
|
## License
|
||||||
|
|
||||||
本项目遵循 [Apache-2.0](https://github.com/lijiahangmax/orion-visor/blob/main/LICENSE) 开源许可证。
|
本项目遵循 [Apache-2.0](https://github.com/dromara/orion-visor/blob/main/LICENSE) 开源许可证。
|
||||||
|
|||||||
@@ -1,7 +1,8 @@
|
|||||||
version: '3.3'
|
version: '3.3'
|
||||||
services:
|
services:
|
||||||
orion-visor-service:
|
orion-visor-service:
|
||||||
image: registry.cn-hangzhou.aliyuncs.com/lijiahangmax/orion-visor-service:2.0.5
|
image: registry.cn-hangzhou.aliyuncs.com/lijiahangmax/orion-visor-service:2.0.9
|
||||||
|
privileged: true
|
||||||
ports:
|
ports:
|
||||||
- 1081:80
|
- 1081:80
|
||||||
environment:
|
environment:
|
||||||
@@ -20,7 +21,7 @@ services:
|
|||||||
- orion-visor-mysql
|
- orion-visor-mysql
|
||||||
- orion-visor-redis
|
- orion-visor-redis
|
||||||
orion-visor-mysql:
|
orion-visor-mysql:
|
||||||
image: registry.cn-hangzhou.aliyuncs.com/lijiahangmax/orion-visor-mysql:2.0.5
|
image: registry.cn-hangzhou.aliyuncs.com/lijiahangmax/orion-visor-mysql:2.0.9
|
||||||
privileged: true
|
privileged: true
|
||||||
ports:
|
ports:
|
||||||
- 3307:3306
|
- 3307:3306
|
||||||
@@ -34,7 +35,7 @@ services:
|
|||||||
- /data/orion-visor-space/docker-volumes/orion-visor-mysql/var-lib-mysql-files:/var/lib/mysql-files
|
- /data/orion-visor-space/docker-volumes/orion-visor-mysql/var-lib-mysql-files:/var/lib/mysql-files
|
||||||
- /data/orion-visor-space/docker-volumes/orion-visor-mysql/etc-mysql:/etc/mysql
|
- /data/orion-visor-space/docker-volumes/orion-visor-mysql/etc-mysql:/etc/mysql
|
||||||
orion-visor-redis:
|
orion-visor-redis:
|
||||||
image: registry.cn-hangzhou.aliyuncs.com/lijiahangmax/orion-visor-redis:2.0.5
|
image: registry.cn-hangzhou.aliyuncs.com/lijiahangmax/orion-visor-redis:2.0.9
|
||||||
privileged: true
|
privileged: true
|
||||||
ports:
|
ports:
|
||||||
- 6380:6379
|
- 6380:6379
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
#/bin/bash
|
#/bin/bash
|
||||||
docker compose down
|
docker compose down
|
||||||
sh ./pull.sh
|
|
||||||
# demo 启动
|
# demo 启动
|
||||||
if [ "$1" == "demo" ]; then
|
if [ "$1" == "demo" ]; then
|
||||||
sed -i 's/DEMO_MODE=false/DEMO_MODE=true/g' docker-compose.yml
|
sed -i 's/DEMO_MODE=false/DEMO_MODE=true/g' docker-compose.yml
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
#/bin/bash
|
#/bin/bash
|
||||||
version=2.0.5
|
version=2.0.9
|
||||||
cp -r ../../sql ./sql
|
cp -r ../../sql ./sql
|
||||||
docker build -t orion-visor-mysql:${version} .
|
docker build -t orion-visor-mysql:${version} .
|
||||||
rm -rf ./sql
|
rm -rf ./sql
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
#/bin/bash
|
#/bin/bash
|
||||||
version=2.0.5
|
version=2.0.9
|
||||||
docker build -t orion-visor-redis:${version} .
|
docker build -t orion-visor-redis:${version} .
|
||||||
docker tag orion-visor-redis:${version} registry.cn-hangzhou.aliyuncs.com/lijiahangmax/orion-visor-redis:${version}
|
docker tag orion-visor-redis:${version} registry.cn-hangzhou.aliyuncs.com/lijiahangmax/orion-visor-redis:${version}
|
||||||
docker push registry.cn-hangzhou.aliyuncs.com/lijiahangmax/orion-visor-redis:${version}
|
docker push registry.cn-hangzhou.aliyuncs.com/lijiahangmax/orion-visor-redis:${version}
|
||||||
@@ -8,6 +8,7 @@ RUN \
|
|||||||
sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories && \
|
sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories && \
|
||||||
apk update && \
|
apk update && \
|
||||||
apk add tzdata && \
|
apk add tzdata && \
|
||||||
|
apk add dmidecode && \
|
||||||
apk add openjdk8
|
apk add openjdk8
|
||||||
# 设置时区
|
# 设置时区
|
||||||
RUN ln -sf /usr/share/zoneinfo/${TZ} /etc/localtime && \
|
RUN ln -sf /usr/share/zoneinfo/${TZ} /etc/localtime && \
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
#/bin/bash
|
#/bin/bash
|
||||||
version=2.0.5
|
version=2.0.9
|
||||||
mv ../../orion-visor-launch/target/orion-visor-launch.jar ./orion-visor-launch.jar
|
mv ../../orion-visor-launch/target/orion-visor-launch.jar ./orion-visor-launch.jar
|
||||||
mv ../../orion-visor-ui/dist ./dist
|
mv ../../orion-visor-ui/dist ./dist
|
||||||
docker build -t orion-visor-service:${version} .
|
docker build -t orion-visor-service:${version} .
|
||||||
@@ -11,10 +11,10 @@
|
|||||||
<name>${project.artifactId}</name>
|
<name>${project.artifactId}</name>
|
||||||
|
|
||||||
<description>项目所有依赖</description>
|
<description>项目所有依赖</description>
|
||||||
<url>https://github.com/lijiahangmax/orion-visor</url>
|
<url>https://github.com/dromara/orion-visor</url>
|
||||||
|
|
||||||
<properties>
|
<properties>
|
||||||
<revision>2.0.5</revision>
|
<revision>2.0.9</revision>
|
||||||
<spring.boot.version>2.7.17</spring.boot.version>
|
<spring.boot.version>2.7.17</spring.boot.version>
|
||||||
<spring.boot.admin.version>2.7.15</spring.boot.admin.version>
|
<spring.boot.admin.version>2.7.15</spring.boot.admin.version>
|
||||||
<flatten.maven.plugin.version>1.5.0</flatten.maven.plugin.version>
|
<flatten.maven.plugin.version>1.5.0</flatten.maven.plugin.version>
|
||||||
|
|||||||
@@ -14,7 +14,7 @@
|
|||||||
<packaging>jar</packaging>
|
<packaging>jar</packaging>
|
||||||
|
|
||||||
<description>项目公共基准包</description>
|
<description>项目公共基准包</description>
|
||||||
<url>https://github.com/lijiahangmax/orion-visor</url>
|
<url>https://github.com/dromara/orion-visor</url>
|
||||||
|
|
||||||
<dependencies>
|
<dependencies>
|
||||||
<dependency>
|
<dependency>
|
||||||
|
|||||||
@@ -0,0 +1,17 @@
|
|||||||
|
package com.orion.visor.framework.common.annotation;
|
||||||
|
|
||||||
|
import java.lang.annotation.*;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 保留
|
||||||
|
*
|
||||||
|
* @author Jiahang Li
|
||||||
|
* @version 1.0.0
|
||||||
|
* @since 2024/6/6 15:26
|
||||||
|
*/
|
||||||
|
@Target({ElementType.TYPE, ElementType.FIELD, ElementType.METHOD})
|
||||||
|
@Retention(RetentionPolicy.RUNTIME)
|
||||||
|
@Documented
|
||||||
|
public @interface Keep {
|
||||||
|
|
||||||
|
}
|
||||||
@@ -14,14 +14,17 @@ public interface AppConst extends OrionConst {
|
|||||||
/**
|
/**
|
||||||
* 同 ${orion.version} 迭代时候需要手动更改
|
* 同 ${orion.version} 迭代时候需要手动更改
|
||||||
*/
|
*/
|
||||||
String VERSION = "2.0.5";
|
String VERSION = "2.0.9";
|
||||||
|
|
||||||
String ORION_VISOR = "orion-visor";
|
/**
|
||||||
|
* 同 ${spring.application.name}
|
||||||
|
*/
|
||||||
|
String APP_NAME = "orion-visor";
|
||||||
|
|
||||||
String GITHUB = "https://github.com/lijiahangmax/orion-visor";
|
String GITHUB = "https://github.com/dromara/orion-visor";
|
||||||
|
|
||||||
String GITEE = "https://gitee.com/lijiahangmax/orion-visor";
|
String GITEE = "https://gitee.com/dromara/orion-visor";
|
||||||
|
|
||||||
String ISSUES = "https://github.com/lijiahangmax/orion-visor/issues";
|
String ISSUES = "https://github.com/dromara/orion-visor/issues";
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -13,4 +13,8 @@ public interface CnConst {
|
|||||||
|
|
||||||
String CN_ROLE = "角色";
|
String CN_ROLE = "角色";
|
||||||
|
|
||||||
|
String CN_UNKNOWN = "未知";
|
||||||
|
|
||||||
|
String CN_INTRANET_IP = "内网IP";
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -17,16 +17,10 @@ public interface Const extends com.orion.lang.constant.Const, FieldConst, CnCons
|
|||||||
|
|
||||||
int MD5_LEN = 32;
|
int MD5_LEN = 32;
|
||||||
|
|
||||||
String UNKNOWN = "未知";
|
|
||||||
|
|
||||||
String INTRANET_IP = "内网IP";
|
|
||||||
|
|
||||||
Long ROOT_PARENT_ID = 0L;
|
Long ROOT_PARENT_ID = 0L;
|
||||||
|
|
||||||
Integer DEFAULT_SORT = 10;
|
Integer DEFAULT_SORT = 10;
|
||||||
|
|
||||||
int LOGIN_HISTORY_COUNT = 30;
|
|
||||||
|
|
||||||
Long NONE_ID = -1L;
|
Long NONE_ID = -1L;
|
||||||
|
|
||||||
Integer DEFAULT_VERSION = 1;
|
Integer DEFAULT_VERSION = 1;
|
||||||
|
|||||||
@@ -14,13 +14,19 @@ import lombok.Getter;
|
|||||||
@AllArgsConstructor
|
@AllArgsConstructor
|
||||||
public enum MovePosition {
|
public enum MovePosition {
|
||||||
|
|
||||||
// 拖拽到目标元素上
|
/**
|
||||||
|
* 拖拽到目标元素上
|
||||||
|
*/
|
||||||
TOP(-1),
|
TOP(-1),
|
||||||
|
|
||||||
// 拖拽到目标元素中
|
/**
|
||||||
|
* 拖拽到目标元素中
|
||||||
|
*/
|
||||||
IN(0),
|
IN(0),
|
||||||
|
|
||||||
// 拖拽到目标元素下
|
/**
|
||||||
|
* 拖拽到目标元素下
|
||||||
|
*/
|
||||||
BOTTOM(1),
|
BOTTOM(1),
|
||||||
|
|
||||||
;
|
;
|
||||||
|
|||||||
@@ -1,9 +1,8 @@
|
|||||||
package com.orion.visor.framework.common.handler.data;
|
package com.orion.visor.framework.common.handler.data;
|
||||||
|
|
||||||
import com.alibaba.fastjson.JSON;
|
|
||||||
import com.orion.spring.SpringHolder;
|
import com.orion.spring.SpringHolder;
|
||||||
import com.orion.visor.framework.common.handler.data.model.GenericsDataModel;
|
import com.orion.visor.framework.common.handler.data.model.GenericsDataModel;
|
||||||
import com.orion.visor.framework.common.handler.data.strategy.MapDataStrategy;
|
import com.orion.visor.framework.common.handler.data.strategy.GenericsDataStrategy;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 标准数据定义
|
* 标准数据定义
|
||||||
@@ -12,45 +11,50 @@ import com.orion.visor.framework.common.handler.data.strategy.MapDataStrategy;
|
|||||||
* @version 1.0.0
|
* @version 1.0.0
|
||||||
* @since 2023/12/21 0:07
|
* @since 2023/12/21 0:07
|
||||||
*/
|
*/
|
||||||
|
@SuppressWarnings("unchecked")
|
||||||
public interface GenericsDataDefinition {
|
public interface GenericsDataDefinition {
|
||||||
|
|
||||||
/**
|
|
||||||
* 获取数据模型类型
|
|
||||||
*
|
|
||||||
* @return class
|
|
||||||
*/
|
|
||||||
Class<? extends GenericsDataModel> getModel();
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取数据处理策略
|
* 获取数据处理策略
|
||||||
*
|
*
|
||||||
* @return class
|
* @return class
|
||||||
*/
|
*/
|
||||||
Class<? extends MapDataStrategy<? extends GenericsDataModel>> getStrategy();
|
Class<? extends GenericsDataStrategy<? extends GenericsDataModel>> getStrategyClass();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取数据模型策略处理器
|
* 获取数据模型策略处理器
|
||||||
*
|
*
|
||||||
* @param <Model> Model
|
* @param <M> Model
|
||||||
* @param <Strategy> Strategy
|
* @param <S> Strategy
|
||||||
* @return StrategyBean
|
* @return Strategy Bean
|
||||||
*/
|
*/
|
||||||
@SuppressWarnings("unchecked")
|
default <M extends GenericsDataModel, S extends GenericsDataStrategy<M>> S getStrategy() {
|
||||||
default <Model extends GenericsDataModel, Strategy extends MapDataStrategy<Model>> Strategy getStrategyBean() {
|
return (S) SpringHolder.getBean(this.getStrategyClass());
|
||||||
return (Strategy) SpringHolder.getBean(this.getStrategy());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 反序列化对象
|
* 反序列化对象
|
||||||
*
|
*
|
||||||
* @param json json
|
* @param serialModel serialModel
|
||||||
* @param <Model> Model
|
* @param <M> Model
|
||||||
* @return object
|
* @return object
|
||||||
*/
|
*/
|
||||||
@SuppressWarnings("unchecked")
|
default <M extends GenericsDataModel> M parse(String serialModel) {
|
||||||
default <Model extends GenericsDataModel> Model parse(String json) {
|
return (M) this.getStrategy().parse(serialModel);
|
||||||
return (Model) JSON.parseObject(json, this.getModel());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 转为视图对象
|
||||||
|
*
|
||||||
|
* @param serialModel serialModel
|
||||||
|
* @param <M> Model
|
||||||
|
* @return viewModel
|
||||||
|
*/
|
||||||
|
default <M extends GenericsDataModel> M toView(String serialModel) {
|
||||||
|
GenericsDataStrategy<GenericsDataModel> strategy = this.getStrategy();
|
||||||
|
GenericsDataModel model = strategy.parse(serialModel);
|
||||||
|
strategy.toView(model);
|
||||||
|
return (M) model;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,6 +2,8 @@ package com.orion.visor.framework.common.handler.data.model;
|
|||||||
|
|
||||||
import com.alibaba.fastjson.JSON;
|
import com.alibaba.fastjson.JSON;
|
||||||
|
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 标准数据模型
|
* 标准数据模型
|
||||||
*
|
*
|
||||||
@@ -20,4 +22,14 @@ public interface GenericsDataModel {
|
|||||||
return JSON.toJSONString(this);
|
return JSON.toJSONString(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 转为 map
|
||||||
|
*
|
||||||
|
* @return map
|
||||||
|
*/
|
||||||
|
default Map<String, Object> toMap() {
|
||||||
|
return JSON.parseObject(this.serial());
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,65 @@
|
|||||||
|
package com.orion.visor.framework.common.handler.data.strategy;
|
||||||
|
|
||||||
|
import com.alibaba.fastjson.JSON;
|
||||||
|
import com.orion.visor.framework.common.handler.data.model.GenericsDataModel;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 标准数据处理策略 基类
|
||||||
|
*
|
||||||
|
* @author Jiahang Li
|
||||||
|
* @version 1.0.0
|
||||||
|
* @since 2024/6/11 21:44
|
||||||
|
*/
|
||||||
|
public abstract class AbstractGenericsDataStrategy<M extends GenericsDataModel> implements GenericsDataStrategy<M> {
|
||||||
|
|
||||||
|
protected final Class<M> modelClass;
|
||||||
|
|
||||||
|
public AbstractGenericsDataStrategy(Class<M> modelClass) {
|
||||||
|
this.modelClass = modelClass;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 更新填充
|
||||||
|
*
|
||||||
|
* @param beforeModel 修改前的配置
|
||||||
|
* @param afterModel 修改后的配置
|
||||||
|
*/
|
||||||
|
protected void updateFill(M beforeModel, M afterModel) {
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 预校验参数
|
||||||
|
*
|
||||||
|
* @param model model
|
||||||
|
*/
|
||||||
|
protected void preValid(M model) {
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 校验参数
|
||||||
|
*
|
||||||
|
* @param model model
|
||||||
|
*/
|
||||||
|
protected void valid(M model) {
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void doValid(M beforeModel, M afterModel) {
|
||||||
|
// 预校验参数
|
||||||
|
this.preValid(afterModel);
|
||||||
|
// 更新填充
|
||||||
|
this.updateFill(beforeModel, afterModel);
|
||||||
|
// 校验参数
|
||||||
|
this.valid(afterModel);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public M parse(String serialModel) {
|
||||||
|
return JSON.parseObject(serialModel, modelClass);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void toView(M model) {
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -9,60 +9,38 @@ import com.orion.visor.framework.common.handler.data.model.GenericsDataModel;
|
|||||||
* @version 1.0.0
|
* @version 1.0.0
|
||||||
* @since 2023/12/20 22:09
|
* @since 2023/12/20 22:09
|
||||||
*/
|
*/
|
||||||
public interface GenericsDataStrategy<Model extends GenericsDataModel, View> {
|
public interface GenericsDataStrategy<M extends GenericsDataModel> {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取默认值
|
* 获取默认值
|
||||||
*
|
*
|
||||||
* @return 默认值
|
* @return 默认值
|
||||||
*/
|
*/
|
||||||
Model getDefault();
|
M getDefault();
|
||||||
|
|
||||||
/**
|
|
||||||
* 更新填充
|
|
||||||
*
|
|
||||||
* @param beforeModel 修改前的配置
|
|
||||||
* @param afterModel 修改后的配置
|
|
||||||
*/
|
|
||||||
void updateFill(Model beforeModel, Model afterModel);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 预校验参数
|
|
||||||
*
|
|
||||||
* @param model model
|
|
||||||
*/
|
|
||||||
void preValid(Model model);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 校验参数
|
|
||||||
*
|
|
||||||
* @param model model
|
|
||||||
*/
|
|
||||||
void valid(Model model);
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 执行完整验证链
|
* 执行完整验证链
|
||||||
* <p>
|
* <p>
|
||||||
* preValid > updateFill > preValid
|
* preValid > updateFill > valid
|
||||||
*
|
*
|
||||||
* @param beforeModel beforeModel
|
* @param beforeModel beforeModel
|
||||||
* @param afterModel afterModel
|
* @param afterModel afterModel
|
||||||
*/
|
*/
|
||||||
default void doValidChain(Model beforeModel, Model afterModel) {
|
void doValid(M beforeModel, M afterModel);
|
||||||
// 预校验参数
|
|
||||||
this.preValid(afterModel);
|
/**
|
||||||
// 更新填充
|
* 解析数据
|
||||||
this.updateFill(beforeModel, afterModel);
|
*
|
||||||
// 校验参数
|
* @param serialModel serialModel
|
||||||
this.valid(afterModel);
|
* @return model
|
||||||
}
|
*/
|
||||||
|
M parse(String serialModel);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 转为视图配置
|
* 转为视图配置
|
||||||
*
|
*
|
||||||
* @param model model
|
* @param model model
|
||||||
* @return 视图配置
|
|
||||||
*/
|
*/
|
||||||
View toView(String model);
|
void toView(M model);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,22 +0,0 @@
|
|||||||
package com.orion.visor.framework.common.handler.data.strategy;
|
|
||||||
|
|
||||||
import com.alibaba.fastjson.JSONObject;
|
|
||||||
import com.orion.visor.framework.common.handler.data.model.GenericsDataModel;
|
|
||||||
|
|
||||||
import java.util.Map;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* map 数据处理策略
|
|
||||||
*
|
|
||||||
* @author Jiahang Li
|
|
||||||
* @version 1.0.0
|
|
||||||
* @since 2023/12/20 22:11
|
|
||||||
*/
|
|
||||||
public interface MapDataStrategy<Model extends GenericsDataModel> extends GenericsDataStrategy<Model, Map<String, Object>> {
|
|
||||||
|
|
||||||
@Override
|
|
||||||
default Map<String, Object> toView(String model) {
|
|
||||||
return JSONObject.parseObject(model);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
@@ -29,7 +29,7 @@ public class IpUtils {
|
|||||||
*/
|
*/
|
||||||
public static String getLocation(String ip) {
|
public static String getLocation(String ip) {
|
||||||
if (ip == null) {
|
if (ip == null) {
|
||||||
return Const.UNKNOWN;
|
return Const.CN_UNKNOWN;
|
||||||
}
|
}
|
||||||
// 查询缓存
|
// 查询缓存
|
||||||
return CACHE.computeIfAbsent(ip, IpUtils::queryLocation);
|
return CACHE.computeIfAbsent(ip, IpUtils::queryLocation);
|
||||||
@@ -43,21 +43,21 @@ public class IpUtils {
|
|||||||
*/
|
*/
|
||||||
private static String queryLocation(String ip) {
|
private static String queryLocation(String ip) {
|
||||||
if (ip == null) {
|
if (ip == null) {
|
||||||
return Const.UNKNOWN;
|
return Const.CN_UNKNOWN;
|
||||||
}
|
}
|
||||||
Region region;
|
Region region;
|
||||||
try {
|
try {
|
||||||
region = LocationRegions.getRegion(ip, 3);
|
region = LocationRegions.getRegion(ip, 3);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
return Const.UNKNOWN;
|
return Const.CN_UNKNOWN;
|
||||||
}
|
}
|
||||||
if (region != null) {
|
if (region != null) {
|
||||||
String net = region.getNet();
|
String net = region.getNet();
|
||||||
String province = region.getProvince();
|
String province = region.getProvince();
|
||||||
if (net.equals(Const.INTRANET_IP)) {
|
if (net.equals(Const.CN_INTRANET_IP)) {
|
||||||
return net;
|
return net;
|
||||||
}
|
}
|
||||||
if (province.equals(Const.UNKNOWN)) {
|
if (province.equals(Const.CN_UNKNOWN)) {
|
||||||
return province;
|
return province;
|
||||||
}
|
}
|
||||||
StringBuilder location = new StringBuilder()
|
StringBuilder location = new StringBuilder()
|
||||||
@@ -69,7 +69,7 @@ public class IpUtils {
|
|||||||
location.append(" (").append(net).append(')');
|
location.append(" (").append(net).append(')');
|
||||||
return location.toString();
|
return location.toString();
|
||||||
}
|
}
|
||||||
return Const.UNKNOWN;
|
return Const.CN_UNKNOWN;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,38 @@
|
|||||||
|
package com.orion.visor.framework.common.utils;
|
||||||
|
|
||||||
|
import com.orion.lang.utils.Arrays1;
|
||||||
|
import com.orion.lang.utils.crypto.Caesars;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 混淆工具类
|
||||||
|
*
|
||||||
|
* @author Jiahang Li
|
||||||
|
* @version 1.0.0
|
||||||
|
* @since 2024/6/17 18:27
|
||||||
|
*/
|
||||||
|
public class Mixes {
|
||||||
|
|
||||||
|
private Mixes() {
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 混淆
|
||||||
|
* <p>
|
||||||
|
* 此方法不可修改
|
||||||
|
*
|
||||||
|
* @param str str
|
||||||
|
* @return str
|
||||||
|
*/
|
||||||
|
public static String obfuscate(String str) {
|
||||||
|
char[] chars = str.toCharArray();
|
||||||
|
Arrays1.reverse(chars);
|
||||||
|
for (int i = 0; i < chars.length; i += 2) {
|
||||||
|
char temp = chars[i];
|
||||||
|
chars[i] = chars[i + 1];
|
||||||
|
chars[i + 1] = temp;
|
||||||
|
}
|
||||||
|
String res = new String(chars);
|
||||||
|
return new Caesars().encrypt(res);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -47,7 +47,7 @@ public class PathUtils {
|
|||||||
public static String getAppPath(boolean isWindows, String username) {
|
public static String getAppPath(boolean isWindows, String username) {
|
||||||
return getHomePath(isWindows, username)
|
return getHomePath(isWindows, username)
|
||||||
+ "/" + AppConst.ORION
|
+ "/" + AppConst.ORION
|
||||||
+ "/" + AppConst.ORION_VISOR;
|
+ "/" + AppConst.APP_NAME;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -14,7 +14,7 @@
|
|||||||
<packaging>jar</packaging>
|
<packaging>jar</packaging>
|
||||||
|
|
||||||
<description>项目 banner 打印包</description>
|
<description>项目 banner 打印包</description>
|
||||||
<url>https://github.com/lijiahangmax/orion-visor</url>
|
<url>https://github.com/dromara/orion-visor</url>
|
||||||
|
|
||||||
<dependencies>
|
<dependencies>
|
||||||
<dependency>
|
<dependency>
|
||||||
|
|||||||
@@ -36,24 +36,47 @@ public class BannerApplicationRunner implements ApplicationRunner {
|
|||||||
@Value("${management.endpoints.web.base-path:''}")
|
@Value("${management.endpoints.web.base-path:''}")
|
||||||
private String managementEndpoints;
|
private String managementEndpoints;
|
||||||
|
|
||||||
|
@Value("${springdoc.api-docs.enabled}")
|
||||||
|
private Boolean apiDocsEnabled;
|
||||||
|
|
||||||
|
@Value("${spring.datasource.druid.stat-view-servlet.enabled}")
|
||||||
|
private Boolean druidConsoleEnabled;
|
||||||
|
|
||||||
|
@Value("#{'${management.endpoints.web.exposure.include}' != 'shutdown'}")
|
||||||
|
private Boolean springBootActuatorEnabled;
|
||||||
|
|
||||||
|
@Value("${spring.boot.admin.client.enabled}")
|
||||||
|
private Boolean springBootAdminClientEnabled;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void run(ApplicationArguments args) {
|
public void run(ApplicationArguments args) {
|
||||||
String line = AnsiAppender.create()
|
AnsiAppender appender = AnsiAppender.create()
|
||||||
.append(AnsiForeground.BRIGHT_GREEN, ":: orion-visor-launch v" + version + " 服务已启动(" + env + ") ::\n")
|
.append(AnsiForeground.BRIGHT_GREEN, ":: orion-visor v" + version + " 服务已启动(" + env + ") ::\n");
|
||||||
.append(AnsiForeground.BRIGHT_GREEN, ":: swagger 文档 ")
|
// swagger 地址
|
||||||
.append(AnsiForeground.BRIGHT_BLUE, "http://127.0.0.1:" + port + "/doc.html\n")
|
if (apiDocsEnabled) {
|
||||||
.append(AnsiForeground.BRIGHT_GREEN, ":: druid console ")
|
appender.append(AnsiForeground.BRIGHT_GREEN, ":: swagger 文档 ")
|
||||||
.append(AnsiForeground.BRIGHT_BLUE, "http://127.0.0.1:" + port + "/druid/index.html\n")
|
.append(AnsiForeground.BRIGHT_BLUE, "http://127.0.0.1:" + port + "/doc.html\n");
|
||||||
.append(AnsiForeground.BRIGHT_GREEN, ":: actuator endpoint ")
|
}
|
||||||
.append(AnsiForeground.BRIGHT_BLUE, "http://127.0.0.1:" + port + managementEndpoints + "\n")
|
// druid 控制台
|
||||||
.append(AnsiForeground.BRIGHT_GREEN, ":: admin console ")
|
if (druidConsoleEnabled) {
|
||||||
.append(AnsiForeground.BRIGHT_BLUE, "http://127.0.0.1:" + port + adminSeverContextPath + "\n")
|
appender.append(AnsiForeground.BRIGHT_GREEN, ":: druid console ")
|
||||||
.append(AnsiForeground.BRIGHT_GREEN, ":: server 健康检测 ")
|
.append(AnsiForeground.BRIGHT_BLUE, "http://127.0.0.1:" + port + "/druid/index.html\n");
|
||||||
.append(AnsiForeground.BRIGHT_BLUE, "curl -X GET --location \"http://127.0.0.1:" + port + apiPrefix + "/server/bootstrap/health\"")
|
}
|
||||||
.toString();
|
// admin actuator 端点
|
||||||
|
if (springBootActuatorEnabled) {
|
||||||
|
appender.append(AnsiForeground.BRIGHT_GREEN, ":: actuator endpoint ")
|
||||||
|
.append(AnsiForeground.BRIGHT_BLUE, "http://127.0.0.1:" + port + managementEndpoints + "\n");
|
||||||
|
}
|
||||||
|
// admin server 控制台
|
||||||
|
if (springBootAdminClientEnabled) {
|
||||||
|
appender.append(AnsiForeground.BRIGHT_GREEN, ":: admin console ")
|
||||||
|
.append(AnsiForeground.BRIGHT_BLUE, "http://127.0.0.1:" + port + adminSeverContextPath + "\n");
|
||||||
|
}
|
||||||
|
appender.append(AnsiForeground.BRIGHT_GREEN, ":: server 健康检测 ")
|
||||||
|
.append(AnsiForeground.BRIGHT_BLUE, "curl -X GET --location \"http://127.0.0.1:" + port + apiPrefix + "/server/bootstrap/health\"");
|
||||||
Threads.start(() -> {
|
Threads.start(() -> {
|
||||||
Threads.sleep(1000L);
|
Threads.sleep(1000L);
|
||||||
System.out.println(line);
|
System.out.println(appender);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -8,4 +8,5 @@ ${AnsiColor.BRIGHT_GREEN}:: Application Name ${AnsiColor.BLUE}${spring.appli
|
|||||||
${AnsiColor.BRIGHT_GREEN}:: Application Version ${AnsiColor.BLUE}${orion.version}
|
${AnsiColor.BRIGHT_GREEN}:: Application Version ${AnsiColor.BLUE}${orion.version}
|
||||||
${AnsiColor.BRIGHT_GREEN}:: SpringBoot Version ${AnsiColor.BLUE}${spring-boot.version}
|
${AnsiColor.BRIGHT_GREEN}:: SpringBoot Version ${AnsiColor.BLUE}${spring-boot.version}
|
||||||
${AnsiColor.BRIGHT_GREEN}:: Active Profile ${AnsiColor.BLUE}${spring.profiles.active}
|
${AnsiColor.BRIGHT_GREEN}:: Active Profile ${AnsiColor.BLUE}${spring.profiles.active}
|
||||||
|
${AnsiColor.BRIGHT_GREEN}:: Demo Mode ${AnsiColor.BLUE}${orion.demo}
|
||||||
${AnsiColor.DEFAULT}
|
${AnsiColor.DEFAULT}
|
||||||
@@ -14,7 +14,7 @@
|
|||||||
<packaging>jar</packaging>
|
<packaging>jar</packaging>
|
||||||
|
|
||||||
<description>项目操作日志包</description>
|
<description>项目操作日志包</description>
|
||||||
<url>https://github.com/lijiahangmax/orion-visor</url>
|
<url>https://github.com/dromara/orion-visor</url>
|
||||||
|
|
||||||
<dependencies>
|
<dependencies>
|
||||||
<dependency>
|
<dependency>
|
||||||
|
|||||||
@@ -14,7 +14,7 @@
|
|||||||
<packaging>jar</packaging>
|
<packaging>jar</packaging>
|
||||||
|
|
||||||
<description>项目数据源配置包</description>
|
<description>项目数据源配置包</description>
|
||||||
<url>https://github.com/lijiahangmax/orion-visor</url>
|
<url>https://github.com/dromara/orion-visor</url>
|
||||||
|
|
||||||
<dependencies>
|
<dependencies>
|
||||||
<dependency>
|
<dependency>
|
||||||
|
|||||||
@@ -14,7 +14,7 @@
|
|||||||
<packaging>jar</packaging>
|
<packaging>jar</packaging>
|
||||||
|
|
||||||
<description>项目数据脱敏包</description>
|
<description>项目数据脱敏包</description>
|
||||||
<url>https://github.com/lijiahangmax/orion-visor</url>
|
<url>https://github.com/dromara/orion-visor</url>
|
||||||
|
|
||||||
<dependencies>
|
<dependencies>
|
||||||
<dependency>
|
<dependency>
|
||||||
|
|||||||
@@ -14,7 +14,7 @@
|
|||||||
<packaging>jar</packaging>
|
<packaging>jar</packaging>
|
||||||
|
|
||||||
<description>项目定时任务配置包</description>
|
<description>项目定时任务配置包</description>
|
||||||
<url>https://github.com/lijiahangmax/orion-visor</url>
|
<url>https://github.com/dromara/orion-visor</url>
|
||||||
|
|
||||||
<dependencies>
|
<dependencies>
|
||||||
<dependency>
|
<dependency>
|
||||||
|
|||||||
@@ -14,7 +14,7 @@
|
|||||||
<packaging>jar</packaging>
|
<packaging>jar</packaging>
|
||||||
|
|
||||||
<description>项目日志配置包</description>
|
<description>项目日志配置包</description>
|
||||||
<url>https://github.com/lijiahangmax/orion-visor</url>
|
<url>https://github.com/dromara/orion-visor</url>
|
||||||
|
|
||||||
<dependencies>
|
<dependencies>
|
||||||
<dependency>
|
<dependency>
|
||||||
|
|||||||
@@ -72,9 +72,9 @@ public class PrettyLogPrinterInterceptor extends AbstractLogPrinterInterceptor {
|
|||||||
}
|
}
|
||||||
Method method = invocation.getMethod();
|
Method method = invocation.getMethod();
|
||||||
// 方法签名
|
// 方法签名
|
||||||
requestLog.append("\tmethodSign: ").append(method.getDeclaringClass().getName()).append('#')
|
// requestLog.append("\tmethodSign: ").append(method.getDeclaringClass().getName()).append('#')
|
||||||
.append(method.getName()).append("\n");
|
// .append(method.getName()).append("\n");
|
||||||
// 参数
|
// 方法参数
|
||||||
requestLog.append("\tparameter: ").append(this.requestToString(method, invocation.getArguments()));
|
requestLog.append("\tparameter: ").append(this.requestToString(method, invocation.getArguments()));
|
||||||
log.info(requestLog.toString());
|
log.info(requestLog.toString());
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -73,8 +73,8 @@ public class RowLogPrinterInterceptor extends AbstractLogPrinterInterceptor impl
|
|||||||
}
|
}
|
||||||
Method method = invocation.getMethod();
|
Method method = invocation.getMethod();
|
||||||
// 方法签名
|
// 方法签名
|
||||||
fields.put(METHOD_SIGN, method.getDeclaringClass().getName() + "#" + method.getName());
|
// fields.put(METHOD_SIGN, method.getDeclaringClass().getName() + "#" + method.getName());
|
||||||
// 参数
|
// 方法参数
|
||||||
fields.put(PARAMETER, this.requestToString(method, invocation.getArguments()));
|
fields.put(PARAMETER, this.requestToString(method, invocation.getArguments()));
|
||||||
log.info("api请求-开始 {}", JSON.toJSONString(fields));
|
log.info("api请求-开始 {}", JSON.toJSONString(fields));
|
||||||
fields.clear();
|
fields.clear();
|
||||||
|
|||||||
@@ -14,7 +14,7 @@
|
|||||||
<packaging>jar</packaging>
|
<packaging>jar</packaging>
|
||||||
|
|
||||||
<description>项目监控配置包</description>
|
<description>项目监控配置包</description>
|
||||||
<url>https://github.com/lijiahangmax/orion-visor</url>
|
<url>https://github.com/dromara/orion-visor</url>
|
||||||
|
|
||||||
<dependencies>
|
<dependencies>
|
||||||
<dependency>
|
<dependency>
|
||||||
|
|||||||
@@ -14,7 +14,7 @@
|
|||||||
<packaging>jar</packaging>
|
<packaging>jar</packaging>
|
||||||
|
|
||||||
<description>项目 mybatis 配置包</description>
|
<description>项目 mybatis 配置包</description>
|
||||||
<url>https://github.com/lijiahangmax/orion-visor</url>
|
<url>https://github.com/dromara/orion-visor</url>
|
||||||
|
|
||||||
<dependencies>
|
<dependencies>
|
||||||
<dependency>
|
<dependency>
|
||||||
|
|||||||
@@ -14,7 +14,7 @@
|
|||||||
<packaging>jar</packaging>
|
<packaging>jar</packaging>
|
||||||
|
|
||||||
<description>项目 redis 配置包</description>
|
<description>项目 redis 配置包</description>
|
||||||
<url>https://github.com/lijiahangmax/orion-visor</url>
|
<url>https://github.com/dromara/orion-visor</url>
|
||||||
|
|
||||||
<dependencies>
|
<dependencies>
|
||||||
<dependency>
|
<dependency>
|
||||||
|
|||||||
@@ -15,6 +15,7 @@ import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean
|
|||||||
import org.springframework.boot.context.properties.EnableConfigurationProperties;
|
import org.springframework.boot.context.properties.EnableConfigurationProperties;
|
||||||
import org.springframework.context.annotation.Bean;
|
import org.springframework.context.annotation.Bean;
|
||||||
import org.springframework.context.annotation.Lazy;
|
import org.springframework.context.annotation.Lazy;
|
||||||
|
import org.springframework.context.annotation.Primary;
|
||||||
import org.springframework.data.redis.connection.RedisConnectionFactory;
|
import org.springframework.data.redis.connection.RedisConnectionFactory;
|
||||||
import org.springframework.data.redis.core.RedisTemplate;
|
import org.springframework.data.redis.core.RedisTemplate;
|
||||||
import org.springframework.data.redis.serializer.RedisSerializer;
|
import org.springframework.data.redis.serializer.RedisSerializer;
|
||||||
@@ -36,6 +37,7 @@ public class OrionRedisAutoConfiguration {
|
|||||||
* @param redisConnectionFactory factory
|
* @param redisConnectionFactory factory
|
||||||
* @return RedisTemplate
|
* @return RedisTemplate
|
||||||
*/
|
*/
|
||||||
|
@Primary
|
||||||
@Bean
|
@Bean
|
||||||
public RedisTemplate<String, String> redisTemplate(RedisConnectionFactory redisConnectionFactory) {
|
public RedisTemplate<String, String> redisTemplate(RedisConnectionFactory redisConnectionFactory) {
|
||||||
RedisTemplate<String, String> redisTemplate = new RedisTemplate<>();
|
RedisTemplate<String, String> redisTemplate = new RedisTemplate<>();
|
||||||
|
|||||||
@@ -14,7 +14,7 @@
|
|||||||
<packaging>jar</packaging>
|
<packaging>jar</packaging>
|
||||||
|
|
||||||
<description>项目 security 配置包</description>
|
<description>项目 security 配置包</description>
|
||||||
<url>https://github.com/lijiahangmax/orion-visor</url>
|
<url>https://github.com/dromara/orion-visor</url>
|
||||||
|
|
||||||
<dependencies>
|
<dependencies>
|
||||||
<dependency>
|
<dependency>
|
||||||
|
|||||||
@@ -14,7 +14,7 @@
|
|||||||
<packaging>jar</packaging>
|
<packaging>jar</packaging>
|
||||||
|
|
||||||
<description>项目存储层配置包</description>
|
<description>项目存储层配置包</description>
|
||||||
<url>https://github.com/lijiahangmax/orion-visor</url>
|
<url>https://github.com/dromara/orion-visor</url>
|
||||||
|
|
||||||
<dependencies>
|
<dependencies>
|
||||||
<dependency>
|
<dependency>
|
||||||
|
|||||||
@@ -14,7 +14,7 @@
|
|||||||
<packaging>jar</packaging>
|
<packaging>jar</packaging>
|
||||||
|
|
||||||
<description>项目 swagger 配置包</description>
|
<description>项目 swagger 配置包</description>
|
||||||
<url>https://github.com/lijiahangmax/orion-visor</url>
|
<url>https://github.com/dromara/orion-visor</url>
|
||||||
|
|
||||||
<dependencies>
|
<dependencies>
|
||||||
<dependency>
|
<dependency>
|
||||||
|
|||||||
@@ -23,7 +23,6 @@ import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
|
|||||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
|
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
|
||||||
import org.springframework.boot.context.properties.EnableConfigurationProperties;
|
import org.springframework.boot.context.properties.EnableConfigurationProperties;
|
||||||
import org.springframework.context.annotation.Bean;
|
import org.springframework.context.annotation.Bean;
|
||||||
import org.springframework.context.annotation.Profile;
|
|
||||||
import org.springframework.http.HttpHeaders;
|
import org.springframework.http.HttpHeaders;
|
||||||
|
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
@@ -38,10 +37,9 @@ import java.util.Optional;
|
|||||||
* @version 1.0.0
|
* @version 1.0.0
|
||||||
* @since 2022/6/21 11:22
|
* @since 2022/6/21 11:22
|
||||||
*/
|
*/
|
||||||
@Profile({"dev"})
|
|
||||||
@ConditionalOnClass({OpenAPI.class})
|
@ConditionalOnClass({OpenAPI.class})
|
||||||
@EnableConfigurationProperties(SwaggerConfig.class)
|
@EnableConfigurationProperties(SwaggerConfig.class)
|
||||||
@ConditionalOnProperty(prefix = "springdoc.api-docs", name = "enabled", havingValue = "true", matchIfMissing = true)
|
@ConditionalOnProperty(name = "springdoc.api-docs.enabled", havingValue = "true")
|
||||||
@AutoConfiguration
|
@AutoConfiguration
|
||||||
@AutoConfigureOrder(AutoConfigureOrderConst.FRAMEWORK_SWAGGER)
|
@AutoConfigureOrder(AutoConfigureOrderConst.FRAMEWORK_SWAGGER)
|
||||||
public class OrionSwaggerAutoConfiguration {
|
public class OrionSwaggerAutoConfiguration {
|
||||||
|
|||||||
@@ -14,7 +14,7 @@
|
|||||||
<packaging>jar</packaging>
|
<packaging>jar</packaging>
|
||||||
|
|
||||||
<description>项目单元测试包</description>
|
<description>项目单元测试包</description>
|
||||||
<url>https://github.com/lijiahangmax/orion-visor</url>
|
<url>https://github.com/dromara/orion-visor</url>
|
||||||
|
|
||||||
<dependencies>
|
<dependencies>
|
||||||
<dependency>
|
<dependency>
|
||||||
|
|||||||
@@ -14,7 +14,7 @@
|
|||||||
<packaging>jar</packaging>
|
<packaging>jar</packaging>
|
||||||
|
|
||||||
<description>项目 web 包</description>
|
<description>项目 web 包</description>
|
||||||
<url>https://github.com/lijiahangmax/orion-visor</url>
|
<url>https://github.com/dromara/orion-visor</url>
|
||||||
|
|
||||||
<dependencies>
|
<dependencies>
|
||||||
<dependency>
|
<dependency>
|
||||||
|
|||||||
@@ -14,7 +14,7 @@
|
|||||||
<packaging>jar</packaging>
|
<packaging>jar</packaging>
|
||||||
|
|
||||||
<description>项目 websocket 配置包</description>
|
<description>项目 websocket 配置包</description>
|
||||||
<url>https://github.com/lijiahangmax/orion-visor</url>
|
<url>https://github.com/dromara/orion-visor</url>
|
||||||
|
|
||||||
<dependencies>
|
<dependencies>
|
||||||
<dependency>
|
<dependency>
|
||||||
|
|||||||
@@ -13,7 +13,7 @@
|
|||||||
<packaging>pom</packaging>
|
<packaging>pom</packaging>
|
||||||
|
|
||||||
<description>项目组件包</description>
|
<description>项目组件包</description>
|
||||||
<url>https://github.com/lijiahangmax/orion-visor</url>
|
<url>https://github.com/dromara/orion-visor</url>
|
||||||
|
|
||||||
<modules>
|
<modules>
|
||||||
<module>orion-visor-framework-common</module>
|
<module>orion-visor-framework-common</module>
|
||||||
|
|||||||
@@ -13,7 +13,7 @@
|
|||||||
<packaging>jar</packaging>
|
<packaging>jar</packaging>
|
||||||
|
|
||||||
<description>后端服务主项目容器 按需引用 orion-visor-module-xxx 依赖</description>
|
<description>后端服务主项目容器 按需引用 orion-visor-module-xxx 依赖</description>
|
||||||
<url>https://github.com/lijiahangmax/orion-visor</url>
|
<url>https://github.com/dromara/orion-visor</url>
|
||||||
|
|
||||||
<dependencies>
|
<dependencies>
|
||||||
<!-- spring boot 配置所需依赖 -->
|
<!-- spring boot 配置所需依赖 -->
|
||||||
|
|||||||
@@ -1,7 +1,17 @@
|
|||||||
package com.orion.visor.launch;
|
package com.orion.visor.launch;
|
||||||
|
|
||||||
|
import com.orion.lang.utils.Strings;
|
||||||
|
import com.orion.visor.framework.common.constant.Const;
|
||||||
|
import org.springframework.beans.factory.annotation.AnnotatedBeanDefinition;
|
||||||
|
import org.springframework.beans.factory.config.BeanDefinition;
|
||||||
|
import org.springframework.beans.factory.support.BeanDefinitionReaderUtils;
|
||||||
|
import org.springframework.beans.factory.support.BeanDefinitionRegistry;
|
||||||
|
import org.springframework.beans.factory.support.BeanNameGenerator;
|
||||||
import org.springframework.boot.autoconfigure.SpringBootApplication;
|
import org.springframework.boot.autoconfigure.SpringBootApplication;
|
||||||
import org.springframework.boot.builder.SpringApplicationBuilder;
|
import org.springframework.boot.builder.SpringApplicationBuilder;
|
||||||
|
import org.springframework.core.type.AnnotationMetadata;
|
||||||
|
|
||||||
|
import java.util.Optional;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* application 启动类
|
* application 启动类
|
||||||
@@ -14,7 +24,35 @@ import org.springframework.boot.builder.SpringApplicationBuilder;
|
|||||||
public class LaunchApplication {
|
public class LaunchApplication {
|
||||||
|
|
||||||
public static void main(String[] args) {
|
public static void main(String[] args) {
|
||||||
new SpringApplicationBuilder(LaunchApplication.class).run(args);
|
new SpringApplicationBuilder(LaunchApplication.class)
|
||||||
|
.beanNameGenerator(new CustomBeanNameGenerator())
|
||||||
|
.run(args);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 自定义 bean 名称生成器
|
||||||
|
*/
|
||||||
|
public static class CustomBeanNameGenerator implements BeanNameGenerator {
|
||||||
|
|
||||||
|
private static final String BEAN_ANNOTATION_CLASS_NAME = "org.springframework.stereotype.Component";
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String generateBeanName(BeanDefinition definition, BeanDefinitionRegistry registry) {
|
||||||
|
// 兼容注解自定义名称
|
||||||
|
if (definition instanceof AnnotatedBeanDefinition) {
|
||||||
|
AnnotationMetadata metadata = ((AnnotatedBeanDefinition) definition).getMetadata();
|
||||||
|
// 处理自定义 bean 名称
|
||||||
|
return Optional.of(metadata)
|
||||||
|
.map(s -> s.getAnnotationAttributes(BEAN_ANNOTATION_CLASS_NAME))
|
||||||
|
.map(s -> s.get(Const.VALUE))
|
||||||
|
.map(Object::toString)
|
||||||
|
.filter(Strings::isNotBlank)
|
||||||
|
.orElseGet(definition::getBeanClassName);
|
||||||
|
} else {
|
||||||
|
// 非注解形式默认使用默认名称
|
||||||
|
return BeanDefinitionReaderUtils.generateBeanName(definition, registry);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -7,6 +7,8 @@ spring:
|
|||||||
initial-size: 0
|
initial-size: 0
|
||||||
min-idle: 1
|
min-idle: 1
|
||||||
max-active: 5
|
max-active: 5
|
||||||
|
stat-view-servlet:
|
||||||
|
enabled: false
|
||||||
redis:
|
redis:
|
||||||
host: 127.0.0.1
|
host: 127.0.0.1
|
||||||
port: 6379
|
port: 6379
|
||||||
@@ -15,6 +17,19 @@ spring:
|
|||||||
threads: 2
|
threads: 2
|
||||||
netty-threads: 2
|
netty-threads: 2
|
||||||
minimum-idle-size: 2
|
minimum-idle-size: 2
|
||||||
|
boot:
|
||||||
|
admin:
|
||||||
|
client:
|
||||||
|
enabled: false
|
||||||
|
server:
|
||||||
|
enabled: false
|
||||||
|
|
||||||
|
management:
|
||||||
|
endpoints:
|
||||||
|
enabled-by-default: false
|
||||||
|
web:
|
||||||
|
exposure:
|
||||||
|
include: shutdown
|
||||||
|
|
||||||
mybatis-plus:
|
mybatis-plus:
|
||||||
configuration:
|
configuration:
|
||||||
|
|||||||
@@ -10,10 +10,13 @@ spring:
|
|||||||
min-idle: 5
|
min-idle: 5
|
||||||
# 最大连接池数量
|
# 最大连接池数量
|
||||||
max-active: 20
|
max-active: 20
|
||||||
web-stat-filter:
|
# 控制台
|
||||||
enabled: true
|
|
||||||
stat-view-servlet:
|
stat-view-servlet:
|
||||||
enabled: true
|
enabled: true
|
||||||
|
login-username: ${DRUID_USERNAME:admin}
|
||||||
|
login-password: ${DRUID_PASSWORD:admin}
|
||||||
|
web-stat-filter:
|
||||||
|
enabled: true
|
||||||
filter:
|
filter:
|
||||||
stat:
|
stat:
|
||||||
enabled: true
|
enabled: true
|
||||||
@@ -31,6 +34,16 @@ spring:
|
|||||||
quartz:
|
quartz:
|
||||||
threadPool:
|
threadPool:
|
||||||
threadCount: 10
|
threadCount: 10
|
||||||
|
boot:
|
||||||
|
admin:
|
||||||
|
client:
|
||||||
|
enabled: true
|
||||||
|
server:
|
||||||
|
enabled: true
|
||||||
|
|
||||||
|
management:
|
||||||
|
endpoints:
|
||||||
|
enabled-by-default: true
|
||||||
|
|
||||||
springdoc:
|
springdoc:
|
||||||
api-docs:
|
api-docs:
|
||||||
@@ -40,6 +53,7 @@ springdoc:
|
|||||||
|
|
||||||
knife4j:
|
knife4j:
|
||||||
enable: false
|
enable: false
|
||||||
|
production: true
|
||||||
|
|
||||||
orion:
|
orion:
|
||||||
# 是否为演示模式
|
# 是否为演示模式
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ server:
|
|||||||
|
|
||||||
spring:
|
spring:
|
||||||
application:
|
application:
|
||||||
name: orion-visor-launch
|
name: orion-visor
|
||||||
profiles:
|
profiles:
|
||||||
active: dev
|
active: dev
|
||||||
main:
|
main:
|
||||||
@@ -40,13 +40,14 @@ spring:
|
|||||||
# 最大生存的时间
|
# 最大生存的时间
|
||||||
max-evictable-idle-time-millis: 900000
|
max-evictable-idle-time-millis: 900000
|
||||||
validation-query: SELECT 1
|
validation-query: SELECT 1
|
||||||
web-stat-filter:
|
# 控制台
|
||||||
enabled: true
|
|
||||||
stat-view-servlet:
|
stat-view-servlet:
|
||||||
enabled: true
|
enabled: true
|
||||||
url-pattern: /druid/*
|
url-pattern: /druid/*
|
||||||
login-username:
|
login-username:
|
||||||
login-password:
|
login-password:
|
||||||
|
web-stat-filter:
|
||||||
|
enabled: true
|
||||||
filter:
|
filter:
|
||||||
stat:
|
stat:
|
||||||
enabled: true
|
enabled: true
|
||||||
@@ -88,7 +89,7 @@ spring:
|
|||||||
misfireThreshold: 60000
|
misfireThreshold: 60000
|
||||||
clusterCheckinInterval: 5000
|
clusterCheckinInterval: 5000
|
||||||
isClustered: true
|
isClustered: true
|
||||||
#连接池
|
# 连接池
|
||||||
threadPool:
|
threadPool:
|
||||||
class: org.quartz.simpl.SimpleThreadPool
|
class: org.quartz.simpl.SimpleThreadPool
|
||||||
threadCount: 5
|
threadCount: 5
|
||||||
@@ -98,12 +99,16 @@ spring:
|
|||||||
admin:
|
admin:
|
||||||
context-path: /admin
|
context-path: /admin
|
||||||
client:
|
client:
|
||||||
|
enabled: true
|
||||||
url: http://127.0.0.1:${server.port}/${spring.boot.admin.context-path}
|
url: http://127.0.0.1:${server.port}/${spring.boot.admin.context-path}
|
||||||
instance:
|
instance:
|
||||||
service-host-type: IP
|
service-host-type: IP
|
||||||
|
server:
|
||||||
|
enabled: true
|
||||||
|
|
||||||
management:
|
management:
|
||||||
endpoints:
|
endpoints:
|
||||||
|
enabled-by-default: true
|
||||||
web:
|
web:
|
||||||
base-path: /actuator
|
base-path: /actuator
|
||||||
exposure:
|
exposure:
|
||||||
@@ -137,7 +142,7 @@ knife4j:
|
|||||||
|
|
||||||
logging:
|
logging:
|
||||||
file:
|
file:
|
||||||
path: ${user.home}/orion/logs/orion-visor
|
path: ${user.home}/orion/logs/${spring.application.name}
|
||||||
name: ${logging.file.path}/app.log
|
name: ${logging.file.path}/app.log
|
||||||
logback:
|
logback:
|
||||||
rollingpolicy:
|
rollingpolicy:
|
||||||
@@ -215,10 +220,10 @@ orion:
|
|||||||
title: orion-visor 运维平台
|
title: orion-visor 运维平台
|
||||||
description: 一站式运维服务平台
|
description: 一站式运维服务平台
|
||||||
version: ${orion.version}
|
version: ${orion.version}
|
||||||
url: https://github.com/lijiahangmax/orion-visor
|
url: https://github.com/dromara/orion-visor
|
||||||
email: ljh1553488six@139.com
|
email: ljh1553488six@139.com
|
||||||
license: Apache-2.0
|
license: Apache-2.0
|
||||||
license-url: https://github.com/lijiahangmax/orion-visor/blob/main/LICENSE
|
license-url: https://github.com/dromara/orion-visor/blob/main/LICENSE
|
||||||
grouped-api:
|
grouped-api:
|
||||||
infra:
|
infra:
|
||||||
group: "infra - 基建模块"
|
group: "infra - 基建模块"
|
||||||
@@ -248,14 +253,14 @@ orion:
|
|||||||
timestamp-prefix: false
|
timestamp-prefix: false
|
||||||
date-directory: false
|
date-directory: false
|
||||||
storage-path: ${user.home}
|
storage-path: ${user.home}
|
||||||
base-path: /orion/orion-visor/storage
|
base-path: /orion/${spring.application.name}/storage
|
||||||
# 日志文件存储
|
# 日志文件存储
|
||||||
logs:
|
logs:
|
||||||
enabled: true
|
enabled: true
|
||||||
timestamp-prefix: false
|
timestamp-prefix: false
|
||||||
date-directory: false
|
date-directory: false
|
||||||
storage-path: ${user.home}
|
storage-path: ${user.home}
|
||||||
base-path: /orion/orion-visor/logs
|
base-path: /orion/${spring.application.name}/logs
|
||||||
security:
|
security:
|
||||||
password-encoder-length: 4
|
password-encoder-length: 4
|
||||||
# 匿名接口
|
# 匿名接口
|
||||||
|
|||||||
@@ -13,7 +13,7 @@
|
|||||||
<packaging>jar</packaging>
|
<packaging>jar</packaging>
|
||||||
|
|
||||||
<description>项目资产模块</description>
|
<description>项目资产模块</description>
|
||||||
<url>https://github.com/lijiahangmax/orion-visor</url>
|
<url>https://github.com/dromara/orion-visor</url>
|
||||||
|
|
||||||
<dependencies>
|
<dependencies>
|
||||||
<dependency>
|
<dependency>
|
||||||
|
|||||||
@@ -13,7 +13,7 @@
|
|||||||
<packaging>jar</packaging>
|
<packaging>jar</packaging>
|
||||||
|
|
||||||
<description>项目资产模块</description>
|
<description>项目资产模块</description>
|
||||||
<url>https://github.com/lijiahangmax/orion-visor</url>
|
<url>https://github.com/dromara/orion-visor</url>
|
||||||
|
|
||||||
<dependencies>
|
<dependencies>
|
||||||
<dependency>
|
<dependency>
|
||||||
|
|||||||
@@ -3,8 +3,7 @@ package com.orion.visor.module.asset.enums;
|
|||||||
import com.orion.visor.framework.common.enums.EnableStatus;
|
import com.orion.visor.framework.common.enums.EnableStatus;
|
||||||
import com.orion.visor.framework.common.handler.data.GenericsDataDefinition;
|
import com.orion.visor.framework.common.handler.data.GenericsDataDefinition;
|
||||||
import com.orion.visor.framework.common.handler.data.model.GenericsDataModel;
|
import com.orion.visor.framework.common.handler.data.model.GenericsDataModel;
|
||||||
import com.orion.visor.framework.common.handler.data.strategy.MapDataStrategy;
|
import com.orion.visor.framework.common.handler.data.strategy.GenericsDataStrategy;
|
||||||
import com.orion.visor.module.asset.handler.host.config.model.HostSshConfigModel;
|
|
||||||
import com.orion.visor.module.asset.handler.host.config.strategy.HostSshConfigStrategy;
|
import com.orion.visor.module.asset.handler.host.config.strategy.HostSshConfigStrategy;
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
@@ -24,7 +23,6 @@ public enum HostConfigTypeEnum implements GenericsDataDefinition {
|
|||||||
* SSH 配置
|
* SSH 配置
|
||||||
*/
|
*/
|
||||||
SSH("ssh",
|
SSH("ssh",
|
||||||
HostSshConfigModel.class,
|
|
||||||
HostSshConfigStrategy.class,
|
HostSshConfigStrategy.class,
|
||||||
EnableStatus.ENABLED.getValue()),
|
EnableStatus.ENABLED.getValue()),
|
||||||
|
|
||||||
@@ -32,9 +30,7 @@ public enum HostConfigTypeEnum implements GenericsDataDefinition {
|
|||||||
|
|
||||||
private final String type;
|
private final String type;
|
||||||
|
|
||||||
private final Class<? extends GenericsDataModel> model;
|
private final Class<? extends GenericsDataStrategy<? extends GenericsDataModel>> strategyClass;
|
||||||
|
|
||||||
private final Class<? extends MapDataStrategy<? extends GenericsDataModel>> strategy;
|
|
||||||
|
|
||||||
private final Integer defaultStatus;
|
private final Integer defaultStatus;
|
||||||
|
|
||||||
|
|||||||
@@ -2,9 +2,7 @@ package com.orion.visor.module.asset.enums;
|
|||||||
|
|
||||||
import com.orion.visor.framework.common.handler.data.GenericsDataDefinition;
|
import com.orion.visor.framework.common.handler.data.GenericsDataDefinition;
|
||||||
import com.orion.visor.framework.common.handler.data.model.GenericsDataModel;
|
import com.orion.visor.framework.common.handler.data.model.GenericsDataModel;
|
||||||
import com.orion.visor.framework.common.handler.data.strategy.MapDataStrategy;
|
import com.orion.visor.framework.common.handler.data.strategy.GenericsDataStrategy;
|
||||||
import com.orion.visor.module.asset.handler.host.extra.model.HostLabelExtraModel;
|
|
||||||
import com.orion.visor.module.asset.handler.host.extra.model.HostSshExtraModel;
|
|
||||||
import com.orion.visor.module.asset.handler.host.extra.strategy.HostLabelExtraStrategy;
|
import com.orion.visor.module.asset.handler.host.extra.strategy.HostLabelExtraStrategy;
|
||||||
import com.orion.visor.module.asset.handler.host.extra.strategy.HostSshExtraStrategy;
|
import com.orion.visor.module.asset.handler.host.extra.strategy.HostSshExtraStrategy;
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
@@ -24,20 +22,18 @@ public enum HostExtraItemEnum implements GenericsDataDefinition {
|
|||||||
/**
|
/**
|
||||||
* SSH 额外配置
|
* SSH 额外配置
|
||||||
*/
|
*/
|
||||||
SSH("ssh", HostSshExtraModel.class, HostSshExtraStrategy.class),
|
SSH("ssh", HostSshExtraStrategy.class),
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 标签额外配置
|
* 标签额外配置
|
||||||
*/
|
*/
|
||||||
LABEL("label", HostLabelExtraModel.class, HostLabelExtraStrategy.class),
|
LABEL("label", HostLabelExtraStrategy.class),
|
||||||
|
|
||||||
;
|
;
|
||||||
|
|
||||||
private final String item;
|
private final String item;
|
||||||
|
|
||||||
private final Class<? extends GenericsDataModel> model;
|
private final Class<? extends GenericsDataStrategy<? extends GenericsDataModel>> strategyClass;
|
||||||
|
|
||||||
private final Class<? extends MapDataStrategy<? extends GenericsDataModel>> strategy;
|
|
||||||
|
|
||||||
public static HostExtraItemEnum of(String type) {
|
public static HostExtraItemEnum of(String type) {
|
||||||
if (type == null) {
|
if (type == null) {
|
||||||
|
|||||||
@@ -2,7 +2,6 @@ package com.orion.visor.module.asset.handler.host.config.model;
|
|||||||
|
|
||||||
import com.orion.visor.framework.common.handler.data.model.GenericsDataModel;
|
import com.orion.visor.framework.common.handler.data.model.GenericsDataModel;
|
||||||
import com.orion.visor.framework.common.security.UpdatePasswordAction;
|
import com.orion.visor.framework.common.security.UpdatePasswordAction;
|
||||||
import io.swagger.v3.oas.annotations.media.Schema;
|
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
import lombok.Builder;
|
import lombok.Builder;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
@@ -24,61 +23,86 @@ import javax.validation.constraints.Size;
|
|||||||
@Builder
|
@Builder
|
||||||
@NoArgsConstructor
|
@NoArgsConstructor
|
||||||
@AllArgsConstructor
|
@AllArgsConstructor
|
||||||
@Schema(name = "HostSftpConfig", description = "主机 SSH 配置")
|
|
||||||
public class HostSshConfigModel implements GenericsDataModel, UpdatePasswordAction {
|
public class HostSshConfigModel implements GenericsDataModel, UpdatePasswordAction {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* ssh 端口
|
||||||
|
*/
|
||||||
@NotNull
|
@NotNull
|
||||||
@Range(min = 1, max = 65535)
|
@Range(min = 1, max = 65535)
|
||||||
@Schema(description = "ssh 端口")
|
|
||||||
private Integer port;
|
private Integer port;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 用户名
|
||||||
|
*/
|
||||||
@Size(max = 128)
|
@Size(max = 128)
|
||||||
@Schema(description = "用户名")
|
|
||||||
private String username;
|
private String username;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 认证方式
|
||||||
|
*/
|
||||||
@NotBlank
|
@NotBlank
|
||||||
@Size(max = 12)
|
@Size(max = 12)
|
||||||
@Schema(description = "认证方式")
|
|
||||||
private String authType;
|
private String authType;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 系统类型
|
||||||
|
*/
|
||||||
@NotBlank
|
@NotBlank
|
||||||
@Size(max = 12)
|
@Size(max = 12)
|
||||||
@Schema(description = "系统类型")
|
|
||||||
private String osType;
|
private String osType;
|
||||||
|
|
||||||
@Schema(description = "密码")
|
/**
|
||||||
|
* 密码
|
||||||
|
*/
|
||||||
private String password;
|
private String password;
|
||||||
|
|
||||||
@Schema(description = "身份id")
|
/**
|
||||||
|
* 身份id
|
||||||
|
*/
|
||||||
private Long identityId;
|
private Long identityId;
|
||||||
|
|
||||||
@Schema(description = "密钥id")
|
/**
|
||||||
|
* 密钥id
|
||||||
|
*/
|
||||||
private Long keyId;
|
private Long keyId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 连接超时时间
|
||||||
|
*/
|
||||||
@NotNull
|
@NotNull
|
||||||
@Range(min = 0, max = 100000)
|
@Range(min = 0, max = 100000)
|
||||||
@Schema(description = "连接超时时间")
|
|
||||||
private Integer connectTimeout;
|
private Integer connectTimeout;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* SSH输出编码
|
||||||
|
*/
|
||||||
@NotBlank
|
@NotBlank
|
||||||
@Size(max = 12)
|
@Size(max = 12)
|
||||||
@Schema(description = "SSH输出编码")
|
|
||||||
private String charset;
|
private String charset;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 文件名称编码
|
||||||
|
*/
|
||||||
@NotBlank
|
@NotBlank
|
||||||
@Size(max = 12)
|
@Size(max = 12)
|
||||||
@Schema(description = "文件名称编码")
|
|
||||||
private String fileNameCharset;
|
private String fileNameCharset;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 文件内容编码
|
||||||
|
*/
|
||||||
@NotBlank
|
@NotBlank
|
||||||
@Size(max = 12)
|
@Size(max = 12)
|
||||||
@Schema(description = "文件内容编码")
|
|
||||||
private String fileContentCharset;
|
private String fileContentCharset;
|
||||||
|
|
||||||
@Schema(description = "是否使用新密码 仅参数")
|
/**
|
||||||
|
* 是否使用新密码 仅参数
|
||||||
|
*/
|
||||||
private Boolean useNewPassword;
|
private Boolean useNewPassword;
|
||||||
|
|
||||||
@Schema(description = "是否已设置密码 仅返回")
|
/**
|
||||||
|
* 是否已设置密码 仅返回
|
||||||
|
*/
|
||||||
private Boolean hasPassword;
|
private Boolean hasPassword;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,13 +1,12 @@
|
|||||||
package com.orion.visor.module.asset.handler.host.config.strategy;
|
package com.orion.visor.module.asset.handler.host.config.strategy;
|
||||||
|
|
||||||
import com.alibaba.fastjson.JSON;
|
|
||||||
import com.orion.lang.utils.Booleans;
|
import com.orion.lang.utils.Booleans;
|
||||||
import com.orion.lang.utils.Charsets;
|
import com.orion.lang.utils.Charsets;
|
||||||
import com.orion.lang.utils.Exceptions;
|
import com.orion.lang.utils.Exceptions;
|
||||||
import com.orion.lang.utils.Strings;
|
import com.orion.lang.utils.Strings;
|
||||||
import com.orion.visor.framework.common.constant.Const;
|
import com.orion.visor.framework.common.constant.Const;
|
||||||
import com.orion.visor.framework.common.constant.ErrorMessage;
|
import com.orion.visor.framework.common.constant.ErrorMessage;
|
||||||
import com.orion.visor.framework.common.handler.data.strategy.MapDataStrategy;
|
import com.orion.visor.framework.common.handler.data.strategy.AbstractGenericsDataStrategy;
|
||||||
import com.orion.visor.framework.common.security.PasswordModifier;
|
import com.orion.visor.framework.common.security.PasswordModifier;
|
||||||
import com.orion.visor.framework.common.utils.Valid;
|
import com.orion.visor.framework.common.utils.Valid;
|
||||||
import com.orion.visor.module.asset.dao.HostIdentityDAO;
|
import com.orion.visor.module.asset.dao.HostIdentityDAO;
|
||||||
@@ -18,7 +17,6 @@ import com.orion.visor.module.asset.handler.host.config.model.HostSshConfigModel
|
|||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
import java.util.Map;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 主机 SSH 配置策略
|
* 主机 SSH 配置策略
|
||||||
@@ -28,7 +26,7 @@ import java.util.Map;
|
|||||||
* @since 2023/9/19 14:26
|
* @since 2023/9/19 14:26
|
||||||
*/
|
*/
|
||||||
@Component
|
@Component
|
||||||
public class HostSshConfigStrategy implements MapDataStrategy<HostSshConfigModel> {
|
public class HostSshConfigStrategy extends AbstractGenericsDataStrategy<HostSshConfigModel> {
|
||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
private HostKeyDAO hostKeyDAO;
|
private HostKeyDAO hostKeyDAO;
|
||||||
@@ -40,6 +38,10 @@ public class HostSshConfigStrategy implements MapDataStrategy<HostSshConfigModel
|
|||||||
|
|
||||||
private static final String USERNAME = "root";
|
private static final String USERNAME = "root";
|
||||||
|
|
||||||
|
public HostSshConfigStrategy() {
|
||||||
|
super(HostSshConfigModel.class);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public HostSshConfigModel getDefault() {
|
public HostSshConfigModel getDefault() {
|
||||||
return HostSshConfigModel.builder()
|
return HostSshConfigModel.builder()
|
||||||
@@ -55,7 +57,7 @@ public class HostSshConfigStrategy implements MapDataStrategy<HostSshConfigModel
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void preValid(HostSshConfigModel model) {
|
protected void preValid(HostSshConfigModel model) {
|
||||||
// 验证认证类型
|
// 验证认证类型
|
||||||
Valid.valid(HostSshAuthTypeEnum::of, model.getAuthType());
|
Valid.valid(HostSshAuthTypeEnum::of, model.getAuthType());
|
||||||
// 验证系统版本
|
// 验证系统版本
|
||||||
@@ -77,13 +79,13 @@ public class HostSshConfigStrategy implements MapDataStrategy<HostSshConfigModel
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void valid(HostSshConfigModel model) {
|
protected void valid(HostSshConfigModel model) {
|
||||||
// 验证填充后的参数
|
// 验证填充后的参数
|
||||||
Valid.valid(model);
|
Valid.valid(model);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void updateFill(HostSshConfigModel beforeModel, HostSshConfigModel afterModel) {
|
protected void updateFill(HostSshConfigModel beforeModel, HostSshConfigModel afterModel) {
|
||||||
// 加密密码
|
// 加密密码
|
||||||
this.checkEncryptPassword(beforeModel, afterModel);
|
this.checkEncryptPassword(beforeModel, afterModel);
|
||||||
afterModel.setHasPassword(null);
|
afterModel.setHasPassword(null);
|
||||||
@@ -91,14 +93,12 @@ public class HostSshConfigStrategy implements MapDataStrategy<HostSshConfigModel
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Map<String, Object> toView(String config) {
|
public void toView(HostSshConfigModel model) {
|
||||||
if (config == null) {
|
if (model == null) {
|
||||||
return null;
|
return;
|
||||||
}
|
}
|
||||||
HostSshConfigModel model = JSON.parseObject(config, HostSshConfigModel.class);
|
|
||||||
model.setHasPassword(Strings.isNotBlank(model.getPassword()));
|
model.setHasPassword(Strings.isNotBlank(model.getPassword()));
|
||||||
model.setPassword(null);
|
model.setPassword(null);
|
||||||
return JSON.parseObject(JSON.toJSONString(model));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
package com.orion.visor.module.asset.handler.host.exec.command;
|
package com.orion.visor.module.asset.handler.host.exec.command;
|
||||||
|
|
||||||
import com.orion.visor.module.asset.define.AssetThreadPools;
|
import com.orion.visor.module.asset.define.AssetThreadPools;
|
||||||
import com.orion.visor.module.asset.handler.host.exec.command.dto.ExecCommandDTO;
|
|
||||||
import com.orion.visor.module.asset.handler.host.exec.command.handler.ExecTaskHandler;
|
import com.orion.visor.module.asset.handler.host.exec.command.handler.ExecTaskHandler;
|
||||||
|
import com.orion.visor.module.asset.handler.host.exec.command.model.ExecCommandDTO;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 批量执行命令执行器
|
* 批量执行命令执行器
|
||||||
|
|||||||
@@ -1,56 +0,0 @@
|
|||||||
package com.orion.visor.module.asset.handler.host.exec.command.dto;
|
|
||||||
|
|
||||||
import io.swagger.v3.oas.annotations.media.Schema;
|
|
||||||
import lombok.AllArgsConstructor;
|
|
||||||
import lombok.Builder;
|
|
||||||
import lombok.Data;
|
|
||||||
import lombok.NoArgsConstructor;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 批量执行启动主机对象
|
|
||||||
*
|
|
||||||
* @author Jiahang Li
|
|
||||||
* @version 1.0.0
|
|
||||||
* @since 2024/3/11 15:46
|
|
||||||
*/
|
|
||||||
@Data
|
|
||||||
@Builder
|
|
||||||
@NoArgsConstructor
|
|
||||||
@AllArgsConstructor
|
|
||||||
@Schema(name = "ExecCommandHostDTO", description = "批量执行启动主机对象")
|
|
||||||
public class ExecCommandHostDTO {
|
|
||||||
|
|
||||||
@Schema(description = "hostLogId")
|
|
||||||
private Long hostLogId;
|
|
||||||
|
|
||||||
@Schema(description = "hostId")
|
|
||||||
private Long hostId;
|
|
||||||
|
|
||||||
@Schema(description = "主机名称")
|
|
||||||
private String hostName;
|
|
||||||
|
|
||||||
@Schema(description = "主机地址")
|
|
||||||
private String hostAddress;
|
|
||||||
|
|
||||||
@Schema(description = "日志文件路径")
|
|
||||||
private String logPath;
|
|
||||||
|
|
||||||
@Schema(description = "脚本路径")
|
|
||||||
private String scriptPath;
|
|
||||||
|
|
||||||
@Schema(description = "执行命令")
|
|
||||||
private String command;
|
|
||||||
|
|
||||||
@Schema(description = "主机用户")
|
|
||||||
private String username;
|
|
||||||
|
|
||||||
@Schema(description = "命令编码")
|
|
||||||
private String charset;
|
|
||||||
|
|
||||||
@Schema(description = "文件名称编码")
|
|
||||||
private String fileNameCharset;
|
|
||||||
|
|
||||||
@Schema(description = "文件内容编码")
|
|
||||||
private String fileContentCharset;
|
|
||||||
|
|
||||||
}
|
|
||||||
@@ -20,8 +20,8 @@ import com.orion.visor.framework.common.file.FileClient;
|
|||||||
import com.orion.visor.module.asset.dao.ExecHostLogDAO;
|
import com.orion.visor.module.asset.dao.ExecHostLogDAO;
|
||||||
import com.orion.visor.module.asset.entity.domain.ExecHostLogDO;
|
import com.orion.visor.module.asset.entity.domain.ExecHostLogDO;
|
||||||
import com.orion.visor.module.asset.enums.ExecHostStatusEnum;
|
import com.orion.visor.module.asset.enums.ExecHostStatusEnum;
|
||||||
import com.orion.visor.module.asset.handler.host.exec.command.dto.ExecCommandDTO;
|
import com.orion.visor.module.asset.handler.host.exec.command.model.ExecCommandDTO;
|
||||||
import com.orion.visor.module.asset.handler.host.exec.command.dto.ExecCommandHostDTO;
|
import com.orion.visor.module.asset.handler.host.exec.command.model.ExecCommandHostDTO;
|
||||||
import com.orion.visor.module.asset.handler.host.exec.log.manager.ExecLogManager;
|
import com.orion.visor.module.asset.handler.host.exec.log.manager.ExecLogManager;
|
||||||
import com.orion.visor.module.asset.service.HostTerminalService;
|
import com.orion.visor.module.asset.service.HostTerminalService;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
|
|||||||
@@ -9,8 +9,8 @@ import com.orion.lang.utils.time.Dates;
|
|||||||
import com.orion.net.host.ssh.ExitCode;
|
import com.orion.net.host.ssh.ExitCode;
|
||||||
import com.orion.visor.framework.common.constant.Const;
|
import com.orion.visor.framework.common.constant.Const;
|
||||||
import com.orion.visor.module.asset.enums.ExecHostStatusEnum;
|
import com.orion.visor.module.asset.enums.ExecHostStatusEnum;
|
||||||
import com.orion.visor.module.asset.handler.host.exec.command.dto.ExecCommandDTO;
|
import com.orion.visor.module.asset.handler.host.exec.command.model.ExecCommandDTO;
|
||||||
import com.orion.visor.module.asset.handler.host.exec.command.dto.ExecCommandHostDTO;
|
import com.orion.visor.module.asset.handler.host.exec.command.model.ExecCommandHostDTO;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 命令执行器 ansi 日志输出
|
* 命令执行器 ansi 日志输出
|
||||||
|
|||||||
@@ -2,8 +2,8 @@ package com.orion.visor.module.asset.handler.host.exec.command.handler;
|
|||||||
|
|
||||||
import com.orion.lang.support.timeout.TimeoutChecker;
|
import com.orion.lang.support.timeout.TimeoutChecker;
|
||||||
import com.orion.lang.support.timeout.TimeoutEndpoint;
|
import com.orion.lang.support.timeout.TimeoutEndpoint;
|
||||||
import com.orion.visor.module.asset.handler.host.exec.command.dto.ExecCommandDTO;
|
import com.orion.visor.module.asset.handler.host.exec.command.model.ExecCommandDTO;
|
||||||
import com.orion.visor.module.asset.handler.host.exec.command.dto.ExecCommandHostDTO;
|
import com.orion.visor.module.asset.handler.host.exec.command.model.ExecCommandHostDTO;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -18,9 +18,9 @@ import com.orion.visor.module.asset.define.message.ExecMessageDefine;
|
|||||||
import com.orion.visor.module.asset.entity.domain.ExecLogDO;
|
import com.orion.visor.module.asset.entity.domain.ExecLogDO;
|
||||||
import com.orion.visor.module.asset.enums.ExecHostStatusEnum;
|
import com.orion.visor.module.asset.enums.ExecHostStatusEnum;
|
||||||
import com.orion.visor.module.asset.enums.ExecStatusEnum;
|
import com.orion.visor.module.asset.enums.ExecStatusEnum;
|
||||||
import com.orion.visor.module.asset.handler.host.exec.command.dto.ExecCommandDTO;
|
|
||||||
import com.orion.visor.module.asset.handler.host.exec.command.dto.ExecCommandHostDTO;
|
|
||||||
import com.orion.visor.module.asset.handler.host.exec.command.manager.ExecTaskManager;
|
import com.orion.visor.module.asset.handler.host.exec.command.manager.ExecTaskManager;
|
||||||
|
import com.orion.visor.module.asset.handler.host.exec.command.model.ExecCommandDTO;
|
||||||
|
import com.orion.visor.module.asset.handler.host.exec.command.model.ExecCommandHostDTO;
|
||||||
import com.orion.visor.module.infra.api.SystemMessageApi;
|
import com.orion.visor.module.infra.api.SystemMessageApi;
|
||||||
import com.orion.visor.module.infra.entity.dto.message.SystemMessageDTO;
|
import com.orion.visor.module.infra.entity.dto.message.SystemMessageDTO;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
package com.orion.visor.module.asset.handler.host.exec.command.dto;
|
package com.orion.visor.module.asset.handler.host.exec.command.model;
|
||||||
|
|
||||||
import io.swagger.v3.oas.annotations.media.Schema;
|
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
import lombok.Builder;
|
import lombok.Builder;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
@@ -19,31 +18,46 @@ import java.util.List;
|
|||||||
@Builder
|
@Builder
|
||||||
@NoArgsConstructor
|
@NoArgsConstructor
|
||||||
@AllArgsConstructor
|
@AllArgsConstructor
|
||||||
@Schema(name = "ExecCommandDTO", description = "批量执行启动对象")
|
|
||||||
public class ExecCommandDTO {
|
public class ExecCommandDTO {
|
||||||
|
|
||||||
@Schema(description = "logId")
|
/**
|
||||||
|
* logId
|
||||||
|
*/
|
||||||
private Long logId;
|
private Long logId;
|
||||||
|
|
||||||
@Schema(description = "用户id")
|
/**
|
||||||
|
* 用户id
|
||||||
|
*/
|
||||||
private Long userId;
|
private Long userId;
|
||||||
|
|
||||||
@Schema(description = "用户名")
|
/**
|
||||||
|
* 用户名
|
||||||
|
*/
|
||||||
private String username;
|
private String username;
|
||||||
|
|
||||||
@Schema(description = "执行描述")
|
/**
|
||||||
|
* 执行描述
|
||||||
|
*/
|
||||||
private String description;
|
private String description;
|
||||||
|
|
||||||
@Schema(description = "执行序列")
|
/**
|
||||||
|
* 执行序列
|
||||||
|
*/
|
||||||
private Integer execSeq;
|
private Integer execSeq;
|
||||||
|
|
||||||
@Schema(description = "超时时间")
|
/**
|
||||||
|
* 超时时间
|
||||||
|
*/
|
||||||
private Integer timeout;
|
private Integer timeout;
|
||||||
|
|
||||||
@Schema(description = "是否使用脚本执行")
|
/**
|
||||||
|
* 是否使用脚本执行
|
||||||
|
*/
|
||||||
private Boolean scriptExec;
|
private Boolean scriptExec;
|
||||||
|
|
||||||
@Schema(description = "执行主机")
|
/**
|
||||||
|
* 执行主机
|
||||||
|
*/
|
||||||
private List<ExecCommandHostDTO> hosts;
|
private List<ExecCommandHostDTO> hosts;
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -0,0 +1,76 @@
|
|||||||
|
package com.orion.visor.module.asset.handler.host.exec.command.model;
|
||||||
|
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Builder;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 批量执行启动主机对象
|
||||||
|
*
|
||||||
|
* @author Jiahang Li
|
||||||
|
* @version 1.0.0
|
||||||
|
* @since 2024/3/11 15:46
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@Builder
|
||||||
|
@NoArgsConstructor
|
||||||
|
@AllArgsConstructor
|
||||||
|
public class ExecCommandHostDTO {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* hostLogId
|
||||||
|
*/
|
||||||
|
private Long hostLogId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* hostId
|
||||||
|
*/
|
||||||
|
private Long hostId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 主机名称
|
||||||
|
*/
|
||||||
|
private String hostName;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 主机地址
|
||||||
|
*/
|
||||||
|
private String hostAddress;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 日志文件路径
|
||||||
|
*/
|
||||||
|
private String logPath;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 脚本路径
|
||||||
|
*/
|
||||||
|
private String scriptPath;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 执行命令
|
||||||
|
*/
|
||||||
|
private String command;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 主机用户
|
||||||
|
*/
|
||||||
|
private String username;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 命令编码
|
||||||
|
*/
|
||||||
|
private String charset;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 文件名称编码
|
||||||
|
*/
|
||||||
|
private String fileNameCharset;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 文件内容编码
|
||||||
|
*/
|
||||||
|
private String fileContentCharset;
|
||||||
|
|
||||||
|
}
|
||||||
@@ -1,5 +1,6 @@
|
|||||||
package com.orion.visor.module.asset.handler.host.exec.log;
|
package com.orion.visor.module.asset.handler.host.exec.log;
|
||||||
|
|
||||||
|
import com.orion.visor.framework.common.annotation.Keep;
|
||||||
import com.orion.visor.framework.common.constant.ExtraFieldConst;
|
import com.orion.visor.framework.common.constant.ExtraFieldConst;
|
||||||
import com.orion.visor.framework.common.file.FileClient;
|
import com.orion.visor.framework.common.file.FileClient;
|
||||||
import com.orion.visor.framework.websocket.core.utils.WebSockets;
|
import com.orion.visor.framework.websocket.core.utils.WebSockets;
|
||||||
@@ -29,6 +30,7 @@ import javax.annotation.Resource;
|
|||||||
@Component
|
@Component
|
||||||
public class ExecLogTailHandler extends AbstractWebSocketHandler {
|
public class ExecLogTailHandler extends AbstractWebSocketHandler {
|
||||||
|
|
||||||
|
@Keep
|
||||||
@Resource
|
@Resource
|
||||||
private FileClient logsFileClient;
|
private FileClient logsFileClient;
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
package com.orion.visor.module.asset.handler.host.extra.model;
|
package com.orion.visor.module.asset.handler.host.extra.model;
|
||||||
|
|
||||||
import com.orion.visor.framework.common.handler.data.model.GenericsDataModel;
|
import com.orion.visor.framework.common.handler.data.model.GenericsDataModel;
|
||||||
import io.swagger.v3.oas.annotations.media.Schema;
|
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
import lombok.Builder;
|
import lombok.Builder;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
@@ -18,13 +17,16 @@ import lombok.NoArgsConstructor;
|
|||||||
@Builder
|
@Builder
|
||||||
@NoArgsConstructor
|
@NoArgsConstructor
|
||||||
@AllArgsConstructor
|
@AllArgsConstructor
|
||||||
@Schema(name = "HostLabelExtraModel", description = "主机拓展信息 - 标签模型")
|
|
||||||
public class HostLabelExtraModel implements GenericsDataModel {
|
public class HostLabelExtraModel implements GenericsDataModel {
|
||||||
|
|
||||||
@Schema(description = "别名")
|
/**
|
||||||
|
* 别名
|
||||||
|
*/
|
||||||
private String alias;
|
private String alias;
|
||||||
|
|
||||||
@Schema(description = "颜色")
|
/**
|
||||||
|
* 颜色
|
||||||
|
*/
|
||||||
private String color;
|
private String color;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
package com.orion.visor.module.asset.handler.host.extra.model;
|
package com.orion.visor.module.asset.handler.host.extra.model;
|
||||||
|
|
||||||
import com.orion.visor.framework.common.handler.data.model.GenericsDataModel;
|
import com.orion.visor.framework.common.handler.data.model.GenericsDataModel;
|
||||||
import io.swagger.v3.oas.annotations.media.Schema;
|
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
import lombok.Builder;
|
import lombok.Builder;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
@@ -18,19 +17,26 @@ import lombok.NoArgsConstructor;
|
|||||||
@Builder
|
@Builder
|
||||||
@NoArgsConstructor
|
@NoArgsConstructor
|
||||||
@AllArgsConstructor
|
@AllArgsConstructor
|
||||||
@Schema(name = "HostExtraSshModel", description = "主机拓展信息 - ssh 模型")
|
|
||||||
public class HostSshExtraModel implements GenericsDataModel {
|
public class HostSshExtraModel implements GenericsDataModel {
|
||||||
|
|
||||||
@Schema(description = "认证方式")
|
/**
|
||||||
|
* 认证方式
|
||||||
|
*/
|
||||||
private String authType;
|
private String authType;
|
||||||
|
|
||||||
@Schema(description = "认证方式")
|
/**
|
||||||
|
* 认证方式
|
||||||
|
*/
|
||||||
private String username;
|
private String username;
|
||||||
|
|
||||||
@Schema(description = "主机密钥")
|
/**
|
||||||
|
* 主机密钥
|
||||||
|
*/
|
||||||
private Long keyId;
|
private Long keyId;
|
||||||
|
|
||||||
@Schema(description = "主机身份")
|
/**
|
||||||
|
* 主机身份
|
||||||
|
*/
|
||||||
private Long identityId;
|
private Long identityId;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
package com.orion.visor.module.asset.handler.host.extra.strategy;
|
package com.orion.visor.module.asset.handler.host.extra.strategy;
|
||||||
|
|
||||||
import com.orion.visor.framework.common.constant.Const;
|
import com.orion.visor.framework.common.constant.Const;
|
||||||
import com.orion.visor.framework.common.handler.data.strategy.MapDataStrategy;
|
import com.orion.visor.framework.common.handler.data.strategy.AbstractGenericsDataStrategy;
|
||||||
import com.orion.visor.module.asset.handler.host.extra.model.HostLabelExtraModel;
|
import com.orion.visor.module.asset.handler.host.extra.model.HostLabelExtraModel;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
@@ -13,7 +13,11 @@ import org.springframework.stereotype.Component;
|
|||||||
* @since 2024/2/29 23:16
|
* @since 2024/2/29 23:16
|
||||||
*/
|
*/
|
||||||
@Component
|
@Component
|
||||||
public class HostLabelExtraStrategy implements MapDataStrategy<HostLabelExtraModel> {
|
public class HostLabelExtraStrategy extends AbstractGenericsDataStrategy<HostLabelExtraModel> {
|
||||||
|
|
||||||
|
public HostLabelExtraStrategy() {
|
||||||
|
super(HostLabelExtraModel.class);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public HostLabelExtraModel getDefault() {
|
public HostLabelExtraModel getDefault() {
|
||||||
@@ -36,12 +40,4 @@ public class HostLabelExtraStrategy implements MapDataStrategy<HostLabelExtraMod
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public void preValid(HostLabelExtraModel model) {
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void valid(HostLabelExtraModel model) {
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
package com.orion.visor.module.asset.handler.host.extra.strategy;
|
package com.orion.visor.module.asset.handler.host.extra.strategy;
|
||||||
|
|
||||||
import com.orion.visor.framework.common.constant.ErrorMessage;
|
import com.orion.visor.framework.common.constant.ErrorMessage;
|
||||||
import com.orion.visor.framework.common.handler.data.strategy.MapDataStrategy;
|
import com.orion.visor.framework.common.handler.data.strategy.AbstractGenericsDataStrategy;
|
||||||
import com.orion.visor.framework.common.utils.Valid;
|
import com.orion.visor.framework.common.utils.Valid;
|
||||||
import com.orion.visor.framework.security.core.utils.SecurityUtils;
|
import com.orion.visor.framework.security.core.utils.SecurityUtils;
|
||||||
import com.orion.visor.module.asset.dao.HostIdentityDAO;
|
import com.orion.visor.module.asset.dao.HostIdentityDAO;
|
||||||
@@ -22,7 +22,7 @@ import javax.annotation.Resource;
|
|||||||
* @since 2023/12/20 22:17
|
* @since 2023/12/20 22:17
|
||||||
*/
|
*/
|
||||||
@Component
|
@Component
|
||||||
public class HostSshExtraStrategy implements MapDataStrategy<HostSshExtraModel> {
|
public class HostSshExtraStrategy extends AbstractGenericsDataStrategy<HostSshExtraModel> {
|
||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
private HostKeyDAO hostKeyDAO;
|
private HostKeyDAO hostKeyDAO;
|
||||||
@@ -33,6 +33,10 @@ public class HostSshExtraStrategy implements MapDataStrategy<HostSshExtraModel>
|
|||||||
@Resource
|
@Resource
|
||||||
private DataPermissionApi dataPermissionApi;
|
private DataPermissionApi dataPermissionApi;
|
||||||
|
|
||||||
|
public HostSshExtraStrategy() {
|
||||||
|
super(HostSshExtraModel.class);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public HostSshExtraModel getDefault() {
|
public HostSshExtraModel getDefault() {
|
||||||
return HostSshExtraModel.builder()
|
return HostSshExtraModel.builder()
|
||||||
@@ -40,10 +44,6 @@ public class HostSshExtraStrategy implements MapDataStrategy<HostSshExtraModel>
|
|||||||
.build();
|
.build();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public void updateFill(HostSshExtraModel beforeModel, HostSshExtraModel afterModel) {
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void preValid(HostSshExtraModel model) {
|
public void preValid(HostSshExtraModel model) {
|
||||||
HostExtraSshAuthTypeEnum authType = Valid.valid(HostExtraSshAuthTypeEnum::of, model.getAuthType());
|
HostExtraSshAuthTypeEnum authType = Valid.valid(HostExtraSshAuthTypeEnum::of, model.getAuthType());
|
||||||
@@ -79,8 +79,4 @@ public class HostSshExtraStrategy implements MapDataStrategy<HostSshExtraModel>
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public void valid(HostSshExtraModel model) {
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
package com.orion.visor.module.asset.handler.host.terminal.model;
|
package com.orion.visor.module.asset.handler.host.terminal.model;
|
||||||
|
|
||||||
import io.swagger.v3.oas.annotations.media.Schema;
|
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.NoArgsConstructor;
|
import lombok.NoArgsConstructor;
|
||||||
@@ -17,13 +16,16 @@ import lombok.experimental.SuperBuilder;
|
|||||||
@SuperBuilder
|
@SuperBuilder
|
||||||
@NoArgsConstructor
|
@NoArgsConstructor
|
||||||
@AllArgsConstructor
|
@AllArgsConstructor
|
||||||
@Schema(name = "TerminalBasePayload", description = "终端基础 payload")
|
|
||||||
public class TerminalBasePayload {
|
public class TerminalBasePayload {
|
||||||
|
|
||||||
@Schema(description = "会话id")
|
/**
|
||||||
|
* 会话id
|
||||||
|
*/
|
||||||
private String sessionId;
|
private String sessionId;
|
||||||
|
|
||||||
@Schema(description = "消息类型")
|
/**
|
||||||
|
* 消息类型
|
||||||
|
*/
|
||||||
private String type;
|
private String type;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,7 +1,5 @@
|
|||||||
package com.orion.visor.module.asset.handler.host.terminal.model;
|
package com.orion.visor.module.asset.handler.host.terminal.model;
|
||||||
|
|
||||||
import com.orion.visor.framework.desensitize.core.annotation.DesensitizeObject;
|
|
||||||
import io.swagger.v3.oas.annotations.media.Schema;
|
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
import lombok.Builder;
|
import lombok.Builder;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
@@ -18,35 +16,51 @@ import lombok.NoArgsConstructor;
|
|||||||
@Builder
|
@Builder
|
||||||
@NoArgsConstructor
|
@NoArgsConstructor
|
||||||
@AllArgsConstructor
|
@AllArgsConstructor
|
||||||
@DesensitizeObject
|
|
||||||
@Schema(name = "TerminalConfig", description = "主机终端连接参数")
|
|
||||||
public class TerminalConfig {
|
public class TerminalConfig {
|
||||||
|
|
||||||
@Schema(description = "logId")
|
/**
|
||||||
|
* logId
|
||||||
|
*/
|
||||||
private Long logId;
|
private Long logId;
|
||||||
|
|
||||||
@Schema(description = "主机id")
|
/**
|
||||||
|
* 主机id
|
||||||
|
*/
|
||||||
private Long hostId;
|
private Long hostId;
|
||||||
|
|
||||||
@Schema(description = "主机名称")
|
/**
|
||||||
|
* 主机名称
|
||||||
|
*/
|
||||||
private String hostName;
|
private String hostName;
|
||||||
|
|
||||||
@Schema(description = "主机地址")
|
/**
|
||||||
|
* 主机地址
|
||||||
|
*/
|
||||||
private String address;
|
private String address;
|
||||||
|
|
||||||
@Schema(description = "cols")
|
/**
|
||||||
|
* cols
|
||||||
|
*/
|
||||||
private Integer cols;
|
private Integer cols;
|
||||||
|
|
||||||
@Schema(description = "rows")
|
/**
|
||||||
|
* rows
|
||||||
|
*/
|
||||||
private Integer rows;
|
private Integer rows;
|
||||||
|
|
||||||
@Schema(description = "SSH输出编码")
|
/**
|
||||||
|
* SSH输出编码
|
||||||
|
*/
|
||||||
private String charset;
|
private String charset;
|
||||||
|
|
||||||
@Schema(description = "文件名称编码")
|
/**
|
||||||
|
* 文件名称编码
|
||||||
|
*/
|
||||||
private String fileNameCharset;
|
private String fileNameCharset;
|
||||||
|
|
||||||
@Schema(description = "文件内容编码")
|
/**
|
||||||
|
* 文件内容编码
|
||||||
|
*/
|
||||||
private String fileContentCharset;
|
private String fileContentCharset;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
package com.orion.visor.module.asset.handler.host.terminal.model.request;
|
package com.orion.visor.module.asset.handler.host.terminal.model.request;
|
||||||
|
|
||||||
import com.orion.visor.module.asset.handler.host.terminal.model.TerminalBasePayload;
|
import com.orion.visor.module.asset.handler.host.terminal.model.TerminalBasePayload;
|
||||||
import io.swagger.v3.oas.annotations.media.Schema;
|
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.EqualsAndHashCode;
|
import lombok.EqualsAndHashCode;
|
||||||
@@ -20,10 +19,11 @@ import lombok.experimental.SuperBuilder;
|
|||||||
@NoArgsConstructor
|
@NoArgsConstructor
|
||||||
@AllArgsConstructor
|
@AllArgsConstructor
|
||||||
@EqualsAndHashCode(callSuper = true)
|
@EqualsAndHashCode(callSuper = true)
|
||||||
@Schema(name = "SftpBaseRequest", description = "sftp 基础请求 实体对象")
|
|
||||||
public class SftpBaseRequest extends TerminalBasePayload {
|
public class SftpBaseRequest extends TerminalBasePayload {
|
||||||
|
|
||||||
@Schema(description = "path")
|
/**
|
||||||
|
* path
|
||||||
|
*/
|
||||||
private String path;
|
private String path;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
package com.orion.visor.module.asset.handler.host.terminal.model.request;
|
package com.orion.visor.module.asset.handler.host.terminal.model.request;
|
||||||
|
|
||||||
import io.swagger.v3.oas.annotations.media.Schema;
|
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.EqualsAndHashCode;
|
import lombok.EqualsAndHashCode;
|
||||||
@@ -21,10 +20,11 @@ import lombok.experimental.SuperBuilder;
|
|||||||
@NoArgsConstructor
|
@NoArgsConstructor
|
||||||
@AllArgsConstructor
|
@AllArgsConstructor
|
||||||
@EqualsAndHashCode(callSuper = true)
|
@EqualsAndHashCode(callSuper = true)
|
||||||
@Schema(name = "SftpChangeModRequest", description = "sftp 修改文件权限 实体对象")
|
|
||||||
public class SftpChangeModRequest extends SftpBaseRequest {
|
public class SftpChangeModRequest extends SftpBaseRequest {
|
||||||
|
|
||||||
@Schema(description = "10进制的8进制 权限")
|
/**
|
||||||
|
* 10进制的8进制 权限
|
||||||
|
*/
|
||||||
private Integer mod;
|
private Integer mod;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
package com.orion.visor.module.asset.handler.host.terminal.model.request;
|
package com.orion.visor.module.asset.handler.host.terminal.model.request;
|
||||||
|
|
||||||
import io.swagger.v3.oas.annotations.media.Schema;
|
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.EqualsAndHashCode;
|
import lombok.EqualsAndHashCode;
|
||||||
@@ -21,10 +20,11 @@ import lombok.experimental.SuperBuilder;
|
|||||||
@NoArgsConstructor
|
@NoArgsConstructor
|
||||||
@AllArgsConstructor
|
@AllArgsConstructor
|
||||||
@EqualsAndHashCode(callSuper = true)
|
@EqualsAndHashCode(callSuper = true)
|
||||||
@Schema(name = "SftpDownloadDirectoryFlatRequest", description = "sftp 下载文件夹展开文件 实体对象")
|
|
||||||
public class SftpDownloadFlatDirectoryRequest extends SftpBaseRequest {
|
public class SftpDownloadFlatDirectoryRequest extends SftpBaseRequest {
|
||||||
|
|
||||||
@Schema(description = "当前路径")
|
/**
|
||||||
|
* 当前路径
|
||||||
|
*/
|
||||||
private String currentPath;
|
private String currentPath;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
package com.orion.visor.module.asset.handler.host.terminal.model.request;
|
package com.orion.visor.module.asset.handler.host.terminal.model.request;
|
||||||
|
|
||||||
import io.swagger.v3.oas.annotations.media.Schema;
|
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.EqualsAndHashCode;
|
import lombok.EqualsAndHashCode;
|
||||||
@@ -21,10 +20,11 @@ import lombok.experimental.SuperBuilder;
|
|||||||
@NoArgsConstructor
|
@NoArgsConstructor
|
||||||
@AllArgsConstructor
|
@AllArgsConstructor
|
||||||
@EqualsAndHashCode(callSuper = true)
|
@EqualsAndHashCode(callSuper = true)
|
||||||
@Schema(name = "SftpListRequest", description = "sftp 列表请求 实体对象")
|
|
||||||
public class SftpListRequest extends SftpBaseRequest {
|
public class SftpListRequest extends SftpBaseRequest {
|
||||||
|
|
||||||
@Schema(description = "是否显示隐藏文件")
|
/**
|
||||||
|
* 是否显示隐藏文件
|
||||||
|
*/
|
||||||
private Integer showHiddenFile;
|
private Integer showHiddenFile;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
package com.orion.visor.module.asset.handler.host.terminal.model.request;
|
package com.orion.visor.module.asset.handler.host.terminal.model.request;
|
||||||
|
|
||||||
import io.swagger.v3.oas.annotations.media.Schema;
|
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.EqualsAndHashCode;
|
import lombok.EqualsAndHashCode;
|
||||||
@@ -21,10 +20,11 @@ import lombok.experimental.SuperBuilder;
|
|||||||
@NoArgsConstructor
|
@NoArgsConstructor
|
||||||
@AllArgsConstructor
|
@AllArgsConstructor
|
||||||
@EqualsAndHashCode(callSuper = true)
|
@EqualsAndHashCode(callSuper = true)
|
||||||
@Schema(name = "SftpMoveRequest", description = "sftp 移动文件 实体对象")
|
|
||||||
public class SftpMoveRequest extends SftpBaseRequest {
|
public class SftpMoveRequest extends SftpBaseRequest {
|
||||||
|
|
||||||
@Schema(description = "target")
|
/**
|
||||||
|
* target
|
||||||
|
*/
|
||||||
private String target;
|
private String target;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
package com.orion.visor.module.asset.handler.host.terminal.model.request;
|
package com.orion.visor.module.asset.handler.host.terminal.model.request;
|
||||||
|
|
||||||
import io.swagger.v3.oas.annotations.media.Schema;
|
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.EqualsAndHashCode;
|
import lombok.EqualsAndHashCode;
|
||||||
@@ -21,10 +20,11 @@ import lombok.experimental.SuperBuilder;
|
|||||||
@NoArgsConstructor
|
@NoArgsConstructor
|
||||||
@AllArgsConstructor
|
@AllArgsConstructor
|
||||||
@EqualsAndHashCode(callSuper = true)
|
@EqualsAndHashCode(callSuper = true)
|
||||||
@Schema(name = "SftpSetContentRequest", description = "sftp 设置文件内容 实体对象")
|
|
||||||
public class SftpSetContentRequest extends SftpBaseRequest {
|
public class SftpSetContentRequest extends SftpBaseRequest {
|
||||||
|
|
||||||
@Schema(description = "content")
|
/**
|
||||||
|
* content
|
||||||
|
*/
|
||||||
private String content;
|
private String content;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
package com.orion.visor.module.asset.handler.host.terminal.model.request;
|
package com.orion.visor.module.asset.handler.host.terminal.model.request;
|
||||||
|
|
||||||
import com.orion.visor.module.asset.handler.host.terminal.model.TerminalBasePayload;
|
import com.orion.visor.module.asset.handler.host.terminal.model.TerminalBasePayload;
|
||||||
import io.swagger.v3.oas.annotations.media.Schema;
|
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.EqualsAndHashCode;
|
import lombok.EqualsAndHashCode;
|
||||||
@@ -22,10 +21,11 @@ import lombok.experimental.SuperBuilder;
|
|||||||
@NoArgsConstructor
|
@NoArgsConstructor
|
||||||
@AllArgsConstructor
|
@AllArgsConstructor
|
||||||
@EqualsAndHashCode(callSuper = true)
|
@EqualsAndHashCode(callSuper = true)
|
||||||
@Schema(name = "SshInputRequest", description = "ssh 输入请求 实体对象")
|
|
||||||
public class SshInputRequest extends TerminalBasePayload {
|
public class SshInputRequest extends TerminalBasePayload {
|
||||||
|
|
||||||
@Schema(description = "command")
|
/**
|
||||||
|
* command
|
||||||
|
*/
|
||||||
private String command;
|
private String command;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
package com.orion.visor.module.asset.handler.host.terminal.model.request;
|
package com.orion.visor.module.asset.handler.host.terminal.model.request;
|
||||||
|
|
||||||
import com.orion.visor.module.asset.handler.host.terminal.model.TerminalBasePayload;
|
import com.orion.visor.module.asset.handler.host.terminal.model.TerminalBasePayload;
|
||||||
import io.swagger.v3.oas.annotations.media.Schema;
|
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.EqualsAndHashCode;
|
import lombok.EqualsAndHashCode;
|
||||||
@@ -22,13 +21,16 @@ import lombok.experimental.SuperBuilder;
|
|||||||
@NoArgsConstructor
|
@NoArgsConstructor
|
||||||
@AllArgsConstructor
|
@AllArgsConstructor
|
||||||
@EqualsAndHashCode(callSuper = true)
|
@EqualsAndHashCode(callSuper = true)
|
||||||
@Schema(name = "SshResizeRequest", description = "ssh 修改大小请求 实体对象")
|
|
||||||
public class SshResizeRequest extends TerminalBasePayload {
|
public class SshResizeRequest extends TerminalBasePayload {
|
||||||
|
|
||||||
@Schema(description = "列数")
|
/**
|
||||||
|
* 列数
|
||||||
|
*/
|
||||||
private Integer cols;
|
private Integer cols;
|
||||||
|
|
||||||
@Schema(description = "行数")
|
/**
|
||||||
|
* 行数
|
||||||
|
*/
|
||||||
private Integer rows;
|
private Integer rows;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
package com.orion.visor.module.asset.handler.host.terminal.model.request;
|
package com.orion.visor.module.asset.handler.host.terminal.model.request;
|
||||||
|
|
||||||
import com.orion.visor.module.asset.handler.host.terminal.model.TerminalBasePayload;
|
import com.orion.visor.module.asset.handler.host.terminal.model.TerminalBasePayload;
|
||||||
import io.swagger.v3.oas.annotations.media.Schema;
|
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.EqualsAndHashCode;
|
import lombok.EqualsAndHashCode;
|
||||||
@@ -22,13 +21,16 @@ import lombok.experimental.SuperBuilder;
|
|||||||
@NoArgsConstructor
|
@NoArgsConstructor
|
||||||
@AllArgsConstructor
|
@AllArgsConstructor
|
||||||
@EqualsAndHashCode(callSuper = true)
|
@EqualsAndHashCode(callSuper = true)
|
||||||
@Schema(name = "TerminalConnectRequest", description = "主机连接检查请求 实体对象")
|
|
||||||
public class TerminalCheckRequest extends TerminalBasePayload {
|
public class TerminalCheckRequest extends TerminalBasePayload {
|
||||||
|
|
||||||
@Schema(description = "主机id")
|
/**
|
||||||
|
* 主机id
|
||||||
|
*/
|
||||||
private Long hostId;
|
private Long hostId;
|
||||||
|
|
||||||
@Schema(description = "连接类型")
|
/**
|
||||||
|
* 连接类型
|
||||||
|
*/
|
||||||
private String connectType;
|
private String connectType;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
package com.orion.visor.module.asset.handler.host.terminal.model.request;
|
package com.orion.visor.module.asset.handler.host.terminal.model.request;
|
||||||
|
|
||||||
import com.orion.visor.module.asset.handler.host.terminal.model.TerminalBasePayload;
|
import com.orion.visor.module.asset.handler.host.terminal.model.TerminalBasePayload;
|
||||||
import io.swagger.v3.oas.annotations.media.Schema;
|
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.EqualsAndHashCode;
|
import lombok.EqualsAndHashCode;
|
||||||
@@ -22,16 +21,21 @@ import lombok.experimental.SuperBuilder;
|
|||||||
@NoArgsConstructor
|
@NoArgsConstructor
|
||||||
@AllArgsConstructor
|
@AllArgsConstructor
|
||||||
@EqualsAndHashCode(callSuper = true)
|
@EqualsAndHashCode(callSuper = true)
|
||||||
@Schema(name = "TerminalConnectRequest", description = "终端连接请求 实体对象")
|
|
||||||
public class TerminalConnectRequest extends TerminalBasePayload {
|
public class TerminalConnectRequest extends TerminalBasePayload {
|
||||||
|
|
||||||
@Schema(description = "伪终端类型")
|
/**
|
||||||
|
* 伪终端类型
|
||||||
|
*/
|
||||||
private String terminalType;
|
private String terminalType;
|
||||||
|
|
||||||
@Schema(description = "列数")
|
/**
|
||||||
|
* 列数
|
||||||
|
*/
|
||||||
private Integer cols;
|
private Integer cols;
|
||||||
|
|
||||||
@Schema(description = "行数")
|
/**
|
||||||
|
* 行数
|
||||||
|
*/
|
||||||
private Integer rows;
|
private Integer rows;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
package com.orion.visor.module.asset.handler.host.terminal.model.response;
|
package com.orion.visor.module.asset.handler.host.terminal.model.response;
|
||||||
|
|
||||||
import com.orion.visor.module.asset.handler.host.terminal.model.TerminalBasePayload;
|
import com.orion.visor.module.asset.handler.host.terminal.model.TerminalBasePayload;
|
||||||
import io.swagger.v3.oas.annotations.media.Schema;
|
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.EqualsAndHashCode;
|
import lombok.EqualsAndHashCode;
|
||||||
@@ -20,13 +19,16 @@ import lombok.experimental.SuperBuilder;
|
|||||||
@NoArgsConstructor
|
@NoArgsConstructor
|
||||||
@AllArgsConstructor
|
@AllArgsConstructor
|
||||||
@EqualsAndHashCode(callSuper = true)
|
@EqualsAndHashCode(callSuper = true)
|
||||||
@Schema(name = "SftpBaseResponse", description = "sftp 基础响应 实体对象")
|
|
||||||
public class SftpBaseResponse extends TerminalBasePayload {
|
public class SftpBaseResponse extends TerminalBasePayload {
|
||||||
|
|
||||||
@Schema(description = "结果")
|
/**
|
||||||
|
* 结果
|
||||||
|
*/
|
||||||
private Integer result;
|
private Integer result;
|
||||||
|
|
||||||
@Schema(description = "消息")
|
/**
|
||||||
|
* 消息
|
||||||
|
*/
|
||||||
private String msg;
|
private String msg;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
package com.orion.visor.module.asset.handler.host.terminal.model.response;
|
package com.orion.visor.module.asset.handler.host.terminal.model.response;
|
||||||
|
|
||||||
import io.swagger.v3.oas.annotations.media.Schema;
|
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.EqualsAndHashCode;
|
import lombok.EqualsAndHashCode;
|
||||||
@@ -19,13 +18,16 @@ import lombok.experimental.SuperBuilder;
|
|||||||
@NoArgsConstructor
|
@NoArgsConstructor
|
||||||
@AllArgsConstructor
|
@AllArgsConstructor
|
||||||
@EqualsAndHashCode(callSuper = true)
|
@EqualsAndHashCode(callSuper = true)
|
||||||
@Schema(name = "SftpDownloadFlatDirectoryResponse", description = "sftp 下载文件夹展开文件 实体对象")
|
|
||||||
public class SftpDownloadFlatDirectoryResponse extends SftpBaseResponse {
|
public class SftpDownloadFlatDirectoryResponse extends SftpBaseResponse {
|
||||||
|
|
||||||
@Schema(description = "currentPath")
|
/**
|
||||||
|
* currentPath
|
||||||
|
*/
|
||||||
private String currentPath;
|
private String currentPath;
|
||||||
|
|
||||||
@Schema(description = "body")
|
/**
|
||||||
|
* body
|
||||||
|
*/
|
||||||
private String body;
|
private String body;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
package com.orion.visor.module.asset.handler.host.terminal.model.response;
|
package com.orion.visor.module.asset.handler.host.terminal.model.response;
|
||||||
|
|
||||||
import io.swagger.v3.oas.annotations.media.Schema;
|
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.NoArgsConstructor;
|
import lombok.NoArgsConstructor;
|
||||||
@@ -19,37 +18,56 @@ import java.util.Date;
|
|||||||
@SuperBuilder
|
@SuperBuilder
|
||||||
@NoArgsConstructor
|
@NoArgsConstructor
|
||||||
@AllArgsConstructor
|
@AllArgsConstructor
|
||||||
@Schema(name = "SftpFileResponse", description = "sftp 文件响应 实体对象")
|
|
||||||
public class SftpFileVO {
|
public class SftpFileVO {
|
||||||
|
|
||||||
@Schema(description = "名称")
|
/**
|
||||||
|
* 名称
|
||||||
|
*/
|
||||||
private String name;
|
private String name;
|
||||||
|
|
||||||
@Schema(description = "绝对路径")
|
/**
|
||||||
|
* 绝对路径
|
||||||
|
*/
|
||||||
private String path;
|
private String path;
|
||||||
|
|
||||||
@Schema(description = "文件后缀")
|
/**
|
||||||
|
* 文件后缀
|
||||||
|
*/
|
||||||
private String suffix;
|
private String suffix;
|
||||||
|
|
||||||
@Schema(description = "文件大小(byte)")
|
/**
|
||||||
|
* 文件大小(byte)
|
||||||
|
*/
|
||||||
private Long size;
|
private Long size;
|
||||||
|
|
||||||
@Schema(description = "属性")
|
/**
|
||||||
|
* 属性
|
||||||
|
*/
|
||||||
private String attr;
|
private String attr;
|
||||||
|
|
||||||
@Schema(description = "是否为目录")
|
/**
|
||||||
|
* 是否为目录
|
||||||
|
*/
|
||||||
private Boolean isDir;
|
private Boolean isDir;
|
||||||
|
|
||||||
@Schema(description = "10进制表现的8进制权限")
|
/**
|
||||||
|
* 10进制表现的8进制权限
|
||||||
|
*/
|
||||||
private Integer permission;
|
private Integer permission;
|
||||||
|
|
||||||
@Schema(description = "用户id")
|
/**
|
||||||
|
* 用户id
|
||||||
|
*/
|
||||||
private Integer uid;
|
private Integer uid;
|
||||||
|
|
||||||
@Schema(description = "组id")
|
/**
|
||||||
|
* 组id
|
||||||
|
*/
|
||||||
private Integer gid;
|
private Integer gid;
|
||||||
|
|
||||||
@Schema(description = "更新时间")
|
/**
|
||||||
|
* 更新时间
|
||||||
|
*/
|
||||||
private Date modifyTime;
|
private Date modifyTime;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
package com.orion.visor.module.asset.handler.host.terminal.model.response;
|
package com.orion.visor.module.asset.handler.host.terminal.model.response;
|
||||||
|
|
||||||
import io.swagger.v3.oas.annotations.media.Schema;
|
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.EqualsAndHashCode;
|
import lombok.EqualsAndHashCode;
|
||||||
@@ -19,13 +18,16 @@ import lombok.experimental.SuperBuilder;
|
|||||||
@NoArgsConstructor
|
@NoArgsConstructor
|
||||||
@AllArgsConstructor
|
@AllArgsConstructor
|
||||||
@EqualsAndHashCode(callSuper = true)
|
@EqualsAndHashCode(callSuper = true)
|
||||||
@Schema(name = "SftpGetContentResponse", description = "sftp 获取内容响应 实体对象")
|
|
||||||
public class SftpGetContentResponse extends SftpBaseResponse {
|
public class SftpGetContentResponse extends SftpBaseResponse {
|
||||||
|
|
||||||
@Schema(description = "path")
|
/**
|
||||||
|
* path
|
||||||
|
*/
|
||||||
private String path;
|
private String path;
|
||||||
|
|
||||||
@Schema(description = "content")
|
/**
|
||||||
|
* content
|
||||||
|
*/
|
||||||
private String content;
|
private String content;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
package com.orion.visor.module.asset.handler.host.terminal.model.response;
|
package com.orion.visor.module.asset.handler.host.terminal.model.response;
|
||||||
|
|
||||||
import io.swagger.v3.oas.annotations.media.Schema;
|
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.EqualsAndHashCode;
|
import lombok.EqualsAndHashCode;
|
||||||
@@ -19,13 +18,16 @@ import lombok.experimental.SuperBuilder;
|
|||||||
@NoArgsConstructor
|
@NoArgsConstructor
|
||||||
@AllArgsConstructor
|
@AllArgsConstructor
|
||||||
@EqualsAndHashCode(callSuper = true)
|
@EqualsAndHashCode(callSuper = true)
|
||||||
@Schema(name = "SftpListResponse", description = "sftp 列表响应 实体对象")
|
|
||||||
public class SftpListResponse extends SftpBaseResponse {
|
public class SftpListResponse extends SftpBaseResponse {
|
||||||
|
|
||||||
@Schema(description = "path")
|
/**
|
||||||
|
* path
|
||||||
|
*/
|
||||||
private String path;
|
private String path;
|
||||||
|
|
||||||
@Schema(description = "body")
|
/**
|
||||||
|
* body
|
||||||
|
*/
|
||||||
private String body;
|
private String body;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
package com.orion.visor.module.asset.handler.host.terminal.model.response;
|
package com.orion.visor.module.asset.handler.host.terminal.model.response;
|
||||||
|
|
||||||
import com.orion.visor.module.asset.handler.host.terminal.model.TerminalBasePayload;
|
import com.orion.visor.module.asset.handler.host.terminal.model.TerminalBasePayload;
|
||||||
import io.swagger.v3.oas.annotations.media.Schema;
|
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.EqualsAndHashCode;
|
import lombok.EqualsAndHashCode;
|
||||||
@@ -20,10 +19,11 @@ import lombok.experimental.SuperBuilder;
|
|||||||
@NoArgsConstructor
|
@NoArgsConstructor
|
||||||
@AllArgsConstructor
|
@AllArgsConstructor
|
||||||
@EqualsAndHashCode(callSuper = true)
|
@EqualsAndHashCode(callSuper = true)
|
||||||
@Schema(name = "SshOutputResponse", description = "ssh 输出响应 实体对象")
|
|
||||||
public class SshOutputResponse extends TerminalBasePayload {
|
public class SshOutputResponse extends TerminalBasePayload {
|
||||||
|
|
||||||
@Schema(description = "body")
|
/**
|
||||||
|
* body
|
||||||
|
*/
|
||||||
private String body;
|
private String body;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
package com.orion.visor.module.asset.handler.host.terminal.model.response;
|
package com.orion.visor.module.asset.handler.host.terminal.model.response;
|
||||||
|
|
||||||
import com.orion.visor.module.asset.handler.host.terminal.model.TerminalBasePayload;
|
import com.orion.visor.module.asset.handler.host.terminal.model.TerminalBasePayload;
|
||||||
import io.swagger.v3.oas.annotations.media.Schema;
|
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.EqualsAndHashCode;
|
import lombok.EqualsAndHashCode;
|
||||||
@@ -20,13 +19,16 @@ import lombok.experimental.SuperBuilder;
|
|||||||
@NoArgsConstructor
|
@NoArgsConstructor
|
||||||
@AllArgsConstructor
|
@AllArgsConstructor
|
||||||
@EqualsAndHashCode(callSuper = true)
|
@EqualsAndHashCode(callSuper = true)
|
||||||
@Schema(name = "TerminalCheckResponse", description = "主机连接检查响应 实体对象")
|
|
||||||
public class TerminalCheckResponse extends TerminalBasePayload {
|
public class TerminalCheckResponse extends TerminalBasePayload {
|
||||||
|
|
||||||
@Schema(description = "检查结果")
|
/**
|
||||||
|
* 检查结果
|
||||||
|
*/
|
||||||
private Integer result;
|
private Integer result;
|
||||||
|
|
||||||
@Schema(description = "错误信息")
|
/**
|
||||||
|
* 错误信息
|
||||||
|
*/
|
||||||
private String msg;
|
private String msg;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
package com.orion.visor.module.asset.handler.host.terminal.model.response;
|
package com.orion.visor.module.asset.handler.host.terminal.model.response;
|
||||||
|
|
||||||
import com.orion.visor.module.asset.handler.host.terminal.model.TerminalBasePayload;
|
import com.orion.visor.module.asset.handler.host.terminal.model.TerminalBasePayload;
|
||||||
import io.swagger.v3.oas.annotations.media.Schema;
|
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.EqualsAndHashCode;
|
import lombok.EqualsAndHashCode;
|
||||||
@@ -20,13 +19,16 @@ import lombok.experimental.SuperBuilder;
|
|||||||
@NoArgsConstructor
|
@NoArgsConstructor
|
||||||
@AllArgsConstructor
|
@AllArgsConstructor
|
||||||
@EqualsAndHashCode(callSuper = true)
|
@EqualsAndHashCode(callSuper = true)
|
||||||
@Schema(name = "TerminalCloseResponse", description = "主机连接关闭响应 实体对象")
|
|
||||||
public class TerminalCloseResponse extends TerminalBasePayload {
|
public class TerminalCloseResponse extends TerminalBasePayload {
|
||||||
|
|
||||||
@Schema(description = "是否为强制关闭")
|
/**
|
||||||
|
* 是否为强制关闭
|
||||||
|
*/
|
||||||
private Integer forceClose;
|
private Integer forceClose;
|
||||||
|
|
||||||
@Schema(description = "关闭信息")
|
/**
|
||||||
|
* 关闭信息
|
||||||
|
*/
|
||||||
private String msg;
|
private String msg;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
package com.orion.visor.module.asset.handler.host.terminal.model.response;
|
package com.orion.visor.module.asset.handler.host.terminal.model.response;
|
||||||
|
|
||||||
import com.orion.visor.module.asset.handler.host.terminal.model.TerminalBasePayload;
|
import com.orion.visor.module.asset.handler.host.terminal.model.TerminalBasePayload;
|
||||||
import io.swagger.v3.oas.annotations.media.Schema;
|
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.EqualsAndHashCode;
|
import lombok.EqualsAndHashCode;
|
||||||
@@ -20,13 +19,16 @@ import lombok.experimental.SuperBuilder;
|
|||||||
@NoArgsConstructor
|
@NoArgsConstructor
|
||||||
@AllArgsConstructor
|
@AllArgsConstructor
|
||||||
@EqualsAndHashCode(callSuper = true)
|
@EqualsAndHashCode(callSuper = true)
|
||||||
@Schema(name = "TerminalConnectResponse", description = "终端连接响应 实体对象")
|
|
||||||
public class TerminalConnectResponse extends TerminalBasePayload {
|
public class TerminalConnectResponse extends TerminalBasePayload {
|
||||||
|
|
||||||
@Schema(description = "检查结果")
|
/**
|
||||||
|
* 检查结果
|
||||||
|
*/
|
||||||
private Integer result;
|
private Integer result;
|
||||||
|
|
||||||
@Schema(description = "错误信息")
|
/**
|
||||||
|
* 错误信息
|
||||||
|
*/
|
||||||
private String msg;
|
private String msg;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
package com.orion.visor.module.asset.handler.host.transfer.model;
|
package com.orion.visor.module.asset.handler.host.transfer.model;
|
||||||
|
|
||||||
import io.swagger.v3.oas.annotations.media.Schema;
|
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
import lombok.Builder;
|
import lombok.Builder;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
@@ -17,13 +16,16 @@ import lombok.NoArgsConstructor;
|
|||||||
@Builder
|
@Builder
|
||||||
@NoArgsConstructor
|
@NoArgsConstructor
|
||||||
@AllArgsConstructor
|
@AllArgsConstructor
|
||||||
@Schema(name = "SftpFileBackupParams", description = "sftp 文件备份参数")
|
|
||||||
public class SftpFileBackupParams {
|
public class SftpFileBackupParams {
|
||||||
|
|
||||||
@Schema(description = "文件名称")
|
/**
|
||||||
|
* 文件名称
|
||||||
|
*/
|
||||||
private String fileName;
|
private String fileName;
|
||||||
|
|
||||||
@Schema(description = "时间戳")
|
/**
|
||||||
|
* 时间戳
|
||||||
|
*/
|
||||||
private Long timestamp;
|
private Long timestamp;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
package com.orion.visor.module.asset.handler.host.transfer.model;
|
package com.orion.visor.module.asset.handler.host.transfer.model;
|
||||||
|
|
||||||
import io.swagger.v3.oas.annotations.media.Schema;
|
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
import lombok.Builder;
|
import lombok.Builder;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
@@ -17,16 +16,21 @@ import lombok.NoArgsConstructor;
|
|||||||
@Builder
|
@Builder
|
||||||
@NoArgsConstructor
|
@NoArgsConstructor
|
||||||
@AllArgsConstructor
|
@AllArgsConstructor
|
||||||
@Schema(name = "FileOperatorRequest", description = "文件操作请求 实体对象")
|
|
||||||
public class TransferOperatorRequest {
|
public class TransferOperatorRequest {
|
||||||
|
|
||||||
@Schema(description = "文件路径")
|
/**
|
||||||
|
* 文件路径
|
||||||
|
*/
|
||||||
private String path;
|
private String path;
|
||||||
|
|
||||||
@Schema(description = "type")
|
/**
|
||||||
|
* type
|
||||||
|
*/
|
||||||
private String type;
|
private String type;
|
||||||
|
|
||||||
@Schema(description = "主机id")
|
/**
|
||||||
|
* 主机id
|
||||||
|
*/
|
||||||
private Long hostId;
|
private Long hostId;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
package com.orion.visor.module.asset.handler.host.transfer.model;
|
package com.orion.visor.module.asset.handler.host.transfer.model;
|
||||||
|
|
||||||
import io.swagger.v3.oas.annotations.media.Schema;
|
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
import lombok.Builder;
|
import lombok.Builder;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
@@ -17,28 +16,41 @@ import lombok.NoArgsConstructor;
|
|||||||
@Builder
|
@Builder
|
||||||
@NoArgsConstructor
|
@NoArgsConstructor
|
||||||
@AllArgsConstructor
|
@AllArgsConstructor
|
||||||
@Schema(name = "FileOperatorResponse", description = "文件操作响应 实体对象")
|
|
||||||
public class TransferOperatorResponse {
|
public class TransferOperatorResponse {
|
||||||
|
|
||||||
@Schema(description = "channelId")
|
/**
|
||||||
|
* channelId
|
||||||
|
*/
|
||||||
private String channelId;
|
private String channelId;
|
||||||
|
|
||||||
@Schema(description = "type")
|
/**
|
||||||
|
* type
|
||||||
|
*/
|
||||||
private String type;
|
private String type;
|
||||||
|
|
||||||
@Schema(description = "主机id")
|
/**
|
||||||
|
* 主机id
|
||||||
|
*/
|
||||||
private Long hostId;
|
private Long hostId;
|
||||||
|
|
||||||
@Schema(description = "是否成功")
|
/**
|
||||||
|
* 是否成功
|
||||||
|
*/
|
||||||
private Boolean success;
|
private Boolean success;
|
||||||
|
|
||||||
@Schema(description = "传输的大小")
|
/**
|
||||||
|
* 传输的大小
|
||||||
|
*/
|
||||||
private Integer currentSize;
|
private Integer currentSize;
|
||||||
|
|
||||||
@Schema(description = "transferToken")
|
/**
|
||||||
|
* transferToken
|
||||||
|
*/
|
||||||
private String transferToken;
|
private String transferToken;
|
||||||
|
|
||||||
@Schema(description = "消息")
|
/**
|
||||||
|
* 消息
|
||||||
|
*/
|
||||||
private String msg;
|
private String msg;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
package com.orion.visor.module.asset.handler.host.upload.dto;
|
package com.orion.visor.module.asset.handler.host.upload.model;
|
||||||
|
|
||||||
import io.swagger.v3.oas.annotations.media.Schema;
|
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
import lombok.Builder;
|
import lombok.Builder;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
@@ -17,22 +16,31 @@ import lombok.NoArgsConstructor;
|
|||||||
@Builder
|
@Builder
|
||||||
@NoArgsConstructor
|
@NoArgsConstructor
|
||||||
@AllArgsConstructor
|
@AllArgsConstructor
|
||||||
@Schema(name = "FileUploadFileItemDTO", description = "文件上传文件对象")
|
|
||||||
public class FileUploadFileItemDTO {
|
public class FileUploadFileItemDTO {
|
||||||
|
|
||||||
@Schema(description = "id")
|
/**
|
||||||
|
* id
|
||||||
|
*/
|
||||||
private Long id;
|
private Long id;
|
||||||
|
|
||||||
@Schema(description = "fileId")
|
/**
|
||||||
|
* fileId
|
||||||
|
*/
|
||||||
private String fileId;
|
private String fileId;
|
||||||
|
|
||||||
@Schema(description = "远程路径")
|
/**
|
||||||
|
* 远程路径
|
||||||
|
*/
|
||||||
private String remotePath;
|
private String remotePath;
|
||||||
|
|
||||||
@Schema(description = "当前大小")
|
/**
|
||||||
|
* 当前大小
|
||||||
|
*/
|
||||||
private Long current;
|
private Long current;
|
||||||
|
|
||||||
@Schema(description = "状态")
|
/**
|
||||||
|
* 状态
|
||||||
|
*/
|
||||||
private String status;
|
private String status;
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -15,8 +15,8 @@ import com.orion.visor.module.asset.entity.domain.UploadTaskDO;
|
|||||||
import com.orion.visor.module.asset.entity.domain.UploadTaskFileDO;
|
import com.orion.visor.module.asset.entity.domain.UploadTaskFileDO;
|
||||||
import com.orion.visor.module.asset.enums.UploadTaskFileStatusEnum;
|
import com.orion.visor.module.asset.enums.UploadTaskFileStatusEnum;
|
||||||
import com.orion.visor.module.asset.enums.UploadTaskStatusEnum;
|
import com.orion.visor.module.asset.enums.UploadTaskStatusEnum;
|
||||||
import com.orion.visor.module.asset.handler.host.upload.dto.FileUploadFileItemDTO;
|
|
||||||
import com.orion.visor.module.asset.handler.host.upload.manager.FileUploadTaskManager;
|
import com.orion.visor.module.asset.handler.host.upload.manager.FileUploadTaskManager;
|
||||||
|
import com.orion.visor.module.asset.handler.host.upload.model.FileUploadFileItemDTO;
|
||||||
import com.orion.visor.module.asset.handler.host.upload.uploader.FileUploader;
|
import com.orion.visor.module.asset.handler.host.upload.uploader.FileUploader;
|
||||||
import com.orion.visor.module.asset.handler.host.upload.uploader.IFileUploader;
|
import com.orion.visor.module.asset.handler.host.upload.uploader.IFileUploader;
|
||||||
import com.orion.visor.module.asset.service.UploadTaskService;
|
import com.orion.visor.module.asset.service.UploadTaskService;
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user