CAS单点登录(第7版)5.配置

CAS单点登录(第7版)5.配置

经验文章nimo972025-03-03 11:19:307A+A-

如有疑问,请看视频:CAS单点登录(第7版)_在线视频教程-CSDN程序员研修院

1. 配置

1.1. 概述

1.1.1. 配置管理

CAS 的核心基础(处理配置管理、设置和跨多个 CAS 节点的更改复制)都完全通过Spring Cloud 项目自动处理。下面列出的策略提供了一种非常灵活和强大的方法来管理生产部署的 CAS 配置,它允许 CAS 采用者仅跟踪其特定部署问题所需的设置,而将所有其他设置留给默认 CAS 配置处理。

以下策略可用于完全扩展 CAS 配置模型。

YAML 还是 Properties?

CAS 配置允许在以下任何策略中使用 YAML 和 Properties 语法。通常使用哪种语法并不重要,但是当使用 Unicode 字符串作为 properties 值时,它确实很重要。Spring 使用 'ISO-8859-1' 编码加载 propertiesfile。YAML 文件使用 UTF-8 编码加载。如果要设置 Unicode值,请尝试使用 YAML 配置文件。

CAS 配置目录中提供了以下设置和属性:

必填

自选

笔记

下面列出的配置设置在 CAS 配置元数据中标记为 Required。此标志表示可能需要该设置的存在才能激活或影响 CAS 功能的行为,并且通常应进行审查、可能拥有和调整。如果为该设置分配了默认值,则无需严格将该设置放在配置副本中,但仍应对其进行检查以确保它符合您的部署预期。

Show entries

搜索:


· cas.server.name=https://cas.example.org:8443

CAS 服务器的全名。这是 CAS 部署的面向公众的地址,而不是单个节点地址(如果 CAS 是群集的)。

org.apereo.cas.configuration.model.core.CasServerProperties.

如何配置此属性?

· cas.server.prefix=

服务器名称与 CAS 上下文路径的串联。root 的 deployments 可能需要将此值留空。

此设置支持 Spring 表达式语言。

org.apereo.cas.configuration.model.core.CasServerProperties.

如何配置此属性?

· cas.server.scope=example.org

CAS 服务器范围。

此设置支持 Spring 表达式语言。

org.apereo.cas.configuration.model.core.CasServerProperties.

如何配置此属性?

显示 1 到 3 个条目中的 3 个

上一页1下一页


启动时,CAS 将显示一个横幅以及一些诊断信息。要跳过此步骤并进行汇总,请设置 system 属性 -DCAS_BANNER_SKIP=true。

在启动时,CAS 将执行许多与应用程序生命周期、bean 生命周期甚至处理应用程序事件相关的任务。可以在启动时跟踪此类事件,并收集此类事件以进行分析,以便更好地了解应用程序启动过程。可以使用系统属性 -DCAS_APP_STARTUP控制启动事件跟踪,该属性可以分配以下值:

类型

描述

default

默认启动类型,充当 no-op。

buffering

使用预定义的容量将事件记录到内存中,并通过 startup actuator 端点公开它们。

jfr

将启动事件添加到 Java Flight Recorder 会话中,以分析应用程序并关联其 Spring 上下文生命周期。

1.1.2. 概述

CAS 允许您外部化配置,以便您可以在不同的环境中使用相同的 CAS 实例。您可以使用属性文件、YAML 文件、环境变量和命令行参数来外部化配置。

CAS 使用非常特殊的 Sequences,该 Sequences 旨在允许合理地覆盖值。传递给 CAS Web 应用程序的属性按以下顺序考虑:

1. 命令行参数,以 -- 开头(例如 --server.port=9000)

2. SPRING_APPLICATION_JSON 中的属性(嵌入在环境变量/系统属性中的内联 JSON)

3. javajava:comp/env 中的 JNDI 属性。

4. 配置文件(即 application.properties|yml)由配置服务器和配置文件指示。

5. OS 环境变量。

6. Java System 属性。

管理配置

为了管理 CAS 配置,您应该配置对 CAS 管理面板的访问。

1.1.3. 执行器端点

提供了以下终端节点:

GET

/cas/actuator/env/{toMatch}

生成所有应用程序属性的集合。

GET

/cas/actuator/env


GET

/cas/actuator/beans


GET

/cas/actuator/conditions


1.1.4. 配置服务器

CAS 提供了一个内置的配置服务器,该服务器负责引导 configurationenvironment 并在分布式系统中加载外部化设置。您可能有一个集中位置来管理所有环境中 CAS 节点的外部属性。要了解有关如何管理 CAS 配置的更多信息,请查看本指南。

1.1.5. 扩展 CAS 配置

要了解有关如何扩展和自定义 CAS 配置的更多信息,请查看本指南。

1.1.6. 自定义 CAS 设置

CAS 配置目录中提供了以下设置和属性:


自选


笔记

下面列出的配置设置在 CAS 配置元数据中标记为 Optional(可选)。This标志表示在最终用户 CAS 配置中不需要立即存在该设置,因为分配了默认值,或者该功能的激活不受设置值有条件地控制。换句话说,仅当需要修改默认值或需要打开由设置控制的功能时,才应在配置中包含此字段。

Show entries

搜索:


· cas.custom.properties=

可用于本地部署的自定义设置的集合。这些设置应可用于 CAS 视图和 Webflows,用于更改 UI 和/或将自定义行为引入任何扩展的自定义组件,而无需引入新的属性命名空间。这被定义为一个 map,其中 key 应该是 setting name,value 应该是 setting value。

org.apereo.cas.configuration.model.support.custom.CasCustomProperties.

如何配置此属性?

显示 1 到 1 的 1 个条目

上一页1下一页

1.1.7. 自动配置策略

请注意,在大多数情况下(如果不是全部),CAS 将尝试根据特定于功能的专用模块的声明和存在来自动配置上下文。这通常应该可以减轻部署者通过 XML 配置文件手动修改应用程序上下文的负担。

这个想法有两个方面:

通过在覆盖中声明相应的模块来声明您对给定 CAS 功能的意图。

(可选)配置相应的属性和设置。

CAS 将自动负责将适当的 bean 和其他组件注入到运行时应用程序上下文中,具体取决于模块的存在和/或部署程序配置的设置。

无 XML

同样,自动配置策略的全部意义在于确保部署人员不会在配置 bean 等 XML 文件的海洋中游泳。CAS 应该处理好这一切。如果您发现此声明不成立的实例,请将其视为 “错误” 并提交功能请求。

