应用配置参考

配置文件

默认配置文件

GAPP 应用的 “默认配置文件” 位于后端模块项目的默认资源目录下,路径为:<ROOT_PROJ_DIR>/server/src/main/resources/conf/server.conf

运行时配置文件

运行时配置文件” 是 GAPP 应用在 IDE 中运行/调试时的实际生效的配置文件,位于后端模块 server 项目下的 target 目录下,路径为:<ROOT_PROJ_DIR>/server/target/conf/server.conf

当首次启动运行 GAPP 应用时,会以后端模块 server 项目下的 target 目录(<ROOT_PROJ_DIR>/server/target/)作为应用运行的主目录GAPP_HOME,此时,“默认配置文件” 将会被复制到 <GAPP_HOME>/conf/ 目录下,作为运行时配置文件”

当再次运行应用时,如果 运行时配置文件” 不存在,则再次复制 “默认配置文件” ;否则,直接采用已存在的 运行时配置文件”

配置概述

GAPP 应用开发在设计时采用了 “约定大于配置” 的原则,配置文件模板针对最常见的情形定义了绝大部分的默认值,开发者可以在此基础上根据实际需要调整小部分配置即可。

初始运行应用时,首要关注的配置主要包括以下几个方面:

  1. 服务器的网络接入:设置绑定的主机地址和端口
  2. 安全管理:设置根账户的初始密码
  3. MongoDB 数据库: 设置应用核心数据库的连接

通常,在最简单的情形中,必须提供配置的只有 “MongoDB数据库 -> 应用核心库 MongoDB 的连接配置” 部分,需要设置 MongoDB 数据库地址、用户、密码。

指定的数据库用户要求必须有 “读写权限”

当应用首次运行时,系统将在指定的数据库中自动初始化根账号和系统元数据等内容。

#######################################
# 服务器的网络接入
#######################################

# ......

# 声明应用服务绑定的本地网络地址;
server.address=0.0.0.0

# HTTP 服务的本地网络端口;
server.port=8080
# HTTP 服务的上下文路径;
server.servlet.context-path=/

# ......

#######################################
# 安全管理
#######################################

# 初始化根账户;
# 如果不指定根用户名,则不自动初始化根用户;
galaxyplatform.security.account.root.username=root
# 初始化根账户的登录口令;如果不设置,则会在首次启动初始化的时候生成一个随机口令输出到日志文件中;
#galaxyplatform.security.account.root.password=root@123

# ......

#######################################
# MongoDB 数据库
#######################################

#-------------------------------------------------
# 应用核心库 MongoDB 的连接配置;
#-------------------------------------------------
# spring.data.mongodb.auto-index-creation=true
# spring.data.mongodb.host=127.0.0.1
# spring.data.mongodb.port=27017
# spring.data.mongodb.database=dataDB
# spring.data.mongodb.authenticationDatabase=authDB
# spring.data.mongodb.username=usernameOfDb
# spring.data.mongodb.password=passwordOfDb

# ......

  • 目前 GAPP 应用核心库只支持 MongoDB 数据库。核心库对 MySQL 等其它数据库的支持特性还处于开发中,敬请期待。
  • 应用自身可以有独立的业务数据库和数据持久化实现,并不必须采用核心数据库。 GAPP 应用集成了 Spring/Spring Boot ,应用自身可以自行引入任意类型的数据库和数据持久化框架。

最小可运行配置

在最简单的情形中,可运行的最小配置项中,必须提供配置的只有 “MongoDB数据库 -> 应用核心库 MongoDB 的连接配置” 部分。

创建 MongoDB 数据库

  • 通过 MongoDB 客户端连接到服务器
sudo ./mongo --host 127.0.0.1 --port 27017 -u root
  • 在 MongoDB 控制台中创建数据库 myappdb
use myappdb
  • 在 MongoDB 控制台中,在 admin 数据库下创建用户 gapper,分配 “读写” 权限
use admin 

db.createUser(
  {
    user: "gapper",
    pwd: "gapper#123",
    roles: [ { role: "readWrite", db: "myappdb" } ]
  }
)
  • 通常情况下,建议只授予该用户 readWrite 角色使其只有数据的读写权限,因为该用户在接下来的步骤中会绑定到应用中,读写权限已经足够,应避免过多授权带来的安全风险
  • GAPP 对 MongoDB 数据库的配置没有特殊要求。关于 MongoDB 的更多操作可参考《管理 MongoDB》,或者访问官方的 《MongoDB操作手册》open in new window

配置应用的核心数据库

将上一步创建的 MongoDB 数据库名称和用户信息,更新到应用的默认配置文件。

#######################################
# MongoDB 数据库
#######################################

#-------------------------------------------------
# 应用核心库 MongoDB 的连接配置;
#-------------------------------------------------
spring.data.mongodb.auto-index-creation=true
spring.data.mongodb.host=127.0.0.1
spring.data.mongodb.port=27017
spring.data.mongodb.database=myappdb
spring.data.mongodb.authenticationDatabase=admin
spring.data.mongodb.username=gapper
spring.data.mongodb.password=gapper#123
  • 执行结果

启动结果1
启动结果2
启动结果3

在创建应用生成的默认配置基础上,当完成了 应用核心库 MongoDB 的设置之后,就可以开始启动运行了。

配置根账号

# 初始化根账户;
# 如果不指定根用户名,则不自动初始化根用户;
galaxyplatform.security.account.root.username=root
# 初始化根账户的登录口令;如果不设置,则会在首次启动初始化的时候生成一个随机口令输出到日志文件中;
galaxyplatform.security.account.root.password=root@123

