Merge remote-tracking branch 'origin/dev' into dev

dev
luotaiqian 2026-07-02 15:04:00 +08:00
commit 634468bc85
30 changed files with 884 additions and 149 deletions

View File

@ -6,10 +6,7 @@ import io.swagger.annotations.ApiParam;
import org.qinan.safetyeval.client.api.FileUploadApi; import org.qinan.safetyeval.client.api.FileUploadApi;
import org.qinan.safetyeval.client.co.FileInfoCO; import org.qinan.safetyeval.client.co.FileInfoCO;
import org.qinan.safetyeval.client.dto.SingleResponse; import org.qinan.safetyeval.client.dto.SingleResponse;
import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.*;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
import javax.annotation.Resource; import javax.annotation.Resource;
@ -34,6 +31,12 @@ public class FileUploadPublicController {
// ==================== 公开上传 ==================== // ==================== 公开上传 ====================
@ApiOperation("测试接口")
@GetMapping("/helloword")
public SingleResponse<String> helloword() {
return SingleResponse.success("helloword");
}
@ApiOperation("公开上传单个文件(创建人默认 system") @ApiOperation("公开上传单个文件(创建人默认 system")
@PostMapping("/upload") @PostMapping("/upload")
public SingleResponse<FileInfoCO> uploadPublic( public SingleResponse<FileInfoCO> uploadPublic(

View File

@ -79,7 +79,26 @@
<version>8.0.33</version> <version>8.0.33</version>
<scope>runtime</scope> <scope>runtime</scope>
</dependency> </dependency>
<!-- ShardingSphere适配线上 spring.shardingsphere.* 数据源配置) -->
<dependency>
<groupId>org.apache.shardingsphere</groupId>
<artifactId>sharding-jdbc-spring-boot-starter</artifactId>
<version>4.1.1</version>
</dependency>
<!-- Druid线上 shardingsphere datasource type 使用 DruidDataSource -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.2.6</version>
</dependency>
<!-- Align Spring Security modules managed by Spring Boot. -->
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-core</artifactId>
<version>5.7.11</version>
</dependency>
<!-- Spring Boot Test --> <!-- Spring Boot Test -->
<dependency> <dependency>
<groupId>org.springframework.boot</groupId> <groupId>org.springframework.boot</groupId>
@ -110,3 +129,6 @@

View File

@ -10,36 +10,12 @@ import org.springframework.security.config.annotation.web.configuration.WebSecur
@SuppressWarnings("deprecation") @SuppressWarnings("deprecation")
public class WebSecurityConfig extends WebSecurityConfigurerAdapter { public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
private final WebSecurityProperties properties;
public WebSecurityConfig(WebSecurityProperties properties) {
this.properties = properties;
}
@Override @Override
protected void configure(HttpSecurity http) throws Exception { protected void configure(HttpSecurity http) throws Exception {
String[] authenticated = properties.authenticatedPatterns(); http.csrf().disable()
String[] permitAll = properties.permitAllPatterns(); .authorizeRequests()
.anyRequest().permitAll();
if (permitAll.length > 0) {
http.csrf().ignoringAntMatchers(permitAll);
}
org.springframework.security.config.annotation.web.configurers.ExpressionUrlAuthorizationConfigurer<HttpSecurity>
.ExpressionInterceptUrlRegistry requests = http.authorizeRequests();
// Authentication rules take priority when they overlap with a public prefix.
if (authenticated.length > 0) {
requests.antMatchers(authenticated).authenticated();
}
if (permitAll.length > 0) {
requests.antMatchers(permitAll).permitAll();
}
requests.anyRequest().authenticated()
.and()
.formLogin()
.and()
.httpBasic();
} }
} }

View File

@ -1,6 +1,39 @@
spring: spring:
profiles:
active: ${SPRING_PROFILES_ACTIVE:local}
cloud:
nacos:
config:
import-check:
enabled: false
---
spring:
config: config:
activate:
on-profile: local
import:
- classpath:nacos.yml
- classpath:nacos/config-common.yml
- classpath:nacos/config-port.yml
- classpath:nacos/config-mq.yml
- classpath:nacos/config-log.yml
- classpath:nacos/config-actuator.yml
- classpath:nacos/config-job.yml
- classpath:nacos/config-mysql.yml
- classpath:nacos/config-redis.yml
- classpath:nacos/config-cache.yml
- classpath:nacos/config-spring.yml
- classpath:nacos/config-mybatis.yml
- classpath:nacos/config-sdk.yml
- classpath:nacos/config-flyway.yml
- classpath:sdk.yml
- classpath:swagger.yml
---
spring:
config:
activate:
on-profile: prod
import: import:
- classpath:nacos-prod.yml - classpath:nacos-prod.yml
- classpath:sdk-prod.yml - classpath:sdk-prod.yml
- classpath:swagger.yml - classpath:swagger.yml

View File

@ -6,6 +6,10 @@ application:
version: version:
gateway: safetyEval gateway: safetyEval
cn-name: 重庆安全评价 cn-name: 重庆安全评价
server:
servlet:
context-path: /${application.gateway}
spring: spring:
application: application:
name: ${application.name}${application.version} name: ${application.name}${application.version}

View File

@ -0,0 +1,13 @@
management:
endpoints:
web:
exposure:
include: health,metrics
# base-path: /monitor
endpoint:
health:
show-details: always
shutdown:
enabled: true
env:
enabled: false

View File

@ -0,0 +1,39 @@
spring:
cache:
redis:
time-to-live: 1800s
# 二级缓存配置
# 注caffeine 不适用于数据量大,并且缓存命中率极低的业务场景,如用户维度的缓存。请慎重选择。
l2cache:
config:
# 是否存储空值默认true防止缓存穿透
allowNullValues: true
# 组合缓存配置
composite:
# 是否全部启用一级缓存默认false
l1AllOpen: false
# 一级缓存
caffeine:
# 是否自动刷新过期缓存 true 是 false 否
autoRefreshExpireCache: false
# 缓存刷新调度线程池的大小
refreshPoolSize: 2
# 缓存刷新的频率(秒)
refreshPeriod: 10
# 写入后过期时间(秒)
expireAfterWrite: 180
# 访问后过期时间(秒)
expireAfterAccess: 180
# 初始化大小
initialCapacity: 1
# 最大缓存对象个数,超过此数量时之前放入的缓存将失效
maximumSize: 3
# 二级缓存
redis:
# 全局过期时间,单位毫秒,默认不过期
defaultExpiration: 1800000
# 缓存更新时通知其他节点的topic名称 默认 cache:redis:caffeine:topic
topic: cache:redis:caffeine:topic

View File

@ -0,0 +1,194 @@
common:
dx:
url:
https:
url: https://gbs-gateway.qhdsafety.com
ota:
platform-attr-enum: SLAVE
server:
url: https://ota.cqjjb.cn
public-key: MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC7jzwrM8q2DGkhQlN3rw80YZfdqwnSBw7/Ogz0ENGHOSuG8hQGgy/5v4zthV5tijdnhMf5Mrkle8syJLNyaNRqVEtOaJns3A8/kn8t9GDt7Fu62MaKZa7OPqKO6wobNMbvaYshAIiK8M+ljAbZC3Cjq3YsqzPh+dTJluKPtR/rOQIDAQAB
client:
plat-key: a9431176-f906-419e-af6c-a3898d96750f
private-key: MIICdwIBADANBgkqhkiG9w0BAQEFAASCAmEwggJdAgEAAoGBAJia4mwX87Ii3owQpavPQI/f+Tr9q1p95E5XYujawJKWG3fRj+xyhbXl0l/Zd/ZFEZqKXLrz8bUbWFixagQfm95IuvVJX0x1PkFKYDZKud+0zFP7Xw2NFyOLkjvFE8KWrLRPkNJkVH/kvGQjJwtVrsEoNPILl4EmhczsbBITA2dVAgMBAAECgYANY+XDM1TUSB/77UgEK9LP7Qiq5vA+p/Y884j/wpYMJrSxTkeRKTlXTRupAmV2y/ev9j0NwHLwf75ARgz14Kol88ytMiZGQIpSkxfpEzEe8aJkYrFqaFX/55P6uKNZaVvsH8AB6fk0Hl8xA59frNZZShdRvKd4IHC50MgH05wWkQJBAMpFjSFSQxwO1jkx61OcYURKRZM5UANEIo6QY+2J3dN66FOe3eIVFZT3eWaTXikdboTBCfBqZO83cKCWEMXledkCQQDBJAGSoMYAR5vLsGk7npb1HJ8WCwZyi6c8oN6xRbwKpzDxaSqqZckb6hJ6I5E1HTE7Ak4CPK3Q1SCCJ5RLAY/dAkEAto5RUuqY0SD+7X4FY1/3VZgm9To74cbD3aGp3sCYaX87YgU3Qw4+fUVh11dYG4mJrt0+6DJOSKzjxLvMBaAX+QJAEm5LMCDjhDdRKLjm8eeKZE2c6M+Yh+nHxcNcPPJ4pVObGg59IdGgxWcq6DjorHbisczggNolhB4ygfkg759wiQJBAJC3sXFjar9C5ydoCoy6AG1owANn0cRoFecBDQx3xadBE8kk39tIKp+OSWRf6xthyaDm+5DiF0JM8nD6d0nxIhU=
test-plat:
plat-id: 1846821090933841922
plat-appKey: 81eebce6c6084c928acfeb9a2c3d6dc2
mysql:
type: mysql
gateway:
network:
http:
#网关的外网访问地址 必须配置为HTTPS协议
#external: http://121.40.150.22:10062
external: https://gbs-gateway.qhdsafety.com
#网关的内网访问地址 固定配置为http://jjb-saas-gateway
intranet: http://jjb-saas-gateway
#http://jjb-saas-gateway
wx:
#webSocket外网地址
external: wss://gbs-gateway.qhdsafety.com
#webSocket内网地址
intranet: ws://192.168.67.192:80
swagger:
#是否打开swagger 测试及UAT配置为true,生产环境配置为false
enabled: true
base:
# base应用访问外网访问地址
host-url: https://gbs-gateway.qhdsafety.com
desk:
# desk工程的外网地址
host-url: https://gbs-gateway.qhdsafety.com/desk
login:
# login工程的外网访问地址
host-url: https://gbs-gateway.qhdsafety.com/login
# 阿里云
aliyun:
video:
callbackURL: /aliyun/callbackVideo/
userId: 1242180681728462
regionId: cn-shanghai
accessKeyId: LTAI5tDAMFkin5tavp4thfaG
accessKeySecret: XoBYTtIgeHOiz3udiP5gm0rcdRWp25
templateGroupId: 1a3c38cee4b8fa4be7459a17fe836559
twAppKey: czBapTtFBlkHCKSm
#accessKeyId: LTAI5tGQQibyiNbepTCjVuRB
#accessKeySecret: E0F6B6nxFiYjRhWGk4ZexifTGLcZNE
oss:
accessKeyId: LTAI5tP6UnjpDRBjsUaxbLz9
accessKeySecret: 9XCpOutOC1lTE7E4twbUOHGzaxoMRz
bucketName: cqqypx
endpoint: http://oss-cn-hangzhou.aliyuncs.com
bucket: https://${aliyun.oss.bucketName}.oss-cn-hangzhou.aliyuncs.com
apps:
basic-application: 976f689efcfd413981dfa1f2b814406d
apply-application: 586d4d3a2fbb4a669391335ae054479f
order-application: 15893f852a0d4eb3b2c968f0735cc9ed
cedu-application: 7c3cd4ae12534b7bbf0e1eddaa144341
train-application: d4cfbd62d9ec47c69697026be6430685
hour-application: 58e59ab7cfaa40df849e0480b88c4349
exam-application: 5b69745cadf84051beab2de3fb9fa6b2
evaluate-application: 93ec0094dd4e4be8afe8212e7c6b33e4
courseopenplatform-application: 60fa325b557c4113ad6510f62783a0a8
plan-approve-application: d1d0768f54cd4b2086c244a0dba0495e
industry-application: a1e1130e830347818455a6ff16ccf92a
scd-course-application: 6b1f3fed8e9140e984199e5ce9254374
qswj-customer-application: d3838b98d6f84ae48d3fe181074dcbd5
jjb-saas-official: 2bfa69cf673d487d89a1dd7348fa0bb4
cedu-customer-application: f1e16689eb914f009d0b461e818555b9
saas-customer-application: 2751e9bd060a4f659b7454dca4877c32
cert-application: 751d2135c48a4b18960c558b4143469b
jjb-saas-res: f18f760cc564441f8a90c6479152c115
declare-application: 7c6ab4793cb54d59a2319088110fd313
jjb-saas-exam-affairs: 2ea51819fc354088bf02d11effd1bd08
jjb-saas-punch-clock: c45d94add16a49e8bb66ba5e170b3439
jjb-apps-exam-manage: 2b00997376664a58b415391c02b7d9de
jjb-cedu-applet-v2: abcc08a98fba430dbd3f7dd08c6a98cd
review-application: 53a469ed0e19498fa8d43687d8ef2323
live-application: 5c75704416bc4a64a59729439116575a
jjb-apps-sign: 6b2f7ee0ed86423d8013268950b088d0
jjb-apps-customer-service: 9661da58847743c48bd1f7af39454ce5
signature-application: 0e65e899e0b04b7a82594de452850c6a
jjb-saas-course-open-platform: 16660510fe89413fbfac59e7b709f95f
jjb-apps-ocr: 18eb863aa7f64d08b980f9657b9c8c89
jjb-apps-archives: ecf369c676f24ea59aa671e4895d232d
jjb-apps-enterprisecenter: d51302107d144c4c8f45ba27c1e1170c
uris:
signature-application: http://business-signature-application
jjb-saas-archives: http://business-jjb-saas-archives
jjb-saas-base: http://jjb-saas-base
basic-application: http://business-jjb-apps-basic
apply-application: http://business-jjb-apps-apply
order-application: http://business-order-application
cedu-application: http://business-cedu-application
train-application: http://business-jjb-apps-train
hour-application: http://business-hour-application
exam-application: http://business-exam-application
evaluate-application: http://business-evaluate-application
courseopenplatform-application: http://courseopenplatform-application
plan-approve-application: http://business-jjb-apps-plan-approve
industry-application: http://business-jjb-apps-industry
scd-course-application: http://business-course-application
qswj-customer-application: http://business-jjb-apps-qswj-applet
jjb-saas-official: http://jjb-saas-official
cedu-customer-application: http://business-cedu-customer-application
saas-customer-application: http://business-saas-customer-application
cert-application: http://business-cert-application
jjb-saas-res: http://jjb-saas-res
declare-application: http://business-declare-application
jjb-saas-exam-affairs: http://business-exam-affairs
jjb-saas-punch-clock: http://jjb-saas-punch-clock
jjb-cedu-applet-v2: http://business-jjb-apps-cedu-applet-v2
jjb-apps-exam-manage: http://business-exam-manage
jjb-apps-sign: http://business-jjb-apps-sign
review-application: http://business-review-application
jjb-apps-customer-service: http://business-jjb-apps-customer-service
jjb-saas-course-open-platform: http://business-course-open-application
jjb-apps-ocr: http://business-jjb-saas-ocr
jjb-apps-enterprisecenter: http://business-jjb-apps-enterprisecenter
open:
sdk:
protocol: HTTP
url: 172.16.170.41
appPublicKey: 0490713158a22073896b9f3e79726eaac5e5a432cfc9c5512e86f856e307989625e29c6760462ed61c9328045e6d72223dfdc3dede5ae8ac44af3707c3d48ccb15
appPrivateKey: 308193020100301306072a8648ce3d020106082a811ccf5501822d047930770201010420079dce3b32004ec5694f096b431e1e41f17af8ec412ca81990169db195e9bb1ba00a06082a811ccf5501822da1440342000490713158a22073896b9f3e79726eaac5e5a432cfc9c5512e86f856e307989625e29c6760462ed61c9328045e6d72223dfdc3dede5ae8ac44af3707c3d48ccb15
#所有的前端域名配置 避免iframe跨域
x-frame-options: ${common.desk.host-url}/ ${common.login.host-url}/ ${common.base.host-url}/ ${common.gateway.network.http.external}/ http://10.43.250.65/ http://192.168.2.180:8085/ http://192.168.12.26:8085/ http://192.168.2.60:6030 http://192.168.3.105:8066 http://192.168.3.105:8085 http://10.43.145.16/ http://192.168.2.30:8080/ http://192.168.3.157:6011/ http://10.43.33.207/
openapi:
url: 10.43.82.219
db:
type: mysql
mysql:
host: 192.168.141.171
username: root
password: 5tS3owZ7w8Uk1egv
db: ${spring.application.name}
port: 3306
# host: nlb-kd2xz70qhllfet2koj.cn-beijing.nlb.aliyuncsslb.com
# username: root
# password: 5tS3owZ7w8Uk1egv
# db: ${spring.application.name}
# port: 33068
open:
sdk:
basic:
url: ${common.gateway.network.http.external}/basic/api/sdk/sets
k8s:
#配置生产环境的底座K8S
namespace: jjb-dragon
arch: x86
dragon:
perms:
api:
type: HTTP
gateway:
baseurl: ${common.gateway.network.http.intranet}
url-ip: 10.43.146.37
# ------------------基础配置-----------------
snail-job:
server:
# 服务端的地址,若服务端集群部署则此处配置域名
host: 192.168.88.26
port: 17888
port: 17889
# 名称空间ID若不填为默认空间(764d604ec6fc45f68cd92514c40e9e1a)
# namespace:
# 令牌,若不填则默认为(SJ_Wyz3dmsdbDOkDujOTSSoBjGQP1BMsVnj)
# token:
rpc-type: grpc
file:
url: https://jpfz.qhdsafety.com/gbsFileTest/
aqdUrl: https://jpfz.qhdsafety.com/aqdFileTest/
ai:
ali-openai-url: http://101.201.170.9:3000
base-url: https://api.moonshot.cn/v1/chat/completions

View File

@ -0,0 +1,35 @@
spring:
flyway:
#升级数据库的文件路径
locations:
- classpath:db/migration/${db.type}/
# 当迁移数据库存在但没有元数据的表时自动执行基准迁移新建flyway_schema_history表
baseline-on-migrate: true
#基准版本号
baseline-version: 2.0.0
#是否启动flyway
enabled: true
#是否校验已迁移过的脚步变更
validate-migration-naming: false
#用于存储迁移历史记录的表名默认为flyway_schema_history
table: new_flyway_schema_history
#定义SQL文件的编码格式
encoding: UTF-8
#定义SQL文件名的前缀
sql-migration-prefix: V
#SQL迁移脚本文件名后缀默认为.sql
sql-migration-suffixes: .sql
#是否在迁移时验证脚本默认为true
validate-on-migrate: false
#禁用清理功能
clean-disabled: true
#是否允许无序迁移
out-of-order: false
#SQL分隔符
sql-migration-separator: __
url: ${spring.shardingsphere.datasource.master.url}
user: ${spring.shardingsphere.datasource.master.username}
password: ${spring.shardingsphere.datasource.master.password}
driverClassName: ${spring.shardingsphere.datasource.master.driver-class-name}
#占位符校验
placeholderReplacement: false

View File

@ -0,0 +1,9 @@
# JOB 配置
xxl-job:
admin:
address: http://192.168.13.63:8080/xxl-job-admin
username: admin
password: u9Hc7tLFBY
executor:
app-name: ${spring.application.name}
accessToken: 90d9aa354ad6f8c64ec01176ed66e611

View File

@ -0,0 +1,11 @@
common:
log:
jjb-saas-system:
- com.jjb:info
jjb-saas-auth1:
- com.jjb:info
jjb-saas-user:
- com.jjb:info
gray:
log:
host: 192.168.1.1

View File

@ -0,0 +1,22 @@
mq:
topic: springcloudStream-jjb-dragon-test
#server: rmq-cn-7mz2wwso306-vpc.cn-hangzhou.rmq.aliyuncs.com:8080 #10.43.189.176:9876 172.16.244.187:9876
server: rocketmq:9876
spring:
cloud:
stream:
bindings:
input:
destination: springcloudStream-jjb-dragon-test
group: ${spring.application.name}-${spring.profiles.active}
output:
destination: springcloudStream-jjb-dragon-test
group: ${spring.application.name}-${spring.profiles.active}
rocketmq:
binder:
name-server: rocketmq:9876
group: ${spring.application.name}-${spring.profiles.active}
bindings:
input:
consumer:
tags: a

View File

@ -0,0 +1,11 @@
mybatis-plus:
mapper-locations: classpath*:mapper/*.xml,classpath*:mapper/**/*Mapper.xml
type-handlers-package: com.jjb.saas.framework.datascope.handler
global-config:
banner: false
db-config:
id-type: assign_id
logic-delete-value: 1
logic-not-delete-value: 0
configuration:
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl

View File

@ -0,0 +1,81 @@
spring:
shardingsphere:
druid:
username: root
password: jjb123456
allows:
denys:
props:
sql:
show: true
enabled: true
masterslave:
name: ms # 名字,任意,需要保证唯一
master-data-source-name: master # 主库数据源
slave-data-source-names: slave-1 # 从库数据源
datasource:
names: master,slave-1
master:
#url: jdbc:mysql://10.43.123.226:3306/${spring.application.name}?characterEncoding=UTF-8&useUnicode=true&useSSL=false&tinyInt1isBit=false&allowPublicKeyRetrieval=true&allowMultiQueries=true&serverTimezone=Asia/Shanghai
url: jdbc:mysql://${mysql.host}:${mysql.port}/${mysql.db}?characterEncoding=UTF-8&useUnicode=true&useSSL=false&tinyInt1isBit=false&allowPublicKeyRetrieval=true&allowMultiQueries=true&serverTimezone=Asia/Shanghai
username: ${mysql.username}
password: ${mysql.password}
type: com.alibaba.druid.pool.DruidDataSource
# 降级
# driver-class-name: com.mysql.cj.jdbc.Driver
driver-class-name: com.mysql.jdbc.Driver
initial-size: 6
min-idle: 1
maxActive: 100
# 配置获取连接等待超时的时间
maxWait: 60000
# 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
timeBetweenEvictionRunsMillis: 60000
# 配置一个连接在池中最小生存的时间,单位是毫秒
minEvictableIdleTimeMillis: 300000
#Oracle需要打开注释
#validationQuery: SELECT 1 FROM DUAL
testWhileIdle: true
testOnBorrow: false
testOnReturn: false
# 打开PSCache并且指定每个连接上PSCache的大小
poolPreparedStatements: true
maxPoolPreparedStatementPerConnectionSize: 20
# 配置监控统计拦截的filters去掉后监控界面sql无法统计'wall'用于防火墙
filters: stat,slf4j
# 通过connectProperties属性来打开mergeSql功能慢SQL记录
connectionProperties: druid.stat.mergeSql\=true;druid.stat.slowSqlMillis\=5000
wall:
multi-statement-allow: true
slave-1:
# url: jdbc:mysql://10.43.123.226:3306/${spring.application.name}?characterEncoding=UTF-8&useUnicode=true&useSSL=false&tinyInt1isBit=false&allowPublicKeyRetrieval=true&allowMultiQueries=true&serverTimezone=Asia/Shanghai
url: jdbc:mysql://${mysql.host}:3306/${mysql.db}?characterEncoding=UTF-8&useUnicode=true&useSSL=false&tinyInt1isBit=false&allowPublicKeyRetrieval=true&allowMultiQueries=true&serverTimezone=Asia/Shanghai
username: ${mysql.username}
password: ${mysql.password}
type: com.alibaba.druid.pool.DruidDataSource
# 降级
# driver-class-name: com.mysql.cj.jdbc.Driver
driver-class-name: com.mysql.jdbc.Driver
initial-size: 6
min-idle: 1
maxActive: 100
# 配置获取连接等待超时的时间
maxWait: 60000
# 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
timeBetweenEvictionRunsMillis: 60000
# 配置一个连接在池中最小生存的时间,单位是毫秒
minEvictableIdleTimeMillis: 300000
#Oracle需要打开注释
#validationQuery: SELECT 1 FROM DUAL
testWhileIdle: true
testOnBorrow: false
testOnReturn: false
# 打开PSCache并且指定每个连接上PSCache的大小
poolPreparedStatements: true
maxPoolPreparedStatementPerConnectionSize: 20
# 配置监控统计拦截的filters去掉后监控界面sql无法统计'wall'用于防火墙
filters: stat,slf4j
# 通过connectProperties属性来打开mergeSql功能慢SQL记录
connectionProperties: druid.stat.mergeSql\=true;druid.stat.slowSqlMillis\=5000
wall:
multi-statement-allow: true

View File

@ -0,0 +1,3 @@
server:
port: 80
debug: false

View File

@ -0,0 +1,16 @@
spring:
redis:
#host: r-bp1j7heizb63kxg7b6.redis.rds.aliyuncs.com
host: 192.168.66.161
#Y53N4qNXuWXgHs$w
password: RS3owZ7w8Uk1e
port: 6379
timeout: 15000
database: 0
prefix: dragon
jedis:
pool:
max-active: 600
max-idle: 300
max-wait: 15000
min-idle: 10

View File

@ -0,0 +1,22 @@
sdk:
server:
symmetry-url: jjb-saas-application/application/applications/server/secure/
# app-key: jjb-saas-dragon
client:
security:
gateway: ${common.gateway.network.http.intranet}
appKey: ${sdk.server.app-key}
desensitization:
symmetric-key: 1234567887654321
enable: true
logging:
gateway: ${sdk.client.security.gateway}
appKey: ${sdk.client.security.app-key}
#不上报
clientLoggingEnable: true
level: debug
username: user
password: 123456
showConsoleLog: true
#不上报
formatConsoleLogJson: true

View File

@ -0,0 +1,96 @@
spring:
web:
resources:
cache:
cachecontrol:
no-store: false
max-age: 10000
no-cache: false
autoconfigure:
exclude: com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfigure
main:
allow-bean-definition-overriding: true
mvc:
pathmatch:
matching-strategy: ant_path_matcher
messages:
basename: i18n.message
encoding: UTF-8
server:
tomcat:
max-http-post-size: 100MB
connection-timeout: 180000
fastjson:
parser:
safeMode: true
mvc:
pathmatch:
matching-strategy: ANT_PATH_MATCHER
thymeleaf:
prefix: classpath:/templates/
cache: false
dubbo:
application:
name: ${spring.application.name}
registry:
timeout: 60000
address: nacos://${spring.cloud.nacos.config.server-addr}?namespace=${spring.cloud.nacos.config.namespace}-facade&username=${spring.cloud.nacos.config.username}&password=${spring.cloud.nacos.config.password}
check: false
filter: providerContextFilter
protocol:
port: -1
name: dubbo
consumer:
timeout: 60000
check: false
filter: consumerContextFilter
metadata:
report-definition: false
report-consumer-definition: false
metadata-report:
address: nacos://${spring.cloud.nacos.config.server-addr}
parameters:
namespace: ${spring.cloud.nacos.config.namespace}
username: ${spring.cloud.nacos.config.username}
password: ${spring.cloud.nacos.config.password}
# 关闭服务定义上报
report-definition: false
# 只上报必要元数据
report-metadata: true
# 重试次数
retry-times: 3
# 重试间隔(ms)
retry-period: 5000
timeout: 5000
# 压缩元数据内容
compress: true
# 元数据缓存本地
cache-metadata: true
# 同步转异步上报
sync-report: false
logging:
config: classpath:jjb-saas-logback-spring.xml
level:
com.alibaba.nacos.client.naming: OFF
com.alibaba.nacos.client.config.impl: OFF
com.alibaba.nacos.common.remote.client: OFF
datapermssion:
tenantcondition:
defaultversion: NEWVERSION
gateway:
url: ${common.gateway.network.http.external}
baseUrl: ${common.gateway.network.http.external}
easy-retry:
server:
#host: 10.43.73.61
#host: jjb-saas-config
host: 10.43.183.92
port: 1788
other:
platform:
cqyj:
openId: 1724256774550495232

View File

@ -0,0 +1,16 @@
sdk:
client:
app-key: e6ab3c9abda747b39d7cc12b6dc0f5a0
gateway:
url: ${common.gateway.network.http.intranet}
swagger:
enabled: ${common.swagger.enabled}
title: Demo
description: Safety Eval API Docs
version: ${application.version}
group-name: Demo
springfox:
documentation:
swagger:
v2:
path: /v2/api-docs

View File

@ -5,34 +5,28 @@
application: application:
name: safety-eval-service name: safety-eval-service
version: version:
gateway: safety-eval gateway: safetyEval
cn-name: 重庆安全评价 cn-name: 重庆安全评价
server:
servlet:
context-path: /${application.gateway}
spring: spring:
application: application:
name: ${application.name}${application.version} name: ${application.name}${application.version}
cloud: cloud:
nacos: nacos:
config: config:
enabled: ${NACOS_CONFIG_ENABLED:true}
username: ${NACOS_USERNAME:nacos}
password: ${NACOS_PASSWORD:nacos}
namespace: ${nacos.namespace} namespace: ${nacos.namespace}
server-addr: ${nacos.url} server-addr: ${nacos.url}
file-extension: yml file-extension: yml
shared-configs:
- config-common.yml
- config-port.yml
- config-mq.yml
- config-log.yml
- config-sdk-server.yml
- config-actuator.yml
- config-job.yml
- config-mysql.yml
- config-redis.yml
- config-cache.yml
- config-spring.yml
- config-mybatis.yml
- config-sdk.yml
- config-flyway.yml
discovery: discovery:
enabled: true enabled: true
server-addr: ${spring.cloud.nacos.config.server-addr} server-addr: ${spring.cloud.nacos.config.server-addr}
namespace: ${spring.cloud.nacos.config.namespace} namespace: ${spring.cloud.nacos.config.namespace}
username: ${spring.cloud.nacos.config.username}
password: ${spring.cloud.nacos.config.password}

View File

@ -1,36 +1,12 @@
management: management:
endpoints: endpoints:
web: web:
base-path: /${application.gateway}${application.version}/actuator exposure:
enabled-by-default: true include: health,metrics
endpoint: endpoint:
health: health:
show-details: always
shutdown:
enabled: true enabled: true
info:
enabled: false
auditevents:
enabled: false
metrics:
enabled: false
loggers:
enabled: false
logfile:
enabled: false
httptrace:
enabled: false
env: env:
enabled: false enabled: false
flyway:
enabled: false
liquidbase:
enabled: false
shutdown:
enabled: false
mappings:
enabled: false
scheduledtasks:
enabled: false
threaddump:
enabled: false
heapdump:
enabled: false

View File

@ -1,5 +1,21 @@
common: common:
dx:
url:
https:
url: ${common.gateway.network.http.external}
ota:
platform-attr-enum: SLAVE
server:
url: https://ota.cqjjb.cn
public-key:
client:
plat-key:
private-key:
test-plat:
plat-id:
platAppKey:
mysql: mysql:
type: mysql
host: 192.168.20.100 host: 192.168.20.100
port: 33080 port: 33080
username: root username: root
@ -14,6 +30,7 @@
address: http://10.43.98.135:8080/xxl-job-admin/ address: http://10.43.98.135:8080/xxl-job-admin/
username: admin username: admin
password: jjb123456 password: jjb123456
access-token: 90d9aa354ad6f8c64ec01176ed66e611
gateway: gateway:
network: network:
http: http:
@ -21,6 +38,7 @@
intranet: http://192.168.20.100 intranet: http://192.168.20.100
wx: wx:
external: wx://testdragon.cqjjb.cn external: wx://testdragon.cqjjb.cn
intranet: ws://192.168.20.100
swagger: swagger:
enabled: true enabled: true
base: base:
@ -29,7 +47,137 @@
host-url: http://10.43.12.158 host-url: http://10.43.12.158
login: login:
host-url: http://10.43.12.158 host-url: http://10.43.12.158
aliyun:
video:
callbackURL: /aliyun/callbackVideo/
userId:
regionId: cn-shanghai
accessKeyId:
accessKeySecret:
templateGroupId:
twAppKey:
oss:
accessKeyId: ${dromara.x-file-storage.aliyun-oss[0].access-key}
accessKeySecret: ${dromara.x-file-storage.aliyun-oss[0].secret-key}
bucketName: ${dromara.x-file-storage.aliyun-oss[0].bucket-name}
endpoint: http://${dromara.x-file-storage.aliyun-oss[0].end-point}
bucket: ${dromara.x-file-storage.aliyun-oss[0].domain}
apps:
basic-application: 976f689efcfd413981dfa1f2b814406d
apply-application: 586d4d3a2fbb4a669391335ae054479f
order-application: 15893f852a0d4eb3b2c968f0735cc9ed
cedu-application: 7c3cd4ae12534b7bbf0e1eddaa144341
train-application: d4cfbd62d9ec47c69697026be6430685
hour-application: 58e59ab7cfaa40df849e0480b88c4349
exam-application: 5b69745cadf84051beab2de3fb9fa6b2
evaluate-application: 93ec0094dd4e4be8afe8212e7c6b33e4
courseopenplatform-application: 60fa325b557c4113ad6510f62783a0a8
plan-approve-application: d1d0768f54cd4b2086c244a0dba0495e
industry-application: a1e1130e830347818455a6ff16ccf92a
scd-course-application: 6b1f3fed8e9140e984199e5ce9254374
qswj-customer-application: d3838b98d6f84ae48d3fe181074dcbd5
jjb-saas-official: 2bfa69cf673d487d89a1dd7348fa0bb4
cedu-customer-application: f1e16689eb914f009d0b461e818555b9
saas-customer-application: 2751e9bd060a4f659b7454dca4877c32
cert-application: 751d2135c48a4b18960c558b4143469b
jjb-saas-res: f18f760cc564441f8a90c6479152c115
declare-application: 7c6ab4793cb54d59a2319088110fd313
jjb-saas-exam-affairs: 2ea51819fc354088bf02d11effd1bd08
jjb-saas-punch-clock: c45d94add16a49e8bb66ba5e170b3439
jjb-apps-exam-manage: 2b00997376664a58b415391c02b7d9de
jjb-cedu-applet-v2: abcc08a98fba430dbd3f7dd08c6a98cd
review-application: 53a469ed0e19498fa8d43687d8ef2323
live-application: 5c75704416bc4a64a59729439116575a
jjb-apps-sign: 6b2f7ee0ed86423d8013268950b088d0
jjb-apps-customer-service: 9661da58847743c48bd1f7af39454ce5
signature-application: 0e65e899e0b04b7a82594de452850c6a
jjb-saas-course-open-platform: 16660510fe89413fbfac59e7b709f95f
jjb-apps-ocr: 18eb863aa7f64d08b980f9657b9c8c89
jjb-apps-archives: ecf369c676f24ea59aa671e4895d232d
jjb-apps-enterprisecenter: d51302107d144c4c8f45ba27c1e1170c
uris:
signature-application: http://business-signature-application
jjb-saas-archives: http://business-jjb-saas-archives
jjb-saas-base: http://jjb-saas-base
basic-application: http://business-jjb-apps-basic
apply-application: http://business-jjb-apps-apply
order-application: http://business-order-application
cedu-application: http://business-cedu-application
train-application: http://business-jjb-apps-train
hour-application: http://business-hour-application
exam-application: http://business-exam-application
evaluate-application: http://business-evaluate-application
courseopenplatform-application: http://courseopenplatform-application
plan-approve-application: http://business-jjb-apps-plan-approve
industry-application: http://business-jjb-apps-industry
scd-course-application: http://business-course-application
qswj-customer-application: http://business-jjb-apps-qswj-applet
jjb-saas-official: http://jjb-saas-official
cedu-customer-application: http://business-cedu-customer-application
saas-customer-application: http://business-saas-customer-application
cert-application: http://business-cert-application
jjb-saas-res: http://jjb-saas-res
declare-application: http://business-declare-application
jjb-saas-exam-affairs: http://business-exam-affairs
jjb-saas-punch-clock: http://jjb-saas-punch-clock
jjb-cedu-applet-v2: http://business-jjb-apps-cedu-applet-v2
jjb-apps-exam-manage: http://business-exam-manage
jjb-apps-sign: http://business-jjb-apps-sign
review-application: http://business-review-application
jjb-apps-customer-service: http://business-jjb-apps-customer-service
jjb-saas-course-open-platform: http://business-course-open-application
jjb-apps-ocr: http://business-jjb-saas-ocr
jjb-apps-enterprisecenter: http://business-jjb-apps-enterprisecenter
open:
sdk:
protocol: HTTP
url: 172.16.170.41
appPublicKey:
appPrivateKey:
x-frame-options: ${common.desk.host-url}/ ${common.login.host-url}/ ${common.base.host-url}/ ${common.gateway.network.http.external}/ http://10.43.250.65/ x-frame-options: ${common.desk.host-url}/ ${common.login.host-url}/ ${common.base.host-url}/ ${common.gateway.network.http.external}/ http://10.43.250.65/
openapi:
url: 10.43.82.219
db:
type: mysql
mysql:
host: ${common.mysql.host}
port: ${common.mysql.port}
username: ${common.mysql.username}
password: ${common.mysql.password}
db: jjb_saas_safety_eval
open:
sdk:
basic:
url: ${common.gateway.network.http.external}/basic/api/sdk/sets
k8s: k8s:
namespace: test-dragon namespace: test-dragon
arch: x86
dragon:
perms:
api:
type: HTTP
gateway:
baseurl: ${common.gateway.network.http.intranet}
url-ip: 10.43.146.37
snail-job:
server:
host: 192.168.88.26
port: 17888
port: 17889
rpc-type: grpc
file:
url: ${common.gateway.network.http.external}/gbsFileTest/
aqdUrl: ${common.gateway.network.http.external}/aqdFileTest/
ai:
ali-openai-url: http://101.201.170.9:3000
base-url: https://api.moonshot.cn/v1/chat/completions

View File

@ -0,0 +1,21 @@
spring:
flyway:
locations:
- classpath:db/migration/${db.type}/
baseline-on-migrate: true
baseline-version: 2.0.0
enabled: true
validate-migration-naming: false
table: new_flyway_schema_history
encoding: UTF-8
sql-migration-prefix: V
sql-migration-suffixes: .sql
validate-on-migrate: false
clean-disabled: true
out-of-order: false
sql-migration-separator: __
url: ${spring.shardingsphere.datasource.master.url}
user: ${spring.shardingsphere.datasource.master.username}
password: ${spring.shardingsphere.datasource.master.password}
driverClassName: ${spring.shardingsphere.datasource.master.driver-class-name}
placeholderReplacement: false

View File

@ -1,8 +1,9 @@
# JOB 配置 # JOB 配置
xxl-job: xxl-job:
admin: admin:
address: ${common.xxl-job.address} address: ${common.xxl-job.address}
username: ${common.xxl-job.username} username: ${common.xxl-job.username}
password: ${common.xxl-job.password} password: ${common.xxl-job.password}
executor: executor:
app-name: ${spring.application.name} app-name: ${spring.application.name}
accessToken: ${common.xxl-job.access-token}

View File

@ -1,4 +1,4 @@
mq: mq:
topic: springcloudStream-jjb-dragon-test topic: springcloudStream-jjb-dragon-test
server: ${common.mq.host} server: ${common.mq.host}
spring: spring:
@ -13,9 +13,9 @@ spring:
group: ${spring.application.name}-${spring.profiles.active} group: ${spring.application.name}-${spring.profiles.active}
rocketmq: rocketmq:
binder: binder:
name-server: ${common.mq.host} name-server: ${mq.server}
group: ${spring.application.name}-${spring.profiles.active} group: ${spring.application.name}-${spring.profiles.active}
bindings: bindings:
input: input:
consumer: consumer:
tags: a tags: a

View File

@ -1,13 +1,11 @@
mybatis-plus: mybatis-plus:
mapper-locations: classpath*:mapper/**/*.xml mapper-locations: classpath*:mapper/*.xml,classpath*:mapper/**/*Mapper.xml
type-handlers-package: com.jjb.saas.framework.datascope.handler type-handlers-package: com.jjb.saas.framework.datascope.handler
global-config: global-config:
banner: false banner: false
db-config: db-config:
id-type: assign_id id-type: assign_id
logic-delete-field: deleteEnum logic-delete-value: 1
logic-delete-value: "true" logic-not-delete-value: 0
logic-not-delete-value: "false"
configuration: configuration:
map-underscore-to-camel-case: true
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl log-impl: org.apache.ibatis.logging.stdout.StdOutImpl

View File

@ -1,15 +1,7 @@
mysql: spring:
db: jjb_saas_safety_eval
spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://${common.mysql.host}:${common.mysql.port}/${mysql.db}?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true&allowMultiQueries=true
username: ${common.mysql.username}
password: ${common.mysql.password}
shardingsphere: shardingsphere:
druid: druid:
username: admin username: root
password: jjb123456 password: jjb123456
allows: allows:
denys: denys:
@ -24,14 +16,14 @@ spring:
datasource: datasource:
names: master,slave-1 names: master,slave-1
master: master:
url: jdbc:mysql://${common.mysql.host}:${common.mysql.port}/${mysql.db}?characterEncoding=UTF-8&useUnicode=true&useSSL=false&tinyInt1isBit=false&allowPublicKeyRetrieval=true&allowMultiQueries=true&serverTimezone=Asia/Shanghai url: jdbc:mysql://${mysql.host}:${mysql.port}/${mysql.db}?characterEncoding=UTF-8&useUnicode=true&useSSL=false&tinyInt1isBit=false&allowPublicKeyRetrieval=true&allowMultiQueries=true&serverTimezone=Asia/Shanghai
username: ${common.mysql.username} username: ${mysql.username}
password: ${common.mysql.password} password: ${mysql.password}
type: com.alibaba.druid.pool.DruidDataSource type: com.alibaba.druid.pool.DruidDataSource
driver-class-name: com.mysql.cj.jdbc.Driver driver-class-name: com.mysql.jdbc.Driver
initial-size: 6 initial-size: 6
min-idle: 4 min-idle: 1
maxActive: 40 maxActive: 100
maxWait: 60000 maxWait: 60000
timeBetweenEvictionRunsMillis: 60000 timeBetweenEvictionRunsMillis: 60000
minEvictableIdleTimeMillis: 300000 minEvictableIdleTimeMillis: 300000
@ -40,19 +32,19 @@ spring:
testOnReturn: false testOnReturn: false
poolPreparedStatements: true poolPreparedStatements: true
maxPoolPreparedStatementPerConnectionSize: 20 maxPoolPreparedStatementPerConnectionSize: 20
filters: slf4j filters: stat,slf4j
connectionProperties: druid.stat.mergeSql\=true;druid.stat.slowSqlMillis\=5000 connectionProperties: druid.stat.mergeSql\=true;druid.stat.slowSqlMillis\=5000
wall: wall:
multi-statement-allow: true multi-statement-allow: true
slave-1: slave-1:
url: jdbc:mysql://${common.mysql.host}:${common.mysql.port}/${mysql.db}?characterEncoding=UTF-8&useUnicode=true&useSSL=false&tinyInt1isBit=false&allowPublicKeyRetrieval=true&allowMultiQueries=true&serverTimezone=Asia/Shanghai url: jdbc:mysql://${mysql.host}:${mysql.port}/${mysql.db}?characterEncoding=UTF-8&useUnicode=true&useSSL=false&tinyInt1isBit=false&allowPublicKeyRetrieval=true&allowMultiQueries=true&serverTimezone=Asia/Shanghai
username: ${common.mysql.username} username: ${mysql.username}
password: ${common.mysql.password} password: ${mysql.password}
type: com.alibaba.druid.pool.DruidDataSource type: com.alibaba.druid.pool.DruidDataSource
driver-class-name: com.mysql.cj.jdbc.Driver driver-class-name: com.mysql.jdbc.Driver
initial-size: 6 initial-size: 6
min-idle: 4 min-idle: 1
maxActive: 20 maxActive: 100
maxWait: 60000 maxWait: 60000
timeBetweenEvictionRunsMillis: 60000 timeBetweenEvictionRunsMillis: 60000
minEvictableIdleTimeMillis: 300000 minEvictableIdleTimeMillis: 300000
@ -61,7 +53,7 @@ spring:
testOnReturn: false testOnReturn: false
poolPreparedStatements: true poolPreparedStatements: true
maxPoolPreparedStatementPerConnectionSize: 20 maxPoolPreparedStatementPerConnectionSize: 20
filters: slf4j filters: stat,slf4j
connectionProperties: druid.stat.mergeSql\=true;druid.stat.slowSqlMillis\=5000 connectionProperties: druid.stat.mergeSql\=true;druid.stat.slowSqlMillis\=5000
wall: wall:
multi-statement-allow: true multi-statement-allow: true

View File

@ -1,3 +1,3 @@
server: server:
port: 80 port: 80
debug: false debug: false

View File

@ -3,15 +3,9 @@
host: ${common.redis.host} host: ${common.redis.host}
password: ${common.redis.password} password: ${common.redis.password}
port: ${common.redis.port} port: ${common.redis.port}
timeout: 10000 timeout: 15000
database: 0 database: 0
prefix: dragon prefix: dragon
lettuce:
pool:
max-active: 8
max-idle: 8
min-idle: 0
max-wait: -1
jedis: jedis:
pool: pool:
max-active: 600 max-active: 600

View File

@ -1,11 +1,4 @@
spring: spring:
zipkin:
base-url: http://jjb-saas-zipkin/
sender:
type: web
sleuth:
sampler:
probability: 1
web: web:
resources: resources:
cache: cache:
@ -28,21 +21,10 @@
enabled: true enabled: true
max-file-size: 100MB max-file-size: 100MB
max-request-size: 500MB max-request-size: 500MB
flyway:
enabled: true
encoding: UTF-8
locations: classpath:db/migration
sql-migration-prefix: V
sql-migration-separator: __
sql-migration-suffixes: .sql
validate-on-migrate: true
baseline-on-migrate: true
server: server:
servlet:
context-path: /${application.gateway}
tomcat: tomcat:
max-http-post-size: 200MB max-http-post-size: 100MB
connection-timeout: 180000 connection-timeout: 180000
fastjson: fastjson:
@ -60,22 +42,35 @@ thymeleaf:
dubbo: dubbo:
application: application:
name: ${spring.application.name} name: ${spring.application.name}
service-discovery:
migration: FORCE_INTERFACE
registry: registry:
timeout: 20000 timeout: 60000
address: nacos://${spring.cloud.nacos.config.server-addr}?namespace=${spring.cloud.nacos.config.namespace}-facade address: nacos://${spring.cloud.nacos.config.server-addr}?namespace=${spring.cloud.nacos.config.namespace}-facade&username=${spring.cloud.nacos.config.username}&password=${spring.cloud.nacos.config.password}
check: false check: false
filter: providerContextFilter filter: providerContextFilter
scan:
base-packages: org.qinan.safetyeval
protocol: protocol:
port: 20895 port: -1
name: dubbo name: dubbo
consumer: consumer:
timeout: 20000 timeout: 60000
check: false check: false
filter: consumerContextFilter filter: consumerContextFilter
metadata:
report-definition: false
report-consumer-definition: false
metadata-report:
address: nacos://${spring.cloud.nacos.config.server-addr}
parameters:
namespace: ${spring.cloud.nacos.config.namespace}
username: ${spring.cloud.nacos.config.username}
password: ${spring.cloud.nacos.config.password}
report-definition: false
report-metadata: true
retry-times: 3
retry-period: 5000
timeout: 5000
compress: true
cache-metadata: true
sync-report: false
logging: logging:
config: classpath:jjb-saas-logback-spring.xml config: classpath:jjb-saas-logback-spring.xml
@ -87,11 +82,15 @@ logging:
datapermssion: datapermssion:
tenantcondition: tenantcondition:
defaultversion: NEWERSION defaultversion: NEWVERSION
gateway:
url: ${common.gateway.network.http.external}
baseUrl: ${common.gateway.network.http.external}
easy-retry: easy-retry:
server: server:
host: http://jjb-saas-config host: 10.43.183.92
port: 1788 port: 1788
dromara: dromara:
@ -115,6 +114,11 @@ dragon:
is-system: 'false' is-system: 'false'
system-url: http://jjb-saas-system system-url: http://jjb-saas-system
other:
platform:
cqyj:
openId: 1724256774550495232
safety-eval: safety-eval:
gbs-user-sync: gbs-user-sync:
fail-fast: true fail-fast: true
@ -163,3 +167,4 @@ safety-eval:
def: def:
password: a123456 password: a123456
publicKey: 0402df2195296d4062ac85ad766994d73e871b887e18efb9a9a06b4cebc72372869b7da6c347c129dee2b46a0f279ff066b01c76208c2a052af75977c722a2ccee publicKey: 0402df2195296d4062ac85ad766994d73e871b887e18efb9a9a06b4cebc72372869b7da6c347c129dee2b46a0f279ff066b01c76208c2a052af75977c722a2ccee