1.2. 配置管理

1.2.1. 概述

1.2.1.1. 配置服务器

当您的 CAS 部署通过部署管道从开发到测试再到生产时,您可以管理这些环境之间的配置,并确保应用程序在迁移时通过使用 Spring Cloud 项目提供的外部配置服务器运行所需的一切。作为替代方案,您可以决定以独立模式运行 CAS,而无需部署外部配置服务器,但代价是丢失与云部署相关的特性和功能。

1.2.1.2. 配置策略

CAS 服务器 Web 应用程序响应以下策略,这些策略指示应如何使用设置。

策略

描述

Standalone 独立

默认策略。

Spring Cloud

使用 Spring Cloud 配置服务器的外部化策略。

1.2.1.3. 配置安全性

要了解如何通过加密保护敏感 CAS 设置,请查看本指南。

1.2.1.4. 配置可重新加载性

要详细了解 CAS 如何允许您重新加载配置更改,请查看本指南。

1.2.1.5. 集群部署

CAS 使用 Spring Cloud Bus来管理分布式部署中的配置。Spring Cloud Bus 使用轻量级消息代理将分布式系统的节点链接起来。然后,这可以用于广播 statechanges (例如配置更改) 或其他 management 指令。

要了解如何通过加密保护敏感 CAS 设置,请查看本指南。

1.2.2. Standalone独立

1.2.2.1. 配置服务器 - 独立配置文件

这是默认配置模式,表示 CAS 不需要连接到外部配置服务器,并将在嵌入式独立模式下运行。当此选项打开时,默认情况下,CAS 将尝试在预定义的目录和文件中查找设置和属性,否则将回退到通常使用 /etc/cas/config 作为配置目录。

与 Spring Cloud 外部配置服务器类似,此目录的内容包括 (cas|application).(yml|properties)文件。另请注意,CAS 可以监视此配置目录,以根据需要自动获取更改并刷新应用程序上下文。请查看本指南以了解更多信息。

请注意,默认情况下,所有 CAS 设置和配置都通过 CAS serverweb 应用程序中嵌入的 application.properties 文件进行控制。还有一个嵌入式 application.yml 文件,如果您希望在主 CAS Web 应用程序中提供配置并且不依赖外部化的配置文件,则允许您覆盖所有默认值。如果您更喜欢 properties 而不是 yaml,那么
application-standalone.properties 也将覆盖 application.properties。

在外部配置文件中找到的设置现在和将来都可以覆盖 CAS 提供的默认值。CAS 配置目录中的配置文件的命名遵循以下模式:

l application.(properties|yml|yaml) 文件。

l 位于 properties|yml|yaml 文件中的设置,如果名称与 spring.application.name 的值匹配,则会加载(即 cas.properties)注意:spring.application.name 默认为大写 CAS,但也将加载小写名称。

l 加载位于 properties|yml|yaml 文件中的设置,其名称与 spring.profiles.active 的值匹配(即 ldap.properties)。

l 打包的 Web 应用程序之外特定于配置文件的应用程序属性(application-{profile}.properties|yml|yaml)这允许您根据需要将设置拆分为多个属性文件,然后通过将它们的名称分配给活动配置文件列表(即spring.profiles.active=standalone,testldap,stagingMfa)来定位它们

配置文件按以下 Sequences 加载,其中spring.profiles.active=standalone,profile1,profile2。请注意,最后加载的配置文件将覆盖之前加载的配置文件中的任何重复属性:

1. application.(properties|yml|yaml)

2. (小写)spring.application.name.(properties|yml|yaml)

3. spring.application.name.(properties|yml|yaml)

4. application-standalone.(properties|yml|yaml)

5. standalone.(properties|yml|yaml)

6. application-profile1.(properties|yml|yaml)

7. profile1.(properties|yml|yaml)

8. application-profile2.(properties|yml|yaml)

9. profile2.(properties|yml|yaml)

如果存在两个具有相同基本名称和不同扩展名的配置文件,则是按 properties、yml、yaml ,然后groovy的顺序处理(最后一个处理的配置文件在存在重复属性的情况下获胜)。这些外部配置文件将覆盖位于 Classpath 中的文件(例如,来自 CAS 覆盖中 src/main/resources 的文件,最终位于 WEB-INF/classes),但内部文件是根据 Spring Boot 规则加载的,这与此处描述的 CAS 独立配置规则不同(例如,.properties不会从 Classpath 加载,但 application-.properties 会)。

1.2.2.2. Sources 来源

默认情况下,CAS 将尝试使用以下方法查找设置和属性:

/etc/cas/config

/opt/cas/config

/var/cas/config

CAS 还可以加载 Groovy 文件以进行加载设置。该文件应该在上面的匹配目录中找到,并且应该命名为 ${cas-application-name}.groovy,例如 cas.groovy。该脚本能够将活动配置文件的条件设置和适用于所有环境和配置文件的通用设置合并到一个位置,其结构类似于以下示例:

1

2

3

4

5

6

7

8

9

// Settings may be filtered by individual profilesprofiles {

standalone {

cas.some.setting="value"

}}

// This applies to all profiles and environmentscas.common.setting="value"

要准备 CAS 以支持 Apache Groovy 并与之集成,请查看本指南。

您还可以使用专用配置文件以文件或 Classpath 资源的形式直接将 properties 集合提供给 CAS。如果在云中部署了裸 CAS 服务器,而没有配置服务器或外部目录的额外仪式,并且部署者希望避免覆盖嵌入式配置文件,则这特别有用。

CAS 配置目录中提供了以下设置和属性:


自选


笔记

下面列出的配置设置在 CAS 配置元数据中标记为 Optional(可选)。This标志表示在最终用户 CAS 配置中不需要立即存在该设置,因为分配了默认值,或者该功能的激活不受设置值有条件地控制。换句话说,仅当需要修改默认值或需要打开由设置控制的功能时,才应在配置中包含此字段。

Show entries

搜索:


· cas.standalone.configuration-directory=

描述可以找到 CAS 配置的目录路径。

org.apereo.cas.configuration.model.core.config.standalone.StandaloneConfigurationProperties.

如何配置此属性?

· cas.standalone.configuration-file=

描述一个文件路径,其中 CAS 属性包含在单个文件中。

org.apereo.cas.configuration.model.core.config.standalone.StandaloneConfigurationProperties.

