服务器、账号与安全配置

主要文件

服务器、账号与安全配置主要集中在 server.conf

digital-platform-server 为例,这个文件承担了以下几类职责:

  • 服务器网络接入
  • Web 入口与 API 路径
  • 匿名访问与 CORS
  • 根账号初始化
  • 用户开放注册
  • 单点或单会话相关控制
  • 登录跳转与开放认证
  • 图形验证码与 HTTP 会话令牌
  • 文件服务匿名访问白名单

网络接入

常见的网络接入配置包括:

  • server.address
  • server.port
  • server.servlet.context-path

digital 的样例里,开发态与安装态的 server.port 并不相同,这正说明了 @conf@install/conf 应分别维护各自的部署语义。

Web 与匿名访问

server.conf 中常见的 Web 安全配置包括:

  • galaxyplatform.web.http-service.path-prefix
  • galaxyplatform.web.index-page
  • galaxyplatform.web.cors.allows[...]
  • galaxyplatform.security.web.anonymous-urls
  • galaxyplatform.security.web.redirect.required
  • galaxyplatform.security.web.http-basic.enable

推荐做法:

  • 开发态先把联调必须匿名访问的 URL 明确列出
  • 发布态只保留真正需要开放的接口
  • 对文件服务、支付通知、开放登录回调等接口单独审视,不要把调试用匿名规则带到正式环境

账号初始化与开放注册

digitalservice-center 的样例表明,账号相关配置至少包含:

  • 根账号初始化
  • 账号缓存
  • 开放注册
  • 手机号校验
  • 公钥身份
  • 默认角色
  • 账号绑定二维码配置

对公开文档而言,最重要的不是记住每一个键名,而是把配置目的分清楚:

  • 初始化类配置:只影响系统首次建库和首次启动
  • 注册类配置:影响开放注册和默认身份
  • 账号缓存相关配置:影响账户读取与权限缓存性能
  • 绑定类配置:影响终端侧账号绑定交互

安全开关与会话控制

以下是需要重点关注和管理的配置项:

  • galaxyplatform.security.debug-mode
  • galaxyplatform.security.web.open-auth.debug-mode
  • galaxyplatform.security.web.single-login-session
  • galaxyplatform.security.session.http.url-token-enabled
  • galaxyplatform.security.session.http.permits.*
  • galaxyplatform.security.web.verify.*

使用时应特别注意:

  • debug-mode 视为高敏感配置,发布前必须复核
  • 会话白名单按 HTTP 方法拆分管理,避免把临时联调接口长期暴露
  • 验证码和开放认证开关需要与真实业务链路一起评估,而不是只从技术角度开启

可复制模板

以下片段保留了平台模板中紧邻配置项的原始注释,可直接作为 server.conf 的基础模板,再按环境替换应用名、端口和敏感值:

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

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

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

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

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

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

# 设置跨源资源共享(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

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

# 账户缓存参数设置;
# 账户缓存的过期时间,默认 30, 单位:秒;
galaxyplatform.security.account.cache.expire=30
# 账户缓存的最大记录数,默认 100000 ;
galaxyplatform.security.account.cache.max-size=100000

# 是否启用开放用户注册;默认为false;
# galaxyplatform.security.account.user-register.open=false
# 是否自动批准注册申请并创建用户账号;默认为false;
# galaxyplatform.security.account.user-register.auto-approve=true
# 用户信息中如果设置了手机号码,是否必须验证用户手机号码;默认为 false ;
# 设置为 true 时,需要系统开通接入短信服务才能使用;
# galaxyplatform.security.account.user-register.phone-number-verify=false
# 是否为开放注册用户赋予公钥身份;默认为 false ;
# galaxyplatform.security.account.user-register.public-key-identity=false
# 开放注册用户的默认角色;
# galaxyplatform.security.account.user-register.default-roles=DEVELOPER

# 账号绑定二维码图片的内容前缀;默认为 galaxy:account:binding://
# galaxyplatform.security.account.binding.qrcode-image.prefix=galaxy:account:binding://

# 账号绑定二维码图片的内容后缀;默认为 galaxy:account:binding://
# galaxyplatform.security.account.binding.qrcode-image.suffix

# 二维码失效时长以及绑定会话失效时长;单位:秒;默认 300 秒(5分钟);
# 必须大于 0 ;小于等于 0 时,系统自动取默认值;
# galaxyplatform.security.account.binding.qrcode-image.timeout-seconds=300

#######################################
# 图片校验码;
#######################################
# 是否启用验证码机制;默认为 false ;
#
# 启用后,请求 URL /security/verification 可以获得一段 jpg 格式 base64 编码的验证码图片;
# 注:此 URL 会自动注册为匿名 API URL (等同于配置属性 galaxyplatform.security.web.anonymous-urls );
galaxyplatform.security.web.verify.enable=true

# 验证码超时时长,单位:秒;
# 默认值:30 ;
# galaxyplatform.security.web.verify.timeout=30

# 是否验证登录;默认为 true ;
# 设置为 true 时,自动将登录处理地址加入
# galaxyplatform.security.web.verify.filter.verify-login=true

# 是否通过HTTP请求头携带请求者输入的验证码; 默认为 true ;
# 如果为 false ,则表示通过请求参数或表单字段传递;
# galaxyplatform.security.web.verify.request.header-enable=true

# 验证码在 HTTP 请求头或参数中的 key ;默认值: VerificationCode ;
# galaxyplatform.security.web.verify.request.key=VerificationCode

#######################################
# 账户数据库设置;
#######################################
# 账户数据库类型;
# 默认为空;
# 可选值是平台的组件提供的实现来决定的;
# 平台默认实现了基于 mongodb 实现的账户数据库,通过将 dbType 设置为 mongodb 激活该特性;
galaxyplatform.security.account.db-type=mongodb

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

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

# 开启 HTTP Basic ;
# 注意:这是一种不安全的认证方式,仅适用于在开发状态下为进行与前端或第三方的集成测试提供便利,而不应作为生产环境而开启;
# galaxyplatform.security.web.http-basic.enable=false

#######################################
# 会话安全设置
#######################################
# 是否支持基于 URL 的会话令牌;默认为 false ;
# galaxyplatform.security.session.http.url-token-enabled = true

# 通过在 permits 后指定 HTTP 方法名,指定匹配特定 HTTP 方法的 URL 规则;
# 支持所有 HTTP 方法:GET, POST, PUT, DELETE, HEAD, PATCH, OPTIONS, TRACE ;
#
# 匹配 HTTP POST 方法的 URL 规则;
# galaxyplatform.security.session.http.permits.post.urls = /api/service1/test/*

相关AI skills

  • galaxy-app-config-network
  • galaxy-app-config-account
  • galaxy-app-config-security
最近更新:
发布者: huanghaiquan
扫码咨询