# 根账户的授权;
# 注:根账号会默认地授予根角色 ROLE:SYSTEM://ROOT/ROOT 权限,不需要显式声明;
#galaxyplatform.security.account.root.authorities=

配置角色权限


#------------------------
# 定义角色;(角色名称大小不敏感)
#------------------------
# 1. 系统预定义角色;
# 系统有 3 个预定义的默认角色 ROOT 、 ADMIN 、 EVERYONE ,不需要显式地声明:
# ROOT          系统根账号角色,默认授予根账号;
# ADMIN         组织管理员角色,默认授予任意组织的管理员,当账号被解除组织管理员身份后,该权限自动失效;
# EVERYONE      普通账号角色,默认授予任意账号;
#
# 2. 配置预定义角色;
# 按以下设置可声明预定义角色;
# galaxyplatform.security.rbac.roles=GUEST
#

#------------------------
# 定义角色的预定义权限列表;
#------------------------
# 根账号角色的授权;
# 注:此角色的授权会直接合并到根账号的权限列表;
galaxyplatform.security.rbac.authorities.ROOT=FEATURE://CONSOLE/MENU/ORG-MANAGEMENT/ORG-REGISTER,\
                                              FEATURE://CONSOLE/MENU/ORG-MANAGEMENT/ORG-AUTHORIZE,\
                                              FEATURE://CONSOLE/MENU/SECURITY/SECURITY-ACCOUNT,\
                                              FEATURE://CONSOLE/MENU/SECURITY/SECURITY-ROLE,\
                                              FEATURE://CONSOLE/MENU/SECURITY/SECURITY-AUTHORIZE-ACCOUNT,\
                                              FEATURE://CONSOLE/MENU/SYSTEM-CONFIG/EMAIL-SERVER-CONFIG
# 组织管理员角色的授权;
# 注:对机构管理员角色最终获得的权限会受到所在机构的权限范围约束,不能超出机构获得的权限列表;
galaxyplatform.security.rbac.authorities.ADMIN=FEATURE://CONSOLE/MENU/ORG-MANAGEMENT/ORG-SETTINGS,\
                                               FEATURE://CONSOLE/MENU/ORG-MANAGEMENT/JOB-MANAGEMENT,\
                                               FEATURE://CONSOLE/MENU/ORG-MANAGEMENT/EMPLOYEE-MANAGEMEMT,\
                                               FEATURE://CONSOLE/MENU/ORG-MANAGEMENT/ORG-MEMBER-REGISTER,\
                                               FEATURE://CONSOLE/MENU/ORG-MANAGEMENT/ORG-MEMBER-AUTHORIZE,\
                                               FEATURE://CONSOLE/MENU/BUSI/BUSI-REGISTER,\
                                               FEATURE://CONSOLE/MENU/FILE-SERVICE-MNGMT/FILE-ACCESS-AUTHORIZE

# 普通账号角色的授权;
# 注:此角色会直接合并到所有用户的权限列表;
galaxyplatform.security.rbac.authorities.EVERYONE=FEATURE://PLATFORM/TOOLBAR/TBAR-LOGOUT,\
                                                  FEATURE://PLATFORM/TOOLBAR/TBAR-ACCOUNT-PROFILE

配置扩展 Web 服务

首页

# 设置首页 URL;
# 默认值:/index.html ;
galaxyplatform.web.index-page=index.html

默认值为 /index.html ,如果不需要更改为其它值,则不需要做任何配置。

API URL 前缀格式

# 以 @HttpService 标注的服务 URL 的路径前缀;
# 默认值:/api 
galaxyplatform.web.http-service.path-prefix=/api

跨源资源共享(CORS)

# 设置跨源资源共享(CORS: Cross Origin Resource Share);
galaxyplatform.web.cors.allows[/api/ffs/secure/**].headers=*
galaxyplatform.web.cors.allows[/api/ffs/secure/**].methods=*
galaxyplatform.web.cors.allows[/api/ffs/secure/**].origins=http://site1-host:8081, https://site2-host:8082

URL匿名访问规则

# 设置可匿名访问 URL 规则;多项规则以英文逗点“,”分隔;
galaxyplatform.security.web.anonymous-urls=/,/index.html

登录认证

提供选项控制登录以后的“HTTP跳转”方式,用于和其它系统通过接口集成“登录”功能,能提供不同的控制选项。

#登录操作后不强制自动重定向,由客户端通过 HTTP 头部 No-Redirect 指示是否自动跳转;
galaxyplatform.security.web.redirect.required=false
#galaxyplatform.security.web.redirect.no-redirect-header-name=No-Redirect

配置服务器的网络

此部分采用的是 Spring 框架定义的 Web 服务器配置选项。

#######################################
# 服务器的网络接入
#######################################

# 声明应用服务的名称;
server.name=GAPP-DEMO

# 声明应用服务绑定的本地网络地址;
server.address=0.0.0.0

# HTTP 服务的本地网络端口;
server.port=8080
# HTTP 服务的上下文路径;
server.servlet.context-path=/

# 声明应用服务的公网地址;
server.public-address=
# HTTP 服务的公共网络端口;
server.public-port=

Web 参数


Tomcat 服务器


配置 SSL 安全证书

当没有采用反向代理服务器(如 nginx),独立部署应用时,可以通过以下方式配置应用服务器的证书,实现支持 HTTPS 协议。


配置 HTTP 文件上传参数

配置 ssh 命令控制台

配置 密钥库

配置 RocksDB 实现的 KV 存储

配置区块链接入

最近更新:
发布者: huanghaiquan
扫码咨询