如何配置此属性?

显示 1 到 2 的 2 个条目

上一页1下一页

1.2.2.3. 处理覆盖

记得

建议您不要覆盖或以其他方式修改内置的 application.properties 或 bootstrap.properties 文件。这只会使您的部署复杂化和削弱您的部署。相反,尝试遵守 CAS 默认值并通过默认值尽可能多地引导 CAS,通过 application.yml、
application-standalone.properties 覆盖或使用概述的策略。同样,尝试指示 CAS 查找其自身外部的配置文件。过早的优化只会导致混乱。

CAS 配置目录中提供了以下设置和属性:

第三方

笔记

下面列出的配置设置在 CAS 配置元数据中标记为 Third Party(第三方)。此标志表示配置设置不受 CAS 生态系统的控制、拥有或管理,并且会影响第三方库(如 Spring Boot 或 Spring Cloud to CAS)提供的功能。有关更多信息,您可能必须访问第三方来源以查找更多详细信息。

Show entries

搜索:


· spring.cloud.config.allow-override=true

指示可以使用 #
isOverrideSystemProperties() systemPropertiesOverride 的标志。设置为 false 可防止用户意外更改默认值。默认为 true。

org.springframework.cloud.bootstrap.config.PropertySourceBootstrapProperties.

如何配置此属性?

· spring.cloud.config.charset=UTF-8

用于从配置服务器读取资源的 charset。

org.springframework.cloud.config.client.ConfigClientProperties.

如何配置此属性?

· spring.cloud.config.discovery.enabled=false

指示已启用配置服务器发现的标志(将通过发现查找配置服务器 URL)。

org.springframework.cloud.config.client.ConfigClientProperties$Discovery.

如何配置此属性?

· spring.cloud.config.discovery.service-id=configserver

Service ID 用于查找 config server。

org.springframework.cloud.config.client.ConfigClientProperties$Discovery.

如何配置此属性?

· spring.cloud.config.enabled=true

标志表示已启用远程配置。默认为 true;

org.springframework.cloud.config.client.ConfigClientProperties.

如何配置此属性?

显示 1 到 5 的 186 个条目

上一页12345...38下一页

1.2.3. Spring Cloud

1.2.3.1. 概述

1.2.3.1.1. 配置服务器 - Spring Cloud

CAS 能够使用外部和中央配置服务器来获取状态和设置。配置服务器为 CAS(及其所有其他客户端)提供了一种非常抽象的方法,可以从各种来源获取设置,例如文件系统、git 或 svn 存储库、MongoDb 数据库、Vault 等。此解决方案的美妙之处在于,对于 CAS Web 应用程序服务器来说,设置来自何处并不重要,并且它不知道底层属性源。它与配置服务器通信以查找设置并继续。

配置安全性

这是一个非常好的策略,可以确保配置设置不会分散在各种部署环境中,从而实现更安全的部署。配置服务器不需要暴露在外界,它可以安全地隐藏在防火墙等后面,仅允许访问授权的客户端,例如 CAS 服务器 Web 应用程序。

Spring Cloud 项目提供了完整的综合指南。

1.2.3.1.2. Spring Cloud 配置服务器覆盖

配置服务器本身与 CAS 类似,可以使用 CAS Initializr 进行部署。

Apache Maven

Gradle

BOM - Spring

BOM - Gradle

资源

1

2

3

4

5

6

7

8

9

10

dependencies {

/*

The following platform references should be included automatically and are listed here for reference only.


implementation enforcedPlatform("org.apereo.cas:cas-server-support-bom:${project.'cas.version'}")

implementation platform(org.springframework.boot.gradle.plugin.SpringBootPlugin.BOM_COORDINATES)


*/

implementation "org.apereo.cas:cas-server-webapp-config-server"}

除了此处概述的策略之外,配置服务器还可以通过以下顺序和机制加载 CAS 设置和属性:

1. 打包的 Web 应用程序之外的特定于配置文件的应用程序属性 (application-{profile}.properties|yml)

2. 打包在 jar 中的特定于配置文件的应用程序属性 (application-{profile}.properties|yml)

3. 打包的 jar 之外的应用程序属性 (application.properties|yml)。

4. 打包在 jar 中的应用程序属性 (application.properties|yml)。

配置服务器的配置和行为也由其自己的
src/main/resources/bootstrap.properties 文件控制。默认情况下,它在嵌入式 Apache Tomcat 服务器内 /casconfigserver 的端口 8888 下运行,该服务器的端点受到基本身份验证的保护,其中默认凭据是 casuser 和在
src/main/resources/application.properties 中定义的自动生成的密码。

此外,默认情况下,它在如下所述的native配置文件下运行。

以下终结点由配置服务器保护和公开:

参数

描述

/encrypt

接受 POST 以加密 CAS 配置设置。

/decrypt

接受 POST 以解密 CAS 配置设置。

/actuator/refresh

接受 POST 并尝试刷新配置服务器的内部状态。

/actuator/env

接受 GET 并描述配置服务器的所有配置源。

/actuator/cas/default

描述配置服务器对default配置文件的了解。

/actuator/cas/native

描述配置服务器对native设置配置文件的了解。

部署配置服务器并假设用于保护配置服务器的凭据与以下示例匹配后,可以通过以下方式观察设置集合:

1

curl -u casuser:Mellon https://config.server.url:8888/casconfigserver/cas/native

假设在配置中启用了 actuator endpoints ,你还可以观察为 configurationserver 提供设置的属性源的集合:

1

curl -u casuser:Mellon https://config.server.url:8888/casconfigserver/actuator/env

执行器端点

请记住,执行器端点通常以 /actuator 为前缀。

1.2.3.1.3. 执行器端点

CAS 提供以下端点:

GET

/cas/actuator/health

报告由各种监视器生成的系统的一般运行状况。

GET

/cas/actuator/health/{path}


CAS 配置目录中提供了以下设置和属性:


第三方

笔记

下面列出的配置设置在 CAS 配置元数据中标记为 Third Party(第三方)。此标志表示配置设置不受 CAS 生态系统的控制、拥有或管理,并且会影响第三方库(如 Spring Boot 或 Spring Cloud to CAS)提供的功能。有关更多信息,您可能必须访问第三方来源以查找更多详细信息。

Show entries

搜索:


· spring.cloud.config.server.health.down-health-status=

org.springframework.cloud.config.server.config.ConfigServerHealthIndicator.

如何配置此属性?

· spring.cloud.config.server.health.repositories=

org.springframework.cloud.config.server.config.ConfigServerHealthIndicator.

如何配置此属性?

显示 1 到 2 的 2 个条目

上一页1下一页

1.2.3.1.4. Spring Cloud 配置服务器客户端

要让 CAS 服务器 Web 应用程序(或任何其他客户端)与配置服务器通信,需要将以下设置应用于 CAS 自己的
src/main/resources/bootstrap.properties 文件。在引导阶段,在从配置服务器读取应用程序的其余部分配置之前,必须先读入将 CAS 服务器 Web 应用程序配置为配置服务器客户端的属性。

CAS 配置目录中提供了以下设置和属性:

第三方

笔记

下面列出的配置设置在 CAS 配置元数据中标记为 Third Party(第三方)。此标志表示配置设置不受 CAS 生态系统的控制、拥有或管理,并且会影响第三方库(如 Spring Boot 或 Spring Cloud to CAS)提供的功能。有关更多信息,您可能必须访问第三方来源以查找更多详细信息。

Show entries

搜索:


· spring.cloud.config.allow-override=true

指示可以使用 #
isOverrideSystemProperties() systemPropertiesOverride 的标志。设置为 false 可防止用户意外更改默认值。默认为 true。

org.springframework.cloud.bootstrap.config.PropertySourceBootstrapProperties.

如何配置此属性?

· spring.cloud.config.charset=UTF-8

用于从配置服务器读取资源的 charset。

org.springframework.cloud.config.client.ConfigClientProperties.

如何配置此属性?

· spring.cloud.config.discovery.enabled=false

指示已启用配置服务器发现的标志(将通过发现查找配置服务器 URL)。

org.springframework.cloud.config.client.ConfigClientProperties$Discovery.

如何配置此属性?

· spring.cloud.config.discovery.service-id=configserver

Service ID 用于查找 config server。

org.springframework.cloud.config.client.ConfigClientProperties$Discovery.

如何配置此属性?

· spring.cloud.config.enabled=true

标志表示已启用远程配置。默认为 true;

org.springframework.cloud.config.client.ConfigClientProperties.


显示 1 到 5 的 186 个条目

上一页12345...38下一页


1

2

3

"name" = ${spring.application.name}"profile" = ${spring.profiles.active}"label" = "master"

所有这些都可以通过设置spring.cloud.config.*(其中*是name、profile或label)来覆盖。“label” 可用于回滚到以前版本的配置;使用默认的 Config Server 实现,它可以是 git 标签、分支名称或提交 ID。Label 也可以作为逗号分隔的列表提供,在这种情况下,列表中的项目将逐个尝试,直到一个项目成功。这在功能分支上工作时非常有用,例如,当您可能希望将配置标签与分支对齐,但使其成为可选(例如spring.cloud.config.label=myfeature,develop)时。

要详细了解 CAS 如何允许您重新加载配置更改,请查看本指南。

Spring Cloud 配置服务器源

存在各种配置文件来确定 Configuration Server 应如何检索属性和设置。

l Default

l Native

l REST

l 亚马逊 S3

l Amazon Secret Manager

l Amazon SSM

l Azure 密钥保管库

l DynamoDb

l HashiCorp 领事

l HashiCorp 保险库

l JDBC

l MongoDb 数据库

l ZooKeeper

l GCP 密钥管理器

上面提供的云配置模块也可以在 CAS 服务器覆盖中逐字使用。请记住,这些模块的主要目标是从源中检索设置和属性。虽然它们在 Spring Cloud Configuration 服务器中激活时主要有用,并且可以设置为遵循配置文件等,但它们也可以在 CAS 服务器覆盖中直接使用,以便在独立模式下运行时从源获取设置。在这种情况下,所有配置源(无论格式或语法如何)都将彼此协同工作以检索设置,您当然可以根据需要混合和匹配。

1.2.3.1.4.1. Spring Cloud Configuration Server 复合源

在某些情况下,您可能希望从多个环境存储库中提取配置数据。为此,只需在 configurationserver 的应用程序属性或 YAML 文件中启用多个配置文件。例如,如果您想从 Git 存储库和 SVN 存储库中提取配置数据,则需要为配置服务器设置以下属性。

1

2

3

4

5

6

7

8

9

10

11

12

spring:

profiles:

active: git, svn

cloud:

config:

server:

svn:

uri: file:///path/to/svn/repo

order: 2

git:

uri: file:///path/to/git/repo

order: 1

除了指定 URI 的每个存储库之外,您还可以指定 order 属性。order 属性允许您指定所有存储库的优先级顺序。order 属性的数值越低,它的优先级就越高。存储库的优先级顺序将有助于解决包含相同属性值的存储库之间的任何潜在冲突。

1.2.3.1.4.2. Spring Cloud 配置服务器属性覆盖

配置服务器具有 “overrides” 功能,允许操作员向所有应用程序提供配置属性,这些属性不能被应用程序使用正常的更改事件和钩子意外更改。要声明覆盖,请将名称-值对的 Map 添加到
spring.cloud.config.server.overrides中。

例如:

1

2

3

4

5

6

spring:

cloud:

config:

server:

overrides:

foo: bar

这将导致 CAS 服务器(作为配置服务器的客户端)独立于其自己的配置读取 foo=bar。

1.2.3.2. 默认

1.2.3.2.1. Spring Cloud 配置服务器 - Spring Cloud 默认

Spring Cloud 配置服务器能够处理托管 CAS 配置的基于 git 或 svn 的存储库。此类存储库可以是部署的本地存储库,也可以是 GitHub/Bitbucket 形式的云上。访问基于云的存储库可以采用用户名/密码的形式,也可以通过 SSH 访问,因此只要在 CAS 部署环境中配置了适当的密钥,这与通常通过 SSH 访问 git 存储库的方式实际上没有什么不同。

CAS 配置目录中提供了以下设置和属性:

第三方

笔记

下面列出的配置设置在 CAS 配置元数据中标记为 Third Party(第三方)。此标志表示配置设置不受 CAS 生态系统的控制、拥有或管理,并且会影响第三方库(如 Spring Boot 或 Spring Cloud to CAS)提供的功能。有关更多信息,您可能必须访问第三方来源以查找更多详细信息。

Show entries

搜索:


· spring.cloud.config.server.git.basedir=

存储库的本地工作副本的基目录。

org.springframework.cloud.config.server.environment.MultipleJGitEnvironmentProperties.

如何配置此属性?

· spring.cloud.config.server.git.clone-on-start=false

指示应在启动时(而不是按需)克隆存储库的标志。通常会导致启动速度较慢,但首次查询速度较快。

org.springframework.cloud.config.server.environment.MultipleJGitEnvironmentProperties.

如何配置此属性?

· spring.cloud.config.server.git.clone-submodules=false

指示应克隆存储库中的子模块的标志。

org.springframework.cloud.config.server.environment.MultipleJGitEnvironmentProperties.

如何配置此属性?

· spring.cloud.config.server.git.default-label=

用于远程存储库的默认标签。

org.springframework.cloud.config.server.environment.MultipleJGitEnvironmentProperties.

如何配置此属性?

· spring.cloud.config.server.git.delete-untracked-branches=false

标志,指示如果删除了分支的源跟踪分支,则应在本地删除该分支。

org.springframework.cloud.config.server.environment.MultipleJGitEnvironmentProperties.

如何配置此属性?

显示 1 到 5 的 34 个条目

上一页1234567下一页

用法

此处提供的配置模块也可以在 CAS 服务器覆盖中逐字使用,并且不完全属于 Spring Cloud 配置服务器。虽然此模块主要在 Spring Cloud Configuration 服务器内部有用,但它也可以在 CAS 服务器覆盖中直接用于从源获取设置。

不用说,存储库可以使用 YAML 和 properties 语法来托管配置文件。默认配置文件是使用spring.profiles.active=default激活的。

保留您需要的!

同样,在上述所有策略中,鼓励采用者仅保留和维护其特定部署所需的属性。无需获取所有 CAS 设置的副本并将其移动到外部位置。由外部配置位置或存储库定义的设置能够覆盖 CAS作为默认值提供的内容。

从外部 properties/yaml 配置文件加载设置。

CAS 配置目录中提供了以下设置和属性:

第三方

笔记

下面列出的配置设置在 CAS 配置元数据中标记为 Third Party(第三方)。此标志表示配置设置不受 CAS 生态系统的控制、拥有或管理,并且会影响第三方库(如 Spring Boot 或 Spring Cloud to CAS)提供的功能。有关更多信息,您可能必须访问第三方来源以查找更多详细信息。

Show entries

搜索:


· spring.cloud.config.server.default-application-name=application

当传入请求没有特定应用程序名称时的默认应用程序名称。

org.springframework.cloud.config.server.config.ConfigServerProperties.

如何配置此属性?

· spring.cloud.config.server.default-label=

传入请求没有特定标签时的默认存储库标签。

org.springframework.cloud.config.server.config.ConfigServerProperties.

如何配置此属性?

· spring.cloud.config.server.default-profile=default

Default application profile(当传入请求没有特定的配置文件时)。

org.springframework.cloud.config.server.config.ConfigServerProperties.

如何配置此属性?

· spring.profiles.active=

以逗号分隔的活动配置文件列表。可由命令行开关覆盖。

org.springframework.boot.context.config.Profiles.

如何配置此属性?

显示 1 到 4 的 4 个条目

上一页1下一页

1.2.3.2.2. Git 存储库

允许 CAS Spring Cloud 配置服务器从内部/外部 Git 存储库加载设置。然后,这允许 CAS 成为配置服务器的客户端,在需要时通过 HTTP 使用设置。

CAS 配置目录中提供了以下设置和属性:

第三方

笔记

下面列出的配置设置在 CAS 配置元数据中标记为 Third Party(第三方)。此标志表示配置设置不受 CAS 生态系统的控制、拥有或管理,并且会影响第三方库(如 Spring Boot 或 Spring Cloud to CAS)提供的功能。有关更多信息,您可能必须访问第三方来源以查找更多详细信息。

Show entries

搜索:


· spring.cloud.config.server.git.basedir=

存储库的本地工作副本的基目录。

org.springframework.cloud.config.server.environment.MultipleJGitEnvironmentProperties.

如何配置此属性?

· spring.cloud.config.server.git.clone-on-start=false

指示应在启动时(而不是按需)克隆存储库的标志。通常会导致启动速度较慢,但首次查询速度较快。

org.springframework.cloud.config.server.environment.MultipleJGitEnvironmentProperties.

如何配置此属性?

· spring.cloud.config.server.git.clone-submodules=false

指示应克隆存储库中的子模块的标志。

org.springframework.cloud.config.server.environment.MultipleJGitEnvironmentProperties.

如何配置此属性?

· spring.cloud.config.server.git.default-label=

用于远程存储库的默认标签。

org.springframework.cloud.config.server.environment.MultipleJGitEnvironmentProperties.

如何配置此属性?

· spring.cloud.config.server.git.delete-untracked-branches=false

标志,指示如果删除了分支的源跟踪分支,则应在本地删除该分支。

org.springframework.cloud.config.server.environment.MultipleJGitEnvironmentProperties.

如何配置此属性?

显示 1 到 5 的 26 个条目

上一页1234 56下一页


上述配置也适用于基于 git 的在线存储库,例如 GitHub、Bitbucket 等。

1.2.3.3. Native

1.2.3.3.1. Spring Cloud 配置服务器 - Spring Cloud Native

1.2.3.4. JDBC

Spring Cloud Configuration Server 默认配置为加载 cas.(properties|yml) /etc/cas/config服务器会持续监控此位置以检测外部更改。请注意,此位置需要存在,并且不需要任何特殊权限或结构。此目录中的配置文件名称需要与 spring.application.name 匹配(即 cas.properties)。

CAS 配置目录中提供了以下设置和属性:

第三方

笔记

下面列出的配置设置在 CAS 配置元数据中标记为 Third Party(第三方)。此标志表示配置设置不受 CAS 生态系统的控制、拥有或管理,并且会影响第三方库(如 Spring Boot 或 Spring Cloud to CAS)提供的功能。有关更多信息,您可能必须访问第三方来源以查找更多详细信息。

Show entries

搜索:


· spring.cloud.config.server.native.add-label-locations=true

用于确定是否应添加标签位置的标志。

org.springframework.cloud.config.server.environment.NativeEnvironmentProperties.

如何配置此属性?

· spring.cloud.config.server.native.default-label=master

org.springframework.cloud.config.server.environment.NativeEnvironmentProperties.

如何配置此属性?

· spring.cloud.config.server.native.fail-on-error=false

用于确定解密期间如何处理异常的标志(默认为 false)。

org.springframework.cloud.config.server.environment.NativeEnvironmentProperties.

如何配置此属性?

· spring.cloud.config.server.native.order=

org.springframework.cloud.config.server.environment.NativeEnvironmentProperties.

如何配置此属性?

· spring.cloud.config.server.native.search-locations=

用于搜索配置文件的位置。默认与 Spring Boot 应用程序相同,因此 [classpath:/,classpath:/config/,file:./config/,file:./config/]。

org.springframework.cloud.config.server.environment.NativeEnvironmentProperties.

如何配置此属性?

显示 1 到 5 的 6 个条目

上一页12下一页


如果您想使用其他配置文件,它们需要具有 application-.(properties|yml) 中。名为 application.(properties|yml) 将默认包含在内。可以使用 spring.profiles.include 配置选项激活特定于配置文件的文件,该选项通过
src/main/resources/bootstrap.properties 文件进行控制:

1

2

3

spring.profiles.active=nativespring.cloud.config.server.native.search-locations=file:///etc/cas/configspring.profiles.include=profile1,profile2

由外部位置托管的外部 .properties 文件的示例如下:

1

cas.server.name=...

您也可以使用 cas.yml 文件来托管更改。请注意,默认配置文件是使用spring.profiles.active=native激活的。

1.2.3.4.1. Spring Cloud 配置服务器 - Spring Cloud JDBC

Spring Cloud Configuration Server 能够使用关系数据库来查找属性和设置。

通过 WAR 覆盖中的以下依赖项提供支持:

Apache Maven

Gradle

BOM - Spring

BOM - Gradle

资源

1

2

3

4

5

6

7

8

9

10

dependencies {

/*

The following platform references should be included automatically and are listed here for reference only.


implementation enforcedPlatform("org.apereo.cas:cas-server-support-bom:${project.'cas.version'}")

implementation platform(org.springframework.boot.gradle.plugin.SpringBootPlugin.BOM_COORDINATES)


*/

implementation "org.apereo.cas:cas-server-support-configuration-cloud-jdbc"}

用法

此处提供的配置模块也可以在 CAS 服务器覆盖中逐字使用,并且不完全属于 Spring Cloud 配置服务器。虽然此模块主要在 Spring Cloud Configuration 服务器内部有用,但它也可以在 CAS 服务器覆盖中直接用于从源获取设置。

默认情况下,设置应在包含字段 id 、 name 和 value 的 CAS_SETTINGS_TABLE下找到。

CAS 配置目录中提供了以下设置和属性:


自选


Hibernate 和 JDBC


笔记

下面列出的配置设置在 CAS 配置元数据中标记为 Optional(可选)。This标志表示在最终用户 CAS 配置中不需要立即存在该设置,因为分配了默认值,或者该功能的激活不受设置值有条件地控制。换句话说,仅当需要修改默认值或需要打开由设置控制的功能时,才应在配置中包含此字段。

Show entries

搜索:


· cas.spring.cloud.jdbc.driver-class=

驱动程序类名称。

org.apereo.cas.configuration.model.core.config.cloud.SpringCloudConfigurationProperties.Jdbc.

如何配置此属性?

· cas.spring.cloud.jdbc.password=

数据库密码。

org.apereo.cas.configuration.model.core.config.cloud.SpringCloudConfigurationProperties.Jdbc.

如何配置此属性?

· cas.spring.cloud.jdbc.sql=

SQL 语句。

org.apereo.cas.configuration.model.core.config.cloud.SpringCloudConfigurationProperties.Jdbc.

如何配置此属性?

· cas.spring.cloud.jdbc.url=

数据库 url。

org.apereo.cas.configuration.model.core.config.cloud.SpringCloudConfigurationProperties.Jdbc.

如何配置此属性?

· cas.spring.cloud.jdbc.user=

数据库用户。

org.apereo.cas.configuration.model.core.config.cloud.SpringCloudConfigurationProperties.Jdbc.

如何配置此属性?

显示 1 到 5 个条目中的 5 个

上一页1下一页

1.2.3.5. REST

1.2.3.5.1. Spring Cloud 配置服务器 - Spring Cloud REST

Spring Cloud Configuration Server 能够使用 REST API 查找属性和设置。

通过 WAR 覆盖中的以下依赖项提供支持:

Apache Maven

Gradle

BOM - Spring

BOM - Gradle

资源

1

2

3

4

5

6

7

8

9

10

dependencies {

/*

The following platform references should be included automatically and are listed here for reference only.


implementation enforcedPlatform("org.apereo.cas:cas-server-support-bom:${project.'cas.version'}")

implementation platform(org.springframework.boot.gradle.plugin.SpringBootPlugin.BOM_COORDINATES)


*/

implementation "org.apereo.cas:cas-server-support-configuration-cloud-rest"}

用法

此处提供的配置模块也可以在 CAS 服务器覆盖中逐字使用,并且不完全属于 Spring Cloud 配置服务器。虽然此模块主要在 Spring Cloud Configuration 服务器内部有用,但它也可以在 CAS 服务器覆盖中直接用于从源获取设置。

REST 端点应在有效负载中生成一个 Map,其中 keys 作为设置名称,values 作为设置值。

CAS 配置目录中提供了以下设置和属性:

必填

自选

笔记

下面列出的配置设置在 CAS 配置元数据中标记为 Required。此标志表示可能需要该设置的存在才能激活或影响 CAS 功能的行为,并且通常应进行审查、可能拥有和调整。如果为该设置分配了默认值,则无需严格将该设置放在配置副本中,但仍应对其进行检查以确保它符合您的部署预期。

Show entries

搜索:


· cas.spring.cloud.rest.url=

用于联系和检索属性的终端节点 URL。

此设置支持 Spring 表达式语言。

org.apereo.cas.configuration.model.core.config.cloud.SpringCloudConfigurationProperties.Rest.

如何配置此属性?

显示 1 到 1 的 1 个条目

上一页1下一页

1.2.3.6. Apache ZooKeeper

1.2.3.6.1. Spring Cloud 配置服务器 - Spring Cloud Apache ZooKeeper

Spring Cloud Configuration Server 能够使用 Apache ZooKeeper 来查找属性和设置。

通过 WAR 覆盖中的以下依赖项提供支持:

Apache Maven

Gradle

BOM - Spring

BOM - Gradle

资源

1

2

3

4

5

6

7

8

9

10

dependencies {

/*

The following platform references should be included automatically and are listed here for reference only.


implementation enforcedPlatform("org.apereo.cas:cas-server-support-bom:${project.'cas.version'}")

implementation platform(org.springframework.boot.gradle.plugin.SpringBootPlugin.BOM_COORDINATES)


*/

implementation "org.apereo.cas:cas-server-support-configuration-cloud-zookeeper"}

用法

此处提供的配置模块也可以在 CAS 服务器覆盖中逐字使用,并且不完全属于 Spring Cloud 配置服务器。虽然此模块主要在 Spring Cloud Configuration 服务器内部有用,但它也可以在 CAS 服务器覆盖中直接用于从源获取设置。

您需要将 CAS 设置映射到包含值的 ZooKeeper 节点。所有设置的父节点都应与提供给 CAS 的配置根值匹配。在根目录下,您可以拥有cas、cas,dev、cas,local 等文件夹,其中 dev 和 local 是 Spring 配置文件。

要在 Apache ZooKeeper 中创建节点和值,请尝试以下命令作为示例:

1

2

3

4

5

zookeeper-client -server zookeeper1:2181

create /cas cas

create /cas/config cas

create /cas/config/cas cas

create /cas/config/cas/settingName casuser::Test

在 Apache ZooKeeper 中创建节点和目录可能需要提供一个值。上面的示例命令显示,在创建目录时提供了值 cas。请始终查阅 Apache ZooKeeper 官方指南。您可能不需要执行该步骤。

最后,在 CAS 属性中,新的 settingName 设置可以用作参考。

1

# cas.something.something=${settingName}

…其中 ${settingName} 获取 Apache ZooKeeper 节点
cas/config/cas/settingName 的内容值。

CAS 配置目录中提供了以下设置和属性:

第三方

笔记

下面列出的配置设置在 CAS 配置元数据中标记为 Third Party(第三方)。此标志表示配置设置不受 CAS 生态系统的控制、拥有或管理,并且会影响第三方库(如 Spring Boot 或 Spring Cloud to CAS)提供的功能。有关更多信息,您可能必须访问第三方来源以查找更多详细信息。

Show entries

搜索:


· spring.cloud.zookeeper.base-sleep-time-ms=50

重试之间等待的初始时间。

org.springframework.cloud.zookeeper.ZookeeperProperties.

如何配置此属性?

· spring.cloud.zookeeper.block-until-connected-unit=seconds

与阻塞连接到 Zookeeper 相关的时间单位。

org.springframework.cloud.zookeeper.ZookeeperProperties.

如何配置此属性?

· spring.cloud.zookeeper.block-until-connected-wait=10

等待时间以阻止与 Zookeeper 的连接。

org.springframework.cloud.zookeeper.ZookeeperProperties.

如何配置此属性?

· spring.cloud.zookeeper.config.default-context=application

默认上下文的名称。

org.springframework.cloud.zookeeper.config.ZookeeperConfigProperties.

如何配置此属性?

· spring.cloud.zookeeper.config.enabled=true

org.springframework.cloud.zookeeper.config.ZookeeperConfigProperties.

如何配置此属性?

显示 1 到 5 个条目,共 30 个条目

上一页1234 56下一页

1.2.3.6.2. 执行器端点

CAS 提供以下端点:

GET

/cas/actuator/health

报告由各种监视器生成的系统的一般运行状况。

GET

/cas/actuator/health/{path}

1.2.3.7. GCP Secret Manager

1.2.3.7.1. Spring Cloud 配置服务器 - GCP Secret Manager

CAS 还能够使用 Google Cloud Secret Manager 来查找属性和设置。此功能通过 Spring Cloud GCP 交付给 CAS。

通过 WAR 覆盖中的以下依赖项提供支持:

Apache Maven

Gradle

BOM - Spring

BOM - Gradle

资源

1

2

3

4

5

6

7

8

9

10

dependencies {

/*

The following platform references should be included automatically and are listed here for reference only.


implementation enforcedPlatform("org.apereo.cas:cas-server-support-bom:${project.'cas.version'}")

implementation platform(org.springframework.boot.gradle.plugin.SpringBootPlugin.BOM_COORDINATES)


*/

implementation "org.apereo.cas:cas-server-support-configuration-cloud-gcp-secretsmanager"}

用法

此处提供的配置模块也可以在 CAS 服务器覆盖中逐字使用,并且不完全属于 Spring Cloud 配置服务器。虽然此模块主要在 Spring Cloud Configuration 服务器内部有用,但它也可以在 CAS 服务器覆盖中直接用于从源获取设置。

CAS 配置目录中提供了以下设置和属性:

第三方

笔记

下面列出的配置设置在 CAS 配置元数据中标记为 Third Party(第三方)。此标志表示配置设置不受 CAS 生态系统的控制、拥有或管理,并且会影响第三方库(如 Spring Boot 或 Spring Cloud to CAS)提供的功能。有关更多信息,您可能必须访问第三方来源以查找更多详细信息。

Show entries

搜索:


· spring.cloud.gcp.secretmanager.allow-default-secret=false

当设置为 false 时,密钥管理器将引发
com.google.api.gax.rpc.NotFoundException。

com.google.cloud.spring.autoconfigure.secretmanager.GcpSecretManagerProperties.

如何配置此属性?

· spring.cloud.gcp.secretmanager.credentials.default-scopes=

com.google.cloud.spring.core.Credentials.

如何配置此属性?

· spring.cloud.gcp.secretmanager.enabled=true

自动配置 GCP Secret Manager 支持组件。

如何配置此属性?

· spring.cloud.gcp.secretmanager.project-id=

覆盖 Core 模块中指定的 GCP 项目 ID。

com.google.cloud.spring.autoconfigure.secretmanager.GcpSecretManagerProperties.

如何配置此属性?

显示 1 到 4 的 4 个条目

上一页1下一页

1.2.3.7.2. Secret Manager Config 数据资源

此处介绍的功能使您能够将 Secret Manager 用作外部配置数据资源,这意味着它允许您使用 Spring Boot 的 Config Data API 将 Google Cloud Secret Manager 中的密钥作为属性指定和加载到应用程序上下文中。

Secret Manager 配置数据资源使用以下语法来指定密钥:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

# 1. Long form - specify the project ID, secret ID, and versionsm://projects//secrets//versions/}

# 2. Long form - specify project ID, secret ID, and use latest versionsm://projects//secrets/

# 3. Short form - specify project ID, secret ID, and versionsm:////

# 4. Short form - default project; specify secret + version

#

# The project is inferred from the spring.cloud.gcp.secretmanager.project-id setting

# in your bootstrap.properties (see Configuration) or from application-default credentials if

# this is not set.sm:///

# 5. Shortest form - specify secret ID, use default project and latest version.sm://

您可以在 CAS 配置中使用以下语法:

1

2

3

4

5

# This may be optional

# spring.config.import=sm://# Example of the project-secret long-form syntax.cas.some.property=${sm://projects//secrets/cas_some_property}

1.2.3.8. Amazon S3

1.2.3.8.1. Spring Cloud 配置服务器 - Spring Cloud Amazon S3

Spring Cloud Configuration Server 能够使用 Amazon S3 来查找属性和设置。

通过 WAR 覆盖中的以下依赖项提供支持:

Apache Maven

Gradle

BOM - Spring

BOM - Gradle

资源

1

2

3

4

5

6

7

8

9

10

dependencies {

/*

The following platform references should be included automatically and are listed here for reference only.


implementation enforcedPlatform("org.apereo.cas:cas-server-support-bom:${project.'cas.version'}")

implementation platform(org.springframework.boot.gradle.plugin.SpringBootPlugin.BOM_COORDINATES)


*/

implementation "org.apereo.cas:cas-server-support-configuration-cloud-aws-s3"}

用法

此处提供的配置模块也可以在 CAS 服务器覆盖中逐字使用,并且不完全属于 Spring Cloud 配置服务器。虽然此模块主要在 Spring Cloud Configuration 服务器内部有用,但它也可以在 CAS 服务器覆盖中直接用于从源获取设置。

CAS 配置目录中提供了以下设置和属性:

必填

自选

笔记

下面列出的配置设置在 CAS 配置元数据中标记为 Required。此标志表示可能需要该设置的存在才能激活或影响 CAS 功能的行为,并且通常应进行审查、可能拥有和调整。如果为该设置分配了默认值,则无需严格将该设置放在配置副本中,但仍应对其进行检查以确保它符合您的部署预期。

Show entries

搜索:


· cas.spring.cloud.aws.s3.credential-access-key=

使用 AWS 提供的访问密钥进行身份验证。

此设置支持 Spring 表达式语言。

org.apereo.cas.configuration.model.core.config.cloud.SpringCloudConfigurationProperties.AmazonS3.

如何配置此属性?

· cas.spring.cloud.aws.s3.credential-secret-key=

使用 AWS 提供的密钥进行身份验证。

此设置支持 Spring 表达式语言。

org.apereo.cas.configuration.model.core.config.cloud.SpringCloudConfigurationProperties.AmazonS3.

如何配置此属性?

· cas.spring.cloud.aws.s3.endpoint=

AWS 自定义终端节点。

org.apereo.cas.configuration.model.core.config.cloud.SpringCloudConfigurationProperties.AmazonS3.

如何配置此属性?

· cas.spring.cloud.aws.s3.region=

使用的 AWS 区域。

org.apereo.cas.configuration.model.core.config.cloud.SpringCloudConfigurationProperties.AmazonS3.

如何配置此属性?

显示 1 到 4 的 4 个条目

上一页1下一页

1.2.3.9. Amazon Secret Manager

1.2.3.9.1. Spring Cloud 配置服务器 - Spring Cloud Amazon Secret Manager

Spring Cloud Configuration Server 能够使用 Amazon Secret Manager 来查找属性和设置。

通过 WAR 覆盖中的以下依赖项提供支持:

Apache Maven

Gradle

BOM - Spring

BOM - Gradle

资源

1

2

3

4

5

6

7

8

9

10

dependencies {

/*

The following platform references should be included automatically and are listed here for reference only.


implementation enforcedPlatform("org.apereo.cas:cas-server-support-bom:${project.'cas.version'}")

implementation platform(org.springframework.boot.gradle.plugin.SpringBootPlugin.BOM_COORDINATES)


*/

implementation "org.apereo.cas:cas-server-support-configuration-cloud-aws-secretsmanager"}

用法

此处提供的配置模块也可以在 CAS 服务器覆盖中逐字使用,并且不完全属于 Spring Cloud 配置服务器。虽然此模块主要在 Spring Cloud Configuration 服务器内部有用,但它也可以在 CAS 服务器覆盖中直接用于从源获取设置。

CAS 配置目录中提供了以下设置和属性:

必填

自选

笔记

下面列出的配置设置在 CAS 配置元数据中标记为 Required。此标志表示可能需要该设置的存在才能激活或影响 CAS 功能的行为,并且通常应进行审查、可能拥有和调整。如果为该设置分配了默认值,则无需严格将该设置放在配置副本中,但仍应对其进行检查以确保它符合您的部署预期。

Show entries

搜索:


· cas.spring.cloud.aws.secrets-manager.credential-access-key=

使用 AWS 提供的访问密钥进行身份验证。

此设置支持 Spring 表达式语言。

org.apereo.cas.configuration.model.core.config.cloud.SpringCloudConfigurationProperties.AmazonSecretsManager.

如何配置此属性?

· cas.spring.cloud.aws.secrets-manager.credential-secret-key=

使用 AWS 提供的密钥进行身份验证。

此设置支持 Spring 表达式语言。

org.apereo.cas.configuration.model.core.config.cloud.SpringCloudConfigurationProperties.AmazonSecretsManager.

如何配置此属性?

· cas.spring.cloud.aws.secrets-manager.endpoint=

AWS 自定义终端节点。

org.apereo.cas.configuration.model.core.config.cloud.SpringCloudConfigurationProperties.AmazonSecretsManager.

如何配置此属性?

· cas.spring.cloud.aws.secrets-manager.region=

使用的 AWS 区域。

org.apereo.cas.configuration.model.core.config.cloud.SpringCloudConfigurationProperties.AmazonSecretsManager.

如何配置此属性?

显示 1 到 4 的 4 个条目

上一页1下一页

......

点击这里复制本文地址 以上内容由nimo97整理呈现,请务必在转载分享时注明本文地址!如对内容有疑问,请联系我们,谢谢!
qrcode

尼墨宝库 © All Rights Reserved.  蜀ICP备2024111239号-7