2-Authentication Framework & Chain of Trust

本文深入探讨了可信固件-A (TF-A) 中的身份验证框架设计与实现,重点介绍了信任链的概念、图像类型及验证流程。此外,还提供了详细的实施示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

引流关键词: 中断、同步异常、异步异常、irq、fiq、BL1,BL2,BL3,BL31,BL32,BL33,AP_BL1,AP_BL2,AP_BL3,AP_BL31,AP_BL32,AP_BL33,SCP_BL1,SCP_BL2,BL0,BL30, optee、ATF、TF-A、Trustzone、optee3.14、MMU、VMSA、cache、TLB、arm、armv8、armv9、TEE、安全、内存管理、页表…

快速链接:
.
👉👉👉 个人博客笔记导读目录(全部) 👈👈👈


[专栏目录]-ATF/FF-A/specification学习

请添加图片描述

2.身份验证框架和信任链

本文档的目的是描述在可信固件-A (TF-A) 中实现的身份验证框架。该框架满足以下要求:

(1) 平台端口应该可以根据证书层次结构和用于验证特定图像/证书的机制来指定信任链。

(2) 该框架应区分:

  • 用于编码和传输信息的机制,例如 DER 编码的 X.509v3 证书以传送主题公钥、散列和非易失性计数器。

  • 用于验证传输信息的机制,即密码库。

该框架是按照下图所示的模块化方法设计的:

+---------------+---------------+------------+
| Trusted       | Trusted       | Trusted    |
| Firmware      | Firmware      | Firmware   |
| Generic       | IO Framework  | Platform   |
| Code i.e.     | (IO)          | Port       |
| BL1/BL2 (GEN) |               | (PP)       |
+---------------+---------------+------------+
       ^               ^               ^
       |               |               |
       v               v               v
 +-----------+   +-----------+   +-----------+
 |           |   |           |   | Image     |
 | Crypto    |   | Auth      |   | Parser    |
 | Module    |<->| Module    |<->| Module    |
 | (CM)      |   | (AM)      |   | (IPM)     |
 |           |   |           |   |           |
 +-----------+   +-----------+   +-----------+
       ^                               ^
       |                               |
       v                               v
+----------------+             +-----------------+
| Cryptographic  |             | Image Parser    |
| Libraries (CL) |             | Libraries (IPL) |
+----------------+             +-----------------+
              |                |
              |                |
              |                |
              v                v
             +-----------------+
             | Misc. Libs e.g. |
             | ASN.1 decoder   |
             |                 |
             +-----------------+

DIAGRAM 1.

本文档描述了身份验证框架的内部细节以及可用于指定信任链的抽象机制。

2.1。框架设计

本节描述了框架设计的某些方面及其背后的基本原理。这些方面是验证信任链的关键。

2.1.1。信任链

CoT 基本上是一系列身份验证图像,通常以信任根开始,最终形成单个数据图像。下图说明了它如何映射到 TBBR-Client 规范中描述的 BL31 映像的 CoT 。

+------------------+       +-------------------+
| ROTPK/ROTPK Hash |------>| Trusted Key       |
+------------------+       | Certificate       |
                           | (Auth Image)      |
                          /+-------------------+
                         /            |
                        /             |
                       /              |
                      /               |
                     L                v
+------------------+       +-------------------+
| Trusted World    |------>| BL31 Key          |
| Public Key       |       | Certificate       |
+------------------+       | (Auth Image)      |
                           +-------------------+
                          /           |
                         /            |
                        /             |
                       /              |
                      /               v
+------------------+ L     +-------------------+
| BL31 Content     |------>| BL31 Content      |
| Certificate PK   |       | Certificate       |
+------------------+       | (Auth Image)      |
                           +-------------------+
                          /           |
                         /            |
                        /             |
                       /              |
                      /               v
+------------------+ L     +-------------------+
| BL31 Hash        |------>| BL31 Image        |
|                  |       | (Data Image)      |
+------------------+       |                   |
                           +-------------------+

DIAGRAM 2.

信任根通常是已经在平台中烧毁且无法修改的公钥(ROTPK)。

2.1.2. 镜像类型

CoT 中的图像分为认证图像和数据图像。认证图像包含用于认证数据图像或另一个认证图像的信息。数据映像通常是引导加载程序二进制文件,但也可以是任何其他需要身份验证的数据。

2.1.3。组件职责

对于信任链中的每个图像,执行以下高级操作来验证它:

  • (1)静态或在运行时为图像分配内存。

  • (2)识别图像并将其加载到分配的内存中。

  • (3)根据图像类型检查图像的完整性。

  • (4)根据使用的加密算法对图像进行身份验证。

  • (5)如果图像是验证图像,则提取将用于验证 CoT 中的下一个图像的信息。

在图 1 中,每个组件负责一个或多个这些操作。下面简要介绍一下职责。

2.1.3.1。TF-A 通用代码和 IO 框架(GEN/IO)

这些组件负责为 BL1 或 BL2 中的特定图像启动身份验证过程。对于每个需要身份验证的 BL 图像,通用代码会递归地询问身份验证模块父图像是什么,直到达到经过身份验证的图像或 ROT。然后Generic代码调用IO框架加载镜像并调用Authentication模块对其进行认证,跟随CoT从ROT到Image。

2.1.3.2。TF-A 平台端口 (PP)

该平台负责:

  • (1)为需要验证的每个图像指定 CoT。稍后将解释平台如何指定 CoT 的详细信息。该平台还指定了用于每个图像的身份验证方法和解析方法。

  • (2)为每个图像中的每个参数静态分配内存,用于验证 CoT,例如用于公钥、哈希等的内存。

  • (3)提供 ROTPK 或它的散列。

  • (4)向 IPM 提供附加信息以使其能够识别和提取图像中包含的身份验证参数,例如,如果参数存储为 X509v3 扩展,则必须提供相应的 OID。

  • (5)满足 IPM 和 CM 的任何其他内存要求(本文档中当前未描述)。

  • (6)导出函数来验证使用 CM 无法解释的身份验证方法的图像,例如,如果必须使用 NV 计数器验证图像,则要与之比较的计数器的值只能由平台提供。

  • (7)如果正在使用专有图像格式(稍后描述),则导出自定义 IPM。

2.1.3.3。认证模块 (AM)

它负责:

  • (1)提供必要的抽象机制来描述 CoT。其中,身份验证和图像解析方法必须由 CoT 中的 PP 指定。

  • (2)利用 PP、IPM 和 CM 导出的功能验证 GEN 通过的 CoT。

  • (3)跟踪哪些图像已经过验证。如果一个图像是多个 CoT 的一部分,那么它应该只验证一次,例如 TBBR-Client 规范中的可信世界密钥证书。包含验证 SCP_BL2、BL31、BL32 的信息,每个都有单独的 CoT。(这个责任没有在本文档中描述,但应该很容易实现)。

  • (4)重用用于数据图像的内存来验证认证图像,例如在图 2 中描述的 CoT 中,每个证书都可以在平台为 BL31 图像保留的内存中加载和验证。到加载 BL31(数据图像)时,所有验证它的信息都将从父图像(即 BL31 内容证书)中提取出来。假设认证图像的大小永远不会超过数据图像的大小。应该可以在构建时使用断言来验证这一点。

2.1.3.4。密码模块 (CM)

CM 负责提供 API 以:

  • (1)验证数字签名。

  • (2)验证哈希。

CM 不包含任何与加密相关的代码,但它依赖于外部库来执行加密操作。必须实现链接 CM 和外部库的加密库 (CL)。CL必须提供以下功能:

void (*init)(void);
int (*verify_signature)(void *data_ptr, unsigned int data_len,
                        void *sig_ptr, unsigned int sig_len,
                        void *sig_alg, unsigned int sig_alg_len,
                        void *pk_ptr, unsigned int pk_len);
int (*verify_hash)(void *data_ptr, unsigned int data_len,
                   void *digest_info_ptr, unsigned int digest_info_len);

这些函数使用宏在 CM 中注册:

REGISTER_CRYPTO_LIB(_name, _init, _verify_signature, _verify_hash);

_name必须是包含 CL 名称的字符串。此名称用于调试目的。

2.1.3.5。图像解析器模块 (IPM)

IPM 负责:

  • (1)检查 IO 框架加载的每个图像的完整性。

  • (2)根据平台在 CoT 描述符中提供的描述提取用于验证图像的参数。

图像可能有不同的格式(例如,身份验证图像可以是 x509v3 证书、签名的 ELF 文件或任何其他特定于平台的格式)。IPM 允许为 CoT 中使用的每种图像格式注册一个图像解析器库 (IPL)。这个库必须实现特定的方法来解析图像。IPM 从 CoT 获取图像格式并调用正确的 IPL 来检查图像完整性并提取认证参数。

有关 IPM 提供的用于定义和注册 IPL 的机制的更多详细信息,请参阅“描述图像解析方法”部分。

2.1.4。身份验证方法

AM 支持以下认证方式:

  • (1)哈希

  • (2)电子签名

平台可以在 CoT 中指定这些方法,以防它决定定义自定义 CoT 而不是重用预定义的 CoT。

如果一个数据图像使用多种方法,那么所有方法必须是同一个 CoT 的一部分。参数的数量和类型是特定于方法的。这些参数应使用 IPM 从父图像中获取。

  • (1)哈希

参数:

  • 指向要散列的数据的指针

  • 数据长度

  • 指向哈希的指针

  • 哈希的长度

哈希将由以下 ASN.1 类型的 DER 编码表示:

DigestInfo ::= SEQUENCE {
    digestAlgorithm  DigestAlgorithmIdentifier,
    digest           Digest
}

这种 ASN.1 结构可以消除任何关于散列算法类型的假设,因为此信息伴随散列。这应该允许密码库 (CL) 支持多种散列算法实现。

  • (2)电子签名

参数:

  • 指向要签名的数据的指针

  • 数据长度

  • 公钥算法

  • 公钥值

  • 数字签名算法

  • 数字签名值

公钥参数将由以下 ASN.1 类型的 DER 编码表示:

SubjectPublicKeyInfo  ::=  SEQUENCE  {
    algorithm         AlgorithmIdentifier{PUBLIC-KEY,{PublicKeyAlgorithms}},
    subjectPublicKey  BIT STRING  }

数字签名算法将由以下 ASN.1 类型的 DER 编码表示。

AlgorithmIdentifier {ALGORITHM:IOSet } ::= SEQUENCE {
    algorithm         ALGORITHM.&id({IOSet}),
    parameters        ALGORITHM.&Type({IOSet}{@algorithm}) OPTIONAL
}

数字签名将由以下形式表示:

signature  ::=  BIT STRING

身份验证框架将使用图像描述符来提取与身份验证相关的所有信息。

2.2. 指定信任链

CoT 可以描述为以特定顺序链接在一起的一组图像描述符。顺序决定了它们必须被验证的顺序。每个图像都有一组属性,允许 AM 对其进行验证。这些属性如下所述。

PP 负责为数据图像定义单个或多个 CoT。除非另有说明,以下部分中描述的数据结构由 PP 静态填充。

2.2.1。描述图像解析方法

解析方法是指特定图像的格式。例如,代表证书的身份验证图像可以是 X.509v3 格式。表示引导加载程序阶段的数据映像可以是原始二进制或 ELF 格式。IPM 支持三种解析方法。图像必须使用下面描述的三种方法之一。IPL 负责解释单个解析方法。平台使用的每种方法都必须有一个 IPL。

  • (1)原始格式:此格式实际上是 nop,因为使用此方法的图像被视为原始二进制格式,例如 TF-A 使用的引导加载程序图像。此方法应仅用于数据图像。

  • (2)X509V3 方法:此方法使用 X.509 等行业标准来表示 PKI 证书(身份验证图像)。预计将提供可用于解析此方法表示的图像的开源库。此类库可用于编写相应的 IPL,例如 mbed TLS 中的 X.509 解析库代码。

  • (3)平台定义方法:此方法满足平台特定的专有标准来表示身份验证或数据图像。例如,数据图像的签名可以附加到数据图像原始二进制文件中。可以将标头附加到组合的 blob 以指定每个组件的范围。平台必须实现相应的 IPL 来解释这种格式。

以下枚举可用于定义这三种方法。

typedef enum img_type_enum {
    IMG_RAW,            /* Binary image */
    IMG_PLAT,           /* Platform specific format */
    IMG_CERT,           /* X509v3 certificate */
    IMG_MAX_TYPES,
} img_type_t;

IPL 必须提供具有以下原型的函数:

void init(void);
int check_integrity(void *img, unsigned int img_len);
int get_auth_param(const auth_param_type_desc_t *type_desc,
                      void *img, unsigned int img_len,
                      void **param, unsigned int *param_len);

必须使用以下宏注册每种类型的 IPL:

REGISTER_IMG_PARSER_LIB(_type, _name, _init, _check_int, _get_param)
  • _type: 上述类型之一。

  • _name:包含用于调试目的的 IPL 名称的字符串。

  • _init:初始化函数指针。

  • _check_int:检查图像完整性函数指针。

  • _get_param: 提取认证参数函数指针。

该init()函数将用于初始化 IPL。

该check_integrity()函数传递一个指针,该指针指向 IO 框架已加载图像的内存和图像长度。应该保证图片是解析方式对应的格式,没有被篡改过。例如,RFC-2459 描述了 X.509 证书的验证序列。

该get_auth_param()函数被传递一个参数描述符,其中包含有关参数 (type_desc和cookie) 的信息,以从图像中识别和提取与该参数对应的数据。此数据将用于验证 CoT 序列中的当前或下一个图像。

CoT 中的每个图像都将指定它使用的解析方法。IPM 将使用此信息来查找图像的正确解析器描述符。

2.2.2。描述身份验证方法

作为 CoT 的一部分,每个图像都必须指定一种或多种身份验证方法,用于对其进行验证。如“身份验证方法”部分所述,AM 支持三种方法。

typedef enum {
    AUTH_METHOD_NONE,
    AUTH_METHOD_HASH,
    AUTH_METHOD_SIG,
    AUTH_METHOD_NUM
} auth_method_type_t;

AM 定义了身份验证方法使用的每个参数的类型。它使用这些信息来:

指定get_auth_param()IPM 导出的函数,应从图像中提取哪个参数。

调用CM和PP导出的校验函数时,正确编组参数。

从父图像中提取身份验证参数以验证子图像,例如为了验证证书图像,必须从父图像中获取公钥。

typedef enum {
    AUTH_PARAM_NONE,
    AUTH_PARAM_RAW_DATA,        /* Raw image data */
    AUTH_PARAM_SIG,         /* The image signature */
    AUTH_PARAM_SIG_ALG,     /* The image signature algorithm */
    AUTH_PARAM_HASH,        /* A hash (including the algorithm) */
    AUTH_PARAM_PUB_KEY,     /* A public key */
} auth_param_type_t;

AM 定义了以下结构来识别验证图像所需的身份验证参数。

typedef struct auth_param_type_desc_s {
    auth_param_type_t type;
    void *cookie;
} auth_param_type_desc_t;

cookie平台使用它来为 IPM 指定附加信息,使其能够唯一标识应从​​图像中提取的参数。例如,BL3x 图像在其相应内容证书中的哈希存储在 X509v3 自定义扩展字段中。扩展字段只能使用 OID 来标识。在这种情况下,cookie可以包含指向平台为散列扩展字段定义的 OID 的指针,而该type字段可以设置为AUTH_PARAM_HASH。该字段的值为 0cookie表示未使用该字段。

对于每种方法,AM 都定义了一个结构,其中包含验证图像所需的参数。

/*
 * Parameters for authentication by hash matching
 */
typedef struct auth_method_param_hash_s {
    auth_param_type_desc_t *data;   /* Data to hash */
    auth_param_type_desc_t *hash;   /* Hash to match with */
} auth_method_param_hash_t;

/*
 * Parameters for authentication by signature
 */
typedef struct auth_method_param_sig_s {
    auth_param_type_desc_t *pk; /* Public key */
    auth_param_type_desc_t *sig;    /* Signature to check */
    auth_param_type_desc_t *alg;    /* Signature algorithm */
    auth_param_type_desc_t *tbs;    /* Data signed */
} auth_method_param_sig_t;
AM 定义了以下结构来描述验证图像的身份验证方法

/*
 * Authentication method descriptor
 */
typedef struct auth_method_desc_s {
    auth_method_type_t type;
    union {
        auth_method_param_hash_t hash;
        auth_method_param_sig_t sig;
    } param;
} auth_method_desc_t;

使用type字段中指定的方法类型,AM 找出param联合内需要访问的字段。

2.2.3。存储认证参数

用于验证图像的参数auth_param_type_desc_t可以从图像本身或其父图像中获得。为加载父图像分配的内存将被重新用于加载子图像。因此,从父级获得的用于验证子图像的参数需要为它们单独分配内存,以便存储它们。此内存必须由平台端口静态分配。

AM 定义了以下结构来存储与认证参数对应的数据。

typedef struct auth_param_data_desc_s {
    void *auth_param_ptr;
    unsigned int auth_param_len;
} auth_param_data_desc_t;

该auth_param_ptr字段由平台初始化。该auth_param_len 字段用于指定内存中数据的长度。

对于可以从子图像本身获取的参数,IPM 负责在执行函数时填充auth_param_ptr和字段。auth_param_lenimg_get_auth_param()

AM 定义了以下结构,以使图像能够描述应从中提取并用于验证 CoT 中的下一个图像(子图像)的参数。

typedef struct auth_param_desc_s {
    auth_param_type_desc_t type_desc;
    auth_param_data_desc_t data;
} auth_param_desc_t;
2.2.4。在 CoT 中描述图像

CoT 中的图像是上述 CoT 的以下方面的合并。

  • (1)平台指定的唯一标识符,允许 IO 框架在 FIP 中定位图像并将其加载到为 CoT 中的数据图像保留的内存中。

  • (2)AM 使用的一种解析方法来查找适当的 IPM。

  • (3)上一节中描述的身份验证方法及其参数。这些用于验证当前图像。

  • (4)用于验证当前 CoT 中的下一个图像的参数。这些参数仅由身份验证图像指定,一旦经过验证,就可以从当前图像中提取。

以下数据结构描述了 CoT 中的图像。

typedef struct auth_img_desc_s {
    unsigned int img_id;
    const struct auth_img_desc_s *parent;
    img_type_t img_type;
    const auth_method_desc_t *const img_auth_methods;
    const auth_param_desc_t *const authenticated_data;
} auth_img_desc_t;

CoT 定义为指向由字段auth_image_desc_t链接在一起的结构的指针数组。parent那些没有父节点的节点必须使用存储在平台中的 ROTPK 进行身份验证。

2.3. 实现示例

本节是详细指南,解释使用身份验证框架的可信引导实现。此示例对应于 TBBR-Client 文档中指定的应用功能模式 (AFM)。建议与源代码一起阅读本指南。

2.3.1。TBBR CoT

BL1 和 BL2 特有的 CoT 可以分别在drivers/auth/tbbr/tbbr_cot_bl1.c 和中找到drivers/auth/tbbr/tbbr_cot_bl2.c。在 BL1 和 BL2 中使用的通用 CoT 可以在drivers/auth/tbbr/tbbr_cot_common.c. 这个 CoT 由一组指向图像描述符的指针组成,并使用宏在框架中注册REGISTER_COT(cot_desc),其中 cot_desc必须是数组的名称(传递指针或任何其他类型的间接将导致注册过程失败)。

参与引导过程的映像数量取决于 CoT。然而,在 TF-A 中有一组最少的图像是强制性的,因此所有 CoT 都必须呈现:

  • BL2

  • SCP_BL2(特定于平台)

  • BL31

  • BL32(可选的)

  • BL33

TBBR 指定了必须伴随这些图像以进行正确身份验证的附加证书。有关 TBBR CoT 的详细信息可在 Trusted Board Boot文档中找到。

遵循移植指南,平台必须为将在引导过程中加载的所有映像和证书提供唯一标识符。如果平台使用 TBBR 作为可信引导的参考,则这些标识符可以从include/common/tbbr/tbbr_img_def.h. Arm 平台将此文件包含在include/plat/arm/common/arm_def.h. 其他平台也可能包含此文件或提供自己的标识符。

重要提示:身份验证模块使用这些标识符来索引 CoT 数组,因此数组中的描述符位置必须与标识符匹配。

每个图像描述符必须指定:

  • img_id:平台定义的对应图片唯一标识。

  • img_type:图像解析器模块使用图像类型调用正确的解析库来检查图像完整性并提取所需的认证参数。目前支持三种类型的图像:
    – IMG_RAW:图像是原始二进制文件。除了读取整个图像之外,没有可用的解析功能。
    – IMG_PLAT:图像格式是特定于平台的。平台可以将此类型用于身份验证框架不直接支持的自定义图像。
    – IMG_CERT:图像是 x509v3 证书。

  • parent: 指向父图像描述符的指针。父级将包含验证当前图像所需的信息。如果 parent 为 NULL,则从平台获取认证参数(即 BL2 和 Trusted Key 证书使用 ROT 私钥签名,其公共部分存储在平台中)。

  • img_auth_methods:这指向一个数组,该数组定义了必须检查的身份验证方法以认为图像已通过身份验证。每个方法都包含一个类型和一个参数描述符列表。参数描述符由类型和cookie 组成,cookie 将指向从图像中提取该参数所需的特定信息(即,如果参数存储在x509v3 扩展中,cookie 将指向扩展OID)。根据方法类型,必须指定不同数量的参数。该指针不应为 NULL。支持的方法有:
    AUTH_METHOD_HASH:图像的哈希必须与从父图像中提取的哈希匹配。必须指定以下参数描述符:
    ----- data:要散列的数据(从当前图像中获取)
    ----- hash:参考哈希(从父图像获得)
    AUTH_METHOD_SIG: 图像(通常是证书)必须使用其公共部分从父图像(如果父图像为 NULL 则为平台)提取的私钥签名。必须指定以下参数描述符:
    ----- pk: 公钥(从父镜像中获取)
    ----- sig:数字签名(从当前图像中获得)
    ----- alg:使用的签名算法(从当前图像中获得)
    ----- data:要签名的数据(从当前图像中获取)

  • authenticated_data:此数组指针指示一旦图像经过身份验证,必须从图像中提取哪些身份验证参数。每个参数由一个参数描述符和用于存储参数的缓冲区地址/大小组成。CoT 负责分配所需的内存来存储参数。该指针可能为 NULL。

在该tbbr_cot*.c文件中,分配了一组缓冲区来存储从证书中提取的参数。在 TBBR CoT 的情况下,这些参数是散列和公钥。在 DER 格式中,一个 RSA-4096 公钥需要 550 个字节,而散列需要 51 个字节。根据 CoT 和身份验证过程,一些缓冲区可能会在引导期间的不同阶段重复使用。

接下来在该文件中,定义参数描述符。这些描述符将用于从相应的图像中提取参数数据。

2.3.1.1。示例:BL31 信任链

四个图像描述符构成了 BL31 信任链:

static const auth_img_desc_t trusted_key_cert = {
        .img_id = TRUSTED_KEY_CERT_ID,
        .img_type = IMG_CERT,
        .parent = NULL,
        .img_auth_methods =  (const auth_method_desc_t[AUTH_METHOD_NUM]) {
                [0] = {
                        .type = AUTH_METHOD_SIG,
                        .param.sig = {
                                .pk = &subject_pk,
                                .sig = &sig,
                                .alg = &sig_alg,
                                .data = &raw_data
                        }
                },
                [1] = {
                        .type = AUTH_METHOD_NV_CTR,
                        .param.nv_ctr = {
                                .cert_nv_ctr = &trusted_nv_ctr,
                                .plat_nv_ctr = &trusted_nv_ctr
                        }
                }
        },
        .authenticated_data = (const auth_param_desc_t[COT_MAX_VERIFIED_PARAMS]) {
                [0] = {
                        .type_desc = &trusted_world_pk,
                        .data = {
                                .ptr = (void *)trusted_world_pk_buf,
                                .len = (unsigned int)PK_DER_LEN
                        }
                },
                [1] = {
                        .type_desc = &non_trusted_world_pk,
                        .data = {
                                .ptr = (void *)non_trusted_world_pk_buf,
                                .len = (unsigned int)PK_DER_LEN
                        }
                }
        }
};
static const auth_img_desc_t soc_fw_key_cert = {
        .img_id = SOC_FW_KEY_CERT_ID,
        .img_type = IMG_CERT,
        .parent = &trusted_key_cert,
        .img_auth_methods =  (const auth_method_desc_t[AUTH_METHOD_NUM]) {
                [0] = {
                        .type = AUTH_METHOD_SIG,
                        .param.sig = {
                                .pk = &trusted_world_pk,
                                .sig = &sig,
                                .alg = &sig_alg,
                                .data = &raw_data
                        }
                },
                [1] = {
                        .type = AUTH_METHOD_NV_CTR,
                        .param.nv_ctr = {
                                .cert_nv_ctr = &trusted_nv_ctr,
                                .plat_nv_ctr = &trusted_nv_ctr
                        }
                }
        },
        .authenticated_data = (const auth_param_desc_t[COT_MAX_VERIFIED_PARAMS]) {
                [0] = {
                        .type_desc = &soc_fw_content_pk,
                        .data = {
                                .ptr = (void *)content_pk_buf,
                                .len = (unsigned int)PK_DER_LEN
                        }
                }
        }
};
static const auth_img_desc_t soc_fw_content_cert = {
        .img_id = SOC_FW_CONTENT_CERT_ID,
        .img_type = IMG_CERT,
        .parent = &soc_fw_key_cert,
        .img_auth_methods =  (const auth_method_desc_t[AUTH_METHOD_NUM]) {
                [0] = {
                        .type = AUTH_METHOD_SIG,
                        .param.sig = {
                                .pk = &soc_fw_content_pk,
                                .sig = &sig,
                                .alg = &sig_alg,
                                .data = &raw_data
                        }
                },
                [1] = {
                        .type = AUTH_METHOD_NV_CTR,
                        .param.nv_ctr = {
                                .cert_nv_ctr = &trusted_nv_ctr,
                                .plat_nv_ctr = &trusted_nv_ctr
                        }
                }
        },
        .authenticated_data = (const auth_param_desc_t[COT_MAX_VERIFIED_PARAMS]) {
                [0] = {
                        .type_desc = &soc_fw_hash,
                        .data = {
                                .ptr = (void *)soc_fw_hash_buf,
                                .len = (unsigned int)HASH_DER_LEN
                        }
                },
                [1] = {
                        .type_desc = &soc_fw_config_hash,
                        .data = {
                                .ptr = (void *)soc_fw_config_hash_buf,
                                .len = (unsigned int)HASH_DER_LEN
                        }
                }
        }
};
static const auth_img_desc_t bl31_image = {
        .img_id = BL31_IMAGE_ID,
        .img_type = IMG_RAW,
        .parent = &soc_fw_content_cert,
        .img_auth_methods =  (const auth_method_desc_t[AUTH_METHOD_NUM]) {
                [0] = {
                        .type = AUTH_METHOD_HASH,
                        .param.hash = {
                                .data = &raw_data,
                                .hash = &soc_fw_hash
                        }
                }
        }
};

Trusted Key 证书使用ROT 私钥签名,并包含 Trusted World 公钥和 Non-Trusted World 公钥作为 x509v3 扩展。这必须分别使用 img_auth_methods和authenticated_data数组在图像描述符中指定。

可信密钥证书通过使用 ROTPK 检查其数字签名来进行身份验证。检查签名需要四个参数:公钥、算法、签名和已签名的数据。因此,认证方法必须指定四个参数描述符:

  • subject_pk: 类型的参数描述符AUTH_PARAM_PUB_KEY。此类型用于从父图像中提取公钥。如果 cookie 是 OID,则从相应的 x509v3 扩展中提取密钥。如果 cookie 为 NULL,则检索主题公钥。在这种情况下,由于父图像为 NULL,因此从平台获取公钥(此密钥将是 ROTPK)。

  • sig: 类型的参数描述符AUTH_PARAM_SIG。它用于从证书中提取签名。

  • sig_alg: 类型的参数描述符AUTH_PARAM_SIG。它用于从证书中提取签名算法。

  • raw_data: 类型的参数描述符AUTH_PARAM_RAW_DATA。它用于从证书中提取要签名的数据。

一旦检查了签名并验证了证书,就需要从证书中提取 Trusted World 公钥。authenticated_data为此,在数组中创建了一个新条目。在该条目中,必须指定相应的参数描述符以及缓冲区地址以存储参数值。在这种情况下,trusted_world_pk 描述符用于从具有 OID 的 x509v3 扩展中提取公钥 TRUSTED_WORLD_PK_OID。BL31 密钥证书将使用该描述符作为签名认证方法中的参数。密钥存储在 trusted_world_pk_buf缓冲区中。

BL31 Key 证书是通过使用之前从 Trusted Key 证书中获得的 Trusted World 公钥检查其数字签名来验证的。在图像描述符中,我们通过签名指定单一的身份验证方法,其公钥为trusted_world_pk. 一旦这个证书被认证,我们必须提取 BL31 公钥,存储在soc_fw_content_pk. 该密钥将被复制到 content_pk_buf缓冲区。

BL31 证书是通过使用先前从 BL31 Key 证书中获得的BL31 公钥检查其数字签名来验证的。soc_fw_content_pk我们使用公钥指定身份验证方法。身份验证后,我们需要提取 BL31 哈希值,存储在指定的扩展名中soc_fw_hash。此哈希将被复制到 soc_fw_hash_buf缓冲区。

BL31图像通过计算其哈希值并将其与从 BL31 证书获得的哈希值进行匹配来进行身份验证。图像描述符包含通过哈希的单一身份验证方法。散列方法的参数是参考散列、soc_fw_hash和要散列的数据。在这种情况下,它是整个图像,所以我们指定raw_data.

2.3.2. 图像解析器库

图像解析器模块依赖库来检查图像完整性并提取身份验证参数。解析器库的数量和类型取决于 CoT 中使用的图像。原始图像不需要库,因此 TBBR CoT 只需要 x509v3 库。

Arm 平台将使用基于 mbed TLS 的 x509v3 库。这个库可以在drivers/auth/mbedtls/mbedtls_x509_parser.c. 它导出三个函数:

void init(void);
int check_integrity(void *img, unsigned int img_len);
int get_auth_param(const auth_param_type_desc_t *type_desc,
                   void *img, unsigned int img_len,
                   void **param, unsigned int *param_len);

该库使用宏在框架中注册 REGISTER_IMG_PARSER_LIB()。图像解析模块每次需要访问类型为 的图像时IMG_CERT,都会调用该文件中导出的相应函数。

必须更新构建系统以包含相应的库和 mbed TLS 源。Arm 平台使用该arm_common.mk文件来拉取源。

2.3.3。密码库

密码模块依赖于库来执行所需的操作,即验证散列或数字签名。Arm 平台将使用基于 mbed TLS 的库,该库位于 drivers/auth/mbedtls/mbedtls_crypto.c. 该库使用宏在身份验证框架中注册,REGISTER_CRYPTO_LIB()并导出四个函数:

void init(void);
int verify_signature(void *data_ptr, unsigned int data_len,
                     void *sig_ptr, unsigned int sig_len,
                     void *sig_alg, unsigned int sig_alg_len,
                     void *pk_ptr, unsigned int pk_len);
int verify_hash(void *data_ptr, unsigned int data_len,
                void *digest_info_ptr, unsigned int digest_info_len);
int auth_decrypt(enum crypto_dec_algo dec_algo, void *data_ptr,
                 size_t len, const void *key, unsigned int key_len,
                 unsigned int key_flags, const void *iv,
                 unsigned int iv_len, const void *tag,
                 unsigned int tag_len)

mbedTLS 库算法支持由 TF_MBEDTLS_KEY_ALG和TF_MBEDTLS_KEY_SIZE变量配置。

  • TF_MBEDTLS_KEY_ALG可以接受 3 个值:rsa、ecdsa或rsa+ecdsa。此变量允许 Makefile 在构建中包含各种算法的相应源。将变量设置为rsa+ecdsa 可以支持 mbedTLS 库中的 rsa 和 ecdsa 算法。

  • TF_MBEDTLS_KEY_SIZE设置 TFA 支持的 RSA 密钥大小。有效值包括 1024、2048、3072 和 4096。

  • TF_MBEDTLS_USE_AES_GCM启用基于 AES-GCM 算法的认证解密支持。有效值为 0 和 1。

注意:如果代码大小是一个问题,MBEDTLS_SHA256_SMALLER可以在平台 Makefile 中定义构建选项。它将使 mbed TLS 使用 SHA-256 的实现,内存占用更小(约 1.5 KB 少)但速度更慢(约 30%)。

&quot;C:\Program Files\Java\jdk-1.8\bin\java.exe&quot; -Dpandora.location=E:\apache-maven-3.8.1-bin\taobao-hsf.sar-dev-SNAPSHOT.jar -Xmx1g -XX:TieredStopAtLevel=1 -noverify -Dspring.output.ansi.enabled=always -Dcom.sun.management.jmxremote -Dspring.jmx.enabled=true -Dspring.liveBeansView.mbeanDomain -Dspring.application.admin.enabled=true &quot;-Dmanagement.endpoints.jmx.exposure.include=*&quot; &quot;-javaagent:E:\idea\IntelliJ IDEA 2023.2\lib\idea_rt.jar=53638:E:\idea\IntelliJ IDEA 2023.2\bin&quot; -Dfile.encoding=UTF-8 -classpath C:\Users\Lplayer\AppData\Local\Temp\classpath1138593618.jar com.insigma.InsiisWebApplication fail to download http://mvnrepo.alibaba-inc.com/mvn/repository/com/alibaba/citrus/tool/antx-autoconfig/1.2-jdk9/antx-autoconfig-1.2-jdk9.jar to C:\Users\Lplayer\.autoconf\autoconf-1.2-jdk9.jar C:\Users\Lplayer\.autoconf\autoconf-1.2-jdk9.jar doesn&#39;t exist. ____ _ ____ _ | _ \ __ _ _ __ __| | ___ _ __ __ _ | __ ) ___ ___ | |_ | |_) / _` | &#39;_ \ / _` |/ _ \| &#39;__/ _` | | _ \ / _ \ / _ \| __| | __/ (_| | | | | (_| | (_) | | | (_| | | |_) | (_) | (_) | |_ |_| \__,_|_| |_|\__,_|\___/|_| \__,_| |____/ \___/ \___/ \__| :: Pandora Boot :: 2.1.9.1 Set log4j.defaultInitOverride to true. JM.Log:INFO Init JM logger with Log4jLoggerFactory JM.Log:INFO Log root path: C:\Users\Lplayer\logs\ JM.Log:INFO Set pandora log path: C:\Users\Lplayer\logs\pandora JM.Log:INFO Init JM logger with Log4jLoggerFactory JM.Log:INFO Log root path: C:\Users\Lplayer\logs\ JM.Log:INFO Set pandora log path: C:\Users\Lplayer\logs\pandora JM.Log:INFO Init JM logger with Log4jLoggerFactory JM.Log:INFO Log root path: C:\Users\Lplayer\logs\ JM.Log:INFO Set pandolet log path: C:\Users\Lplayer\logs\pandolet INFO: spas-client-initializer init Wed Aug 06 09:00:34 CST 2025 spas-sdk-client&#39;s ModuleClassLoader JM.Log:INFO Init JM logger with Slf4jLoggerFactory success, spas-sdk-client&#39;s ModuleClassLoader Wed Aug 06 09:00:34 CST 2025 spas-sdk-client&#39;s ModuleClassLoader JM.Log:INFO Log root path: C:\Users\Lplayer\logs\ Wed Aug 06 09:00:34 CST 2025 spas-sdk-client&#39;s ModuleClassLoader JM.Log:INFO Set spas log path: C:\Users\Lplayer\logs\spas Wed Aug 06 09:00:34 CST 2025 eagleeye-core&#39;s ModuleClassLoader JM.Log:INFO Init JM logger with Slf4jLoggerFactory success, eagleeye-core&#39;s ModuleClassLoader Wed Aug 06 09:00:34 CST 2025 eagleeye-core&#39;s ModuleClassLoader JM.Log:INFO Log root path: C:\Users\Lplayer\logs\ Wed Aug 06 09:00:34 CST 2025 eagleeye-core&#39;s ModuleClassLoader JM.Log:INFO Set metrics log path: C:\Users\Lplayer\logs\metrics Wed Aug 06 09:00:35 CST 2025 vipserver-client&#39;s ModuleClassLoader JM.Log:INFO Init JM logger with Log4jLoggerFactory, vipserver-client&#39;s ModuleClassLoader Wed Aug 06 09:00:35 CST 2025 vipserver-client&#39;s ModuleClassLoader JM.Log:INFO Log root path: C:\Users\Lplayer\logs\ Wed Aug 06 09:00:35 CST 2025 vipserver-client&#39;s ModuleClassLoader JM.Log:INFO Set vipsrv-logs log path: C:\Users\Lplayer\logs\vipsrv-logs Wed Aug 06 09:00:35 CST 2025 monitor&#39;s ModuleClassLoader JM.Log:INFO Init JM logger with Slf4jLoggerFactory success, monitor&#39;s ModuleClassLoader Wed Aug 06 09:00:35 CST 2025 monitor&#39;s ModuleClassLoader JM.Log:INFO Log root path: C:\Users\Lplayer\logs\ Wed Aug 06 09:00:35 CST 2025 monitor&#39;s ModuleClassLoader JM.Log:INFO Set tomcat-monitor log path: C:\Users\Lplayer\logs\tomcat-monitor Wed Aug 06 09:00:35 CST 2025 hsf&#39;s ModuleClassLoader JM.Log:INFO Init JM logger with Slf4jLoggerFactory success, hsf&#39;s ModuleClassLoader Wed Aug 06 09:00:35 CST 2025 hsf&#39;s ModuleClassLoader JM.Log:INFO Log root path: C:\Users\Lplayer\logs\ Wed Aug 06 09:00:35 CST 2025 hsf&#39;s ModuleClassLoader JM.Log:INFO Set hsf log path: C:\Users\Lplayer\logs\hsf SLF4J: Class path contains multiple SLF4J bindings. SLF4J: Found binding in [jar:file:/E:/apache-maven-3.8.1-bin/taobao-hsf.sar-dev-SNAPSHOT.jar!/plugins/hsf!/lib/logback-classic-1.2.3.jar!/org/slf4j/impl/StaticLoggerBinder.class] SLF4J: Found binding in [jar:file:/E:/apache-maven-3.8.1-bin/taobao-hsf.sar-dev-SNAPSHOT.jar!/plugins/hsf!/lib/slf4j-log4j12-1.6.1.jar!/org/slf4j/impl/StaticLoggerBinder.class] SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation. SLF4J: Actual binding is of type [ch.qos.logback.classic.util.ContextSelectorStaticBinder] *******************HSF PORT:12200 ************** *************Pandora QOS PORT:12201 ************** *************Tomcat Monitor Port:8006 ************** *******************Sentinel PORT:8719 ************** log4j:WARN No appenders could be found for logger (io.netty.util.internal.logging.InternalLoggerFactory). log4j:WARN Please initialize the log4j system properly. log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info. **************************************************************************************** ** ** ** Pandora Container ** ** ** ** Pandora Host: 10.66.242.118 ** ** Pandora Version: 2.1.4 ** ** SAR Version: edas.sar.V3.5.3 ** ** Package Time: 2025-08-06 09:00:32 ** ** ** ** Plug-in Modules: 19 ** ** ** ** metrics .......................................... 1.7.0 ** ** edas-assist ...................................... 2.0 ** ** pandora-qos-service .............................. edas215 ** ** pandolet ......................................... 1.0.0 ** ** spas-sdk-client .................................. 1.3.0 ** ** eagleeye-core .................................... 1.7.10.1 ** ** tddl-driver ...................................... 1.0.5-SNAPSHOT ** ** vipserver-client ................................. 4.7.9-SNAPSHOT ** ** diamond-client ................................... 3.8.10 ** ** configcenter-client .............................. 1.0.3 ** ** spas-sdk-service ................................. 1.3.0 ** ** dpath ............................................ 1.4 ** ** config-client .................................... 1.9.6 ** ** unitrouter ....................................... 1.0.11 ** ** monitor .......................................... 1.2.3-SNAPSHOT ** ** sentinel-plugin .................................. 2.12.12-edas ** ** ons-client ....................................... 1.8.0-EagleEye ** ** hsf .............................................. 2.2.7.3.1-TLS ** ** pandora-framework ................................ 2.0.8 ** ** ** ** [WARNING] All these plug-in modules will override maven pom.xml dependencies. ** ** More: http://gitlab.alibaba-inc.com/middleware-container/pandora/wikis/home ** ** ** **************************************************************************************** INFO: spas-client-initializer start JM.Log:INFO Init JM logger with Log4jLoggerFactory JM.Log:INFO Log root path: C:\Users\Lplayer\logs\ JM.Log:INFO Set pandora log path: C:\Users\Lplayer\logs\pandora Init available components Scanning for available components in the runtime Starting available components Skip ProjectInfoInitializer. 2025-08-06 09:00:37.814 INFO 3324 --- [ main] trationDelegate$BeanPostProcessorChecker : Bean &#39;org.springframework.cloud.autoconfigure.ConfigurationPropertiesRebinderAutoConfiguration&#39; of type [org.springframework.cloud.autoconfigure.ConfigurationPropertiesRebinderAutoConfiguration$$EnhancerBySpringCGLIB$$dd14cfb2] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) 2025-08-06 09:00:37.845 INFO 3324 --- [ main] c.a.c.c.acm.AliCloudAcmInitializer : Initialize acm from acm configuration. . ____ _ __ _ _ /\\ / ___&#39;_ __ _ _(_)_ __ __ _ \ \ \ \ ( ( )\___ | &#39;_ | &#39;_| | &#39;_ \/ _` | \ \ \ \ \\/ ___)| |_)| | | | | || (_| | ) ) ) ) &#39; |____| .__|_| |_|_| |_\__, | / / / / =========|_|==============|___/=/_/_/_/ :: Spring Boot :: (v2.1.4.RELEASE) Wed Aug 06 09:00:38 CST 2025 diamond-client&#39;s ModuleClassLoader JM.Log:INFO Init JM logger with Slf4jLoggerFactory success, diamond-client&#39;s ModuleClassLoader Wed Aug 06 09:00:38 CST 2025 diamond-client&#39;s ModuleClassLoader JM.Log:INFO Log root path: C:\Users\Lplayer\logs\ Wed Aug 06 09:00:38 CST 2025 diamond-client&#39;s ModuleClassLoader JM.Log:INFO Set diamond-client log path: C:\Users\Lplayer\logs\diamond-client 09:00:38.851 [main] INFO c.t.d.identify.CredentialWatcher - [] [] [] No credential found 2025-08-06 09:00:38.961 INFO 3324 --- [ main] b.c.PropertySourceBootstrapConfiguration : Located property source: CompositePropertySource {name=&#39;diamond&#39;, propertySources=[]} Skip ProjectInfoInitializer. 2025-08-06 09:00:38.981 INFO 3324 --- [ main] com.insigma.InsiisWebApplication : The following profiles are active: redis,datasource,security,mybatis,async 2025-08-06 09:00:42.299 INFO 3324 --- [ main] .s.d.r.c.RepositoryConfigurationDelegate : Multiple Spring Data modules found, entering strict repository configuration mode! 2025-08-06 09:00:42.299 INFO 3324 --- [ main] .s.d.r.c.RepositoryConfigurationDelegate : Bootstrapping Spring Data repositories in DEFAULT mode. 2025-08-06 09:00:42.810 INFO 3324 --- [ main] .s.d.r.c.RepositoryConfigurationDelegate : Finished Spring Data repository scanning in 503ms. Found 21 repository interfaces. 2025-08-06 09:00:42.817 INFO 3324 --- [ main] .s.d.r.c.RepositoryConfigurationDelegate : Multiple Spring Data modules found, entering strict repository configuration mode! 2025-08-06 09:00:42.817 INFO 3324 --- [ main] .s.d.r.c.RepositoryConfigurationDelegate : Bootstrapping Spring Data repositories in DEFAULT mode. 2025-08-06 09:00:42.981 INFO 3324 --- [ main] .RepositoryConfigurationExtensionSupport : Spring Data MongoDB - Could not safely identify store assignment for repository candidate interface com.insigma.sys.repository.Aa26Repository. 2025-08-06 09:00:42.982 INFO 3324 --- [ main] .RepositoryConfigurationExtensionSupport : Spring Data MongoDB - Could not safely identify store assignment for repository candidate interface com.insigma.sys.repository.MenuRepository. 2025-08-06 09:00:42.982 INFO 3324 --- [ main] .RepositoryConfigurationExtensionSupport : Spring Data MongoDB - Could not safely identify store assignment for repository candidate interface com.insigma.sys.repository.RoleRepository. 2025-08-06 09:00:42.983 INFO 3324 --- [ main] .RepositoryConfigurationExtensionSupport : Spring Data MongoDB - Could not safely identify store assignment for repository candidate interface com.insigma.sys.repository.SysCodeRepository. 2025-08-06 09:00:42.983 INFO 3324 --- [ main] .RepositoryConfigurationExtensionSupport : Spring Data MongoDB - Could not safely identify store assignment for repository candidate interface com.insigma.sys.repository.SysErrorRepository. 2025-08-06 09:00:42.983 INFO 3324 --- [ main] .RepositoryConfigurationExtensionSupport : Spring Data MongoDB - Could not safely identify store assignment for repository candidate interface com.insigma.sys.repository.SysHolidayRepository. 2025-08-06 09:00:42.983 INFO 3324 --- [ main] .RepositoryConfigurationExtensionSupport : Spring Data MongoDB - Could not safely identify store assignment for repository candidate interface com.insigma.sys.repository.SysIdMappingRespository. 2025-08-06 09:00:42.984 INFO 3324 --- [ main] .RepositoryConfigurationExtensionSupport : Spring Data MongoDB - Could not safely identify store assignment for repository candidate interface com.insigma.sys.repository.SysOrgRepository. 2025-08-06 09:00:42.984 INFO 3324 --- [ main] .RepositoryConfigurationExtensionSupport : Spring Data MongoDB - Could not safely identify store assignment for repository candidate interface com.insigma.sys.repository.SysRoleFunctionRepository. 2025-08-06 09:00:42.984 INFO 3324 --- [ main] .RepositoryConfigurationExtensionSupport : Spring Data MongoDB - Could not safely identify store assignment for repository candidate interface com.insigma.sys.repository.SysUserAreaRepository. 2025-08-06 09:00:42.985 INFO 3324 --- [ main] .RepositoryConfigurationExtensionSupport : Spring Data MongoDB - Could not safely identify store assignment for repository candidate interface com.insigma.sys.repository.SysUserRepository. 2025-08-06 09:00:42.986 INFO 3324 --- [ main] .RepositoryConfigurationExtensionSupport : Spring Data MongoDB - Could not safely identify store assignment for repository candidate interface com.insigma.sys.repository.SysUserRoleRepository. 2025-08-06 09:00:42.986 INFO 3324 --- [ main] .RepositoryConfigurationExtensionSupport : Spring Data MongoDB - Could not safely identify store assignment for repository candidate interface com.insigma.drugs.repository.ProtalDrugsRepository. 2025-08-06 09:00:42.986 INFO 3324 --- [ main] .RepositoryConfigurationExtensionSupport : Spring Data MongoDB - Could not safely identify store assignment for repository candidate interface com.insigma.framework.oplog.repository.OpLogRepository. 2025-08-06 09:00:42.986 INFO 3324 --- [ main] .RepositoryConfigurationExtensionSupport : Spring Data MongoDB - Could not safely identify store assignment for repository candidate interface com.insigma.framework.commons.repository.SysOperateLogRepository. 2025-08-06 09:00:42.987 INFO 3324 --- [ main] .RepositoryConfigurationExtensionSupport : Spring Data MongoDB - Could not safely identify store assignment for repository candidate interface com.insigma.framework.oplog.repository.OpLogFormRepository. 2025-08-06 09:00:42.987 INFO 3324 --- [ main] .RepositoryConfigurationExtensionSupport : Spring Data MongoDB - Could not safely identify store assignment for repository candidate interface com.insigma.web.support.dao.Aa01Repository. 2025-08-06 09:00:42.989 INFO 3324 --- [ main] .RepositoryConfigurationExtensionSupport : Spring Data MongoDB - Could not safely identify store assignment for repository candidate interface com.insigma.web.support.dao.CodeTypeRepository. 2025-08-06 09:00:42.989 INFO 3324 --- [ main] .RepositoryConfigurationExtensionSupport : Spring Data MongoDB - Could not safely identify store assignment for repository candidate interface com.insigma.web.support.dao.MdParamRepository. 2025-08-06 09:00:42.989 INFO 3324 --- [ main] .RepositoryConfigurationExtensionSupport : Spring Data MongoDB - Could not safely identify store assignment for repository candidate interface com.insigma.framework.web.securities.repository.SysLogonLogRepository. 2025-08-06 09:00:43.026 INFO 3324 --- [ main] .RepositoryConfigurationExtensionSupport : Spring Data MongoDB - Could not safely identify store assignment for repository candidate interface com.insigma.framework.web.securities.repository.SysLogonLogRepository. 2025-08-06 09:00:43.027 INFO 3324 --- [ main] .s.d.r.c.RepositoryConfigurationDelegate : Finished Spring Data repository scanning in 210ms. Found 0 repository interfaces. 2025-08-06 09:00:43.038 INFO 3324 --- [ main] .s.d.r.c.RepositoryConfigurationDelegate : Multiple Spring Data modules found, entering strict repository configuration mode! 2025-08-06 09:00:43.039 INFO 3324 --- [ main] .s.d.r.c.RepositoryConfigurationDelegate : Bootstrapping Spring Data repositories in DEFAULT mode. 2025-08-06 09:00:43.205 INFO 3324 --- [ main] .RepositoryConfigurationExtensionSupport : Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.insigma.sys.repository.Aa26Repository. 2025-08-06 09:00:43.205 INFO 3324 --- [ main] .RepositoryConfigurationExtensionSupport : Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.insigma.sys.repository.MenuRepository. 2025-08-06 09:00:43.205 INFO 3324 --- [ main] .RepositoryConfigurationExtensionSupport : Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.insigma.sys.repository.RoleRepository. 2025-08-06 09:00:43.205 INFO 3324 --- [ main] .RepositoryConfigurationExtensionSupport : Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.insigma.sys.repository.SysCodeRepository. 2025-08-06 09:00:43.206 INFO 3324 --- [ main] .RepositoryConfigurationExtensionSupport : Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.insigma.sys.repository.SysErrorRepository. 2025-08-06 09:00:43.206 INFO 3324 --- [ main] .RepositoryConfigurationExtensionSupport : Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.insigma.sys.repository.SysHolidayRepository. 2025-08-06 09:00:43.206 INFO 3324 --- [ main] .RepositoryConfigurationExtensionSupport : Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.insigma.sys.repository.SysIdMappingRespository. 2025-08-06 09:00:43.206 INFO 3324 --- [ main] .RepositoryConfigurationExtensionSupport : Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.insigma.sys.repository.SysOrgRepository. 2025-08-06 09:00:43.206 INFO 3324 --- [ main] .RepositoryConfigurationExtensionSupport : Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.insigma.sys.repository.SysRoleFunctionRepository. 2025-08-06 09:00:43.206 INFO 3324 --- [ main] .RepositoryConfigurationExtensionSupport : Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.insigma.sys.repository.SysUserAreaRepository. 2025-08-06 09:00:43.206 INFO 3324 --- [ main] .RepositoryConfigurationExtensionSupport : Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.insigma.sys.repository.SysUserRepository. 2025-08-06 09:00:43.207 INFO 3324 --- [ main] .RepositoryConfigurationExtensionSupport : Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.insigma.sys.repository.SysUserRoleRepository. 2025-08-06 09:00:43.207 INFO 3324 --- [ main] .RepositoryConfigurationExtensionSupport : Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.insigma.drugs.repository.ProtalDrugsRepository. 2025-08-06 09:00:43.207 INFO 3324 --- [ main] .RepositoryConfigurationExtensionSupport : Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.insigma.framework.oplog.repository.OpLogRepository. 2025-08-06 09:00:43.207 INFO 3324 --- [ main] .RepositoryConfigurationExtensionSupport : Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.insigma.framework.commons.repository.SysOperateLogRepository. 2025-08-06 09:00:43.207 INFO 3324 --- [ main] .RepositoryConfigurationExtensionSupport : Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.insigma.framework.oplog.repository.OpLogFormRepository. 2025-08-06 09:00:43.207 INFO 3324 --- [ main] .RepositoryConfigurationExtensionSupport : Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.insigma.web.support.dao.Aa01Repository. 2025-08-06 09:00:43.207 INFO 3324 --- [ main] .RepositoryConfigurationExtensionSupport : Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.insigma.web.support.dao.CodeTypeRepository. 2025-08-06 09:00:43.207 INFO 3324 --- [ main] .RepositoryConfigurationExtensionSupport : Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.insigma.web.support.dao.MdParamRepository. 2025-08-06 09:00:43.207 INFO 3324 --- [ main] .RepositoryConfigurationExtensionSupport : Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.insigma.framework.web.securities.repository.SysLogonLogRepository. 2025-08-06 09:00:43.231 INFO 3324 --- [ main] .RepositoryConfigurationExtensionSupport : Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.insigma.framework.web.securities.repository.SysLogonLogRepository. 2025-08-06 09:00:43.231 INFO 3324 --- [ main] .s.d.r.c.RepositoryConfigurationDelegate : Finished Spring Data repository scanning in 184ms. Found 0 repository interfaces. 2025-08-06 09:00:43.414 WARN 3324 --- [ main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name &#39;caseInfoDDao&#39; and &#39;com.insigma.business.bigdata.dao.CaseInfoDDao&#39; mapperInterface. Bean already defined with the same name! 2025-08-06 09:00:43.515 INFO 3324 --- [ main] o.s.cloud.context.scope.GenericScope : BeanFactory id=715b0589-9638-3765-9a2d-50e339059fc9 2025-08-06 09:00:43.637 INFO 3324 --- [ main] c.a.b.h.c.HsfConsumerPostProcessor : registered HSFConsumerBean &quot;queryAdmdvsService&quot; in spring context. 2025-08-06 09:00:43.637 INFO 3324 --- [ main] c.a.b.h.c.HsfConsumerPostProcessor : registered HSFConsumerBean &quot;queryDataDicService&quot; in spring context. 2025-08-06 09:00:43.637 INFO 3324 --- [ main] c.a.b.h.c.HsfConsumerPostProcessor : registered HSFConsumerBean &quot;roleAuthInfoService&quot; in spring context. 2025-08-06 09:00:43.637 INFO 3324 --- [ main] c.a.b.h.c.HsfConsumerPostProcessor : registered HSFConsumerBean &quot;admrolService&quot; in spring context. 2025-08-06 09:00:43.637 INFO 3324 --- [ main] c.a.b.h.c.HsfConsumerPostProcessor : registered HSFConsumerBean &quot;orguntService&quot; in spring context. 2025-08-06 09:00:43.637 INFO 3324 --- [ main] c.a.b.h.c.HsfConsumerPostProcessor : registered HSFConsumerBean &quot;unitService&quot; in spring context. 2025-08-06 09:00:43.637 INFO 3324 --- [ main] c.a.b.h.c.HsfConsumerPostProcessor : registered HSFConsumerBean &quot;userService&quot; in spring context. 2025-08-06 09:00:43.637 INFO 3324 --- [ main] c.a.b.h.c.HsfConsumerPostProcessor : registered HSFConsumerBean &quot;sysUactService&quot; in spring context. 2025-08-06 09:00:43.637 INFO 3324 --- [ main] c.a.b.h.c.HsfConsumerPostProcessor : registered HSFConsumerBean &quot;resuService&quot; in spring context. 2025-08-06 09:00:43.637 INFO 3324 --- [ main] c.a.b.h.c.HsfConsumerPostProcessor : registered HSFConsumerBean &quot;bizrolService&quot; in spring context. 2025-08-06 09:00:43.637 INFO 3324 --- [ main] c.a.b.h.c.HsfConsumerPostProcessor : registered HSFConsumerBean &quot;publicFeedetlChkDetMgtService&quot; in spring context. Wed Aug 06 09:00:43 CST 2025 dpath&#39;s ModuleClassLoader JM.Log:INFO Init JM logger with Slf4jLoggerFactory success, dpath&#39;s ModuleClassLoader Wed Aug 06 09:00:43 CST 2025 dpath&#39;s ModuleClassLoader JM.Log:INFO Log root path: C:\Users\Lplayer\logs\ Wed Aug 06 09:00:43 CST 2025 dpath&#39;s ModuleClassLoader JM.Log:INFO Set dpath log path: C:\Users\Lplayer\logs\dpath Wed Aug 06 09:00:43 CST 2025 dpath&#39;s ModuleClassLoader JM.Log:INFO Can&#39;t find method for class ch.qos.logback.classic.AsyncAppender setMaxFlushTime 3000 Wed Aug 06 09:00:43 CST 2025 dpath&#39;s ModuleClassLoader JM.Log:INFO Can&#39;t find method for class ch.qos.logback.classic.AsyncAppender setNeverBlock true Wed Aug 06 09:00:46 CST 2025 config-client&#39;s ModuleClassLoader JM.Log:INFO Init JM logger with Slf4jLoggerFactory success, config-client&#39;s ModuleClassLoader Wed Aug 06 09:00:46 CST 2025 config-client&#39;s ModuleClassLoader JM.Log:INFO Log root path: C:\Users\Lplayer\logs\ 09:00:46.888 [HSF-Framework-ExportRefer-14-thread-1] INFO ConfigClientLogger - [] [] [] JM_CC_LOG_RETAIN_COUNT:6, JM_LOG_FILE_SIZE:200MB Wed Aug 06 09:00:46 CST 2025 config-client&#39;s ModuleClassLoader JM.Log:INFO Set configclient log path: C:\Users\Lplayer\logs\configclient 2025-08-06 09:00:49.973 INFO 3324 --- [ main] trationDelegate$BeanPostProcessorChecker : Bean &#39;queryAdmdvsService&#39; of type [com.taobao.hsf.app.spring.util.HSFSpringConsumerBean] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) 2025-08-06 09:00:52.994 INFO 3324 --- [ main] trationDelegate$BeanPostProcessorChecker : Bean &#39;queryDataDicService&#39; of type [com.taobao.hsf.app.spring.util.HSFSpringConsumerBean] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) 2025-08-06 09:00:56.018 INFO 3324 --- [ main] trationDelegate$BeanPostProcessorChecker : Bean &#39;roleAuthInfoService&#39; of type [com.taobao.hsf.app.spring.util.HSFSpringConsumerBean] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) 2025-08-06 09:00:59.040 INFO 3324 --- [ main] trationDelegate$BeanPostProcessorChecker : Bean &#39;admrolService&#39; of type [com.taobao.hsf.app.spring.util.HSFSpringConsumerBean] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) 2025-08-06 09:01:02.062 INFO 3324 --- [ main] trationDelegate$BeanPostProcessorChecker : Bean &#39;orguntService&#39; of type [com.taobao.hsf.app.spring.util.HSFSpringConsumerBean] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) 2025-08-06 09:01:05.082 INFO 3324 --- [ main] trationDelegate$BeanPostProcessorChecker : Bean &#39;unitService&#39; of type [com.taobao.hsf.app.spring.util.HSFSpringConsumerBean] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) 2025-08-06 09:01:08.103 INFO 3324 --- [ main] trationDelegate$BeanPostProcessorChecker : Bean &#39;userService&#39; of type [com.taobao.hsf.app.spring.util.HSFSpringConsumerBean] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) 2025-08-06 09:01:11.121 INFO 3324 --- [ main] trationDelegate$BeanPostProcessorChecker : Bean &#39;sysUactService&#39; of type [com.taobao.hsf.app.spring.util.HSFSpringConsumerBean] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) 2025-08-06 09:01:14.146 INFO 3324 --- [ main] trationDelegate$BeanPostProcessorChecker : Bean &#39;resuService&#39; of type [com.taobao.hsf.app.spring.util.HSFSpringConsumerBean] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) 2025-08-06 09:01:17.170 INFO 3324 --- [ main] trationDelegate$BeanPostProcessorChecker : Bean &#39;bizrolService&#39; of type [com.taobao.hsf.app.spring.util.HSFSpringConsumerBean] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) 2025-08-06 09:01:20.193 INFO 3324 --- [ main] trationDelegate$BeanPostProcessorChecker : Bean &#39;publicFeedetlChkDetMgtService&#39; of type [com.taobao.hsf.app.spring.util.HSFSpringConsumerBean] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) 2025-08-06 09:01:20.270 INFO 3324 --- [ main] trationDelegate$BeanPostProcessorChecker : Bean &#39;org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration&#39; of type [org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration$$EnhancerBySpringCGLIB$$c0faccb5] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) 2025-08-06 09:01:20.378 INFO 3324 --- [ main] trationDelegate$BeanPostProcessorChecker : Bean &#39;redisConfig&#39; of type [com.insigma.web.support.redis.RedisConfig$$EnhancerBySpringCGLIB$$20be0ef0] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) 2025-08-06 09:01:20.401 INFO 3324 --- [ main] trationDelegate$BeanPostProcessorChecker : Bean &#39;multipleDataSourceConfig&#39; of type [com.insigma.hsaf.common.config.MultipleDataSourceConfig$$EnhancerBySpringCGLIB$$1e06f17d] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) 2025-08-06 09:01:20.432 INFO 3324 --- [ main] trationDelegate$BeanPostProcessorChecker : Bean &#39;spring.datasource-org.springframework.boot.autoconfigure.jdbc.DataSourceProperties&#39; of type [org.springframework.boot.autoconfigure.jdbc.DataSourceProperties] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) 2025-08-06 09:01:20.475 INFO 3324 --- [ main] trationDelegate$BeanPostProcessorChecker : Bean &#39;com.alibaba.druid.spring.boot.autoconfigure.stat.DruidFilterConfiguration&#39; of type [com.alibaba.druid.spring.boot.autoconfigure.stat.DruidFilterConfiguration] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) 2025-08-06 09:01:20.492 INFO 3324 --- [ main] trationDelegate$BeanPostProcessorChecker : Bean &#39;statFilter&#39; of type [com.alibaba.druid.filter.stat.StatFilter] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) 2025-08-06 09:01:20.597 INFO 3324 --- [ main] trationDelegate$BeanPostProcessorChecker : Bean &#39;wallConfig&#39; of type [com.alibaba.druid.wall.WallConfig] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) 2025-08-06 09:01:20.616 INFO 3324 --- [ main] trationDelegate$BeanPostProcessorChecker : Bean &#39;wallFilter&#39; of type [com.alibaba.druid.wall.WallFilter] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) 2025-08-06 09:01:20.676 INFO 3324 --- [ main] trationDelegate$BeanPostProcessorChecker : Bean &#39;slf4jLogFilter&#39; of type [com.alibaba.druid.filter.logging.Slf4jLogFilter] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) Wed Aug 06 09:01:20 CST 2025 WARN: Establishing SSL connection without server&#39;s identity verification is not recommended. According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connection must be established by default if explicit option isn&#39;t set. For compliance with existing applications not using SSL the verifyServerCertificate property is set to &#39;false&#39;. You need either to explicitly disable SSL by setting useSSL=false, or set useSSL=true and provide truststore for server certificate verification. Wed Aug 06 09:01:20 CST 2025 WARN: Establishing SSL connection without server&#39;s identity verification is not recommended. According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connection must be established by default if explicit option isn&#39;t set. For compliance with existing applications not using SSL the verifyServerCertificate property is set to &#39;false&#39;. You need either to explicitly disable SSL by setting useSSL=false, or set useSSL=true and provide truststore for server certificate verification. Wed Aug 06 09:01:20 CST 2025 WARN: Establishing SSL connection without server&#39;s identity verification is not recommended. According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connection must be established by default if explicit option isn&#39;t set. For compliance with existing applications not using SSL the verifyServerCertificate property is set to &#39;false&#39;. You need either to explicitly disable SSL by setting useSSL=false, or set useSSL=true and provide truststore for server certificate verification. Wed Aug 06 09:01:20 CST 2025 WARN: Establishing SSL connection without server&#39;s identity verification is not recommended. According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connection must be established by default if explicit option isn&#39;t set. For compliance with existing applications not using SSL the verifyServerCertificate property is set to &#39;false&#39;. You need either to explicitly disable SSL by setting useSSL=false, or set useSSL=true and provide truststore for server certificate verification. Wed Aug 06 09:01:21 CST 2025 WARN: Establishing SSL connection without server&#39;s identity verification is not recommended. According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connection must be established by default if explicit option isn&#39;t set. For compliance with existing applications not using SSL the verifyServerCertificate property is set to &#39;false&#39;. You need either to explicitly disable SSL by setting useSSL=false, or set useSSL=true and provide truststore for server certificate verification. 2025-08-06 09:01:21.030 INFO 3324 --- [ main] com.alibaba.druid.pool.DruidDataSource : {dataSource-1} inited 2025-08-06 09:01:21.030 INFO 3324 --- [ main] trationDelegate$BeanPostProcessorChecker : Bean &#39;primaryDataSource&#39; of type [com.insigma.hsaf.common.config.MultipleDataSourceConfig$DruidDataSourceWrapper] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) 2025-08-06 09:01:21.074 INFO 3324 --- [ main] trationDelegate$BeanPostProcessorChecker : Bean &#39;org.springframework.boot.autoconfigure.jdbc.DataSourceInitializerInvoker&#39; of type [org.springframework.boot.autoconfigure.jdbc.DataSourceInitializerInvoker] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) 2025-08-06 09:01:21.086 INFO 3324 --- [ main] trationDelegate$BeanPostProcessorChecker : Bean &#39;spring.jdbc-org.springframework.boot.autoconfigure.jdbc.JdbcProperties&#39; of type [org.springframework.boot.autoconfigure.jdbc.JdbcProperties] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) 2025-08-06 09:01:21.087 INFO 3324 --- [ main] trationDelegate$BeanPostProcessorChecker : Bean &#39;org.springframework.boot.autoconfigure.jdbc.JdbcTemplateAutoConfiguration$JdbcTemplateConfiguration&#39; of type [org.springframework.boot.autoconfigure.jdbc.JdbcTemplateAutoConfiguration$JdbcTemplateConfiguration$$EnhancerBySpringCGLIB$$d985fb22] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) 2025-08-06 09:01:21.097 INFO 3324 --- [ main] trationDelegate$BeanPostProcessorChecker : Bean &#39;jdbcTemplate&#39; of type [org.springframework.jdbc.core.JdbcTemplate] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) 2025-08-06 09:01:21.117 INFO 3324 --- [ main] trationDelegate$BeanPostProcessorChecker : Bean &#39;odinLogServiceImpl&#39; of type [com.insigma.framework.log.service.impl.OdinLogServiceImpl] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) 2025-08-06 09:01:21.136 INFO 3324 --- [ main] trationDelegate$BeanPostProcessorChecker : Bean &#39;odinLogAspect&#39; of type [com.insigma.framework.log.OdinLogAspect] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) 2025-08-06 09:01:21.144 INFO 3324 --- [ main] trationDelegate$BeanPostProcessorChecker : Bean &#39;org.springframework.cloud.autoconfigure.ConfigurationPropertiesRebinderAutoConfiguration&#39; of type [org.springframework.cloud.autoconfigure.ConfigurationPropertiesRebinderAutoConfiguration$$EnhancerBySpringCGLIB$$dd14cfb2] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) 2025-08-06 09:01:21.458 INFO 3324 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat initialized with port(s): 9100 (http) 八月 06, 2025 9:01:21 上午 org.apache.coyote.AbstractProtocol init 信息: Initializing ProtocolHandler [&quot;http-nio-9100&quot;] log4j:WARN No appenders could be found for logger (org.apache.coyote.http11.Http11NioProtocol). log4j:WARN Please initialize the log4j system properly. log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info. 八月 06, 2025 9:01:21 上午 org.apache.catalina.core.StandardService startInternal 信息: Starting service [Tomcat] 八月 06, 2025 9:01:21 上午 org.apache.catalina.core.StandardEngine startInternal 信息: Starting Servlet engine: [Apache Tomcat/9.0.17] 八月 06, 2025 9:01:21 上午 org.apache.catalina.core.AprLifecycleListener lifecycleEvent 信息: Loaded APR based Apache Tomcat Native library [1.3.1] using APR version [1.7.4]. 八月 06, 2025 9:01:21 上午 org.apache.catalina.core.AprLifecycleListener lifecycleEvent 信息: APR capabilities: IPv6 [true], sendfile [true], accept filters [false], random [true]. 八月 06, 2025 9:01:21 上午 org.apache.catalina.core.AprLifecycleListener lifecycleEvent 信息: APR/OpenSSL configuration: useAprConnector [false], useOpenSSL [true] 八月 06, 2025 9:01:21 上午 org.apache.catalina.core.AprLifecycleListener initializeSSL 信息: OpenSSL successfully initialized [OpenSSL 3.0.14 4 Jun 2024] 八月 06, 2025 9:01:21 上午 org.apache.catalina.core.ApplicationContext log 信息: Initializing Spring embedded WebApplicationContext 2025-08-06 09:01:21.555 INFO 3324 --- [ main] o.s.web.context.ContextLoader : Root WebApplicationContext: initialization completed in 42560 ms 2025-08-06 09:01:21.567 INFO 3324 --- [ main] c.i.f.system.safety.SysSafetyProperties : sql: SysSafetyProperties.SQL(badstr=null) System is starting! UTF-8:一个汉字的字节数为:3 2025-08-06 09:01:22.651 INFO 3324 --- [ main] c.i.o.f.safe.validate.SignatureValidate : li: anytomcat2023-03-04anyunlimitedinsiisunlimited安徽省医保核心配置文件anyWindowsTf-c4-d3-UZ-d3-1646357567308502[][]10安徽省医保(核三框架)DEVELOP[{}]rule=0, version=6.0delay=0, extend=, format=2, product=insiis, release=1.0 2025-08-06 09:01:22.652 INFO 3324 --- [ main] c.i.o.f.safe.validate.SignatureValidate : 9180cd3c218c8736c1a23333546bff22f4017978 2025-08-06 09:01:22.666 INFO 3324 --- [ main] c.i.o.f.safe.ValidateContExecute : Apache Tomcat/9.0.17 您的核心配置文件已经失效测!请及时更换。Your core config have expired! Please update it! 2025-08-06 09:01:23.038 INFO 3324 --- [ main] c.i.o.f.safe.ValidateContExecute : IP: [127.0.0.1, 0:0:0:0:0:0:0:1, fe80:0:0:0:cb88:c7b3:57ec:13b3%eth3, fe80:0:0:0:6d46:2122:72d0:9648%eth4, 10.66.242.118, fe80:0:0:0:b0b9:6640:37a:c4b2%eth5, fe80:0:0:0:83dc:74e7:38e:235b%eth7, fe80:0:0:0:fc5c:c0e0:f227:7889%wlan0, 192.168.18.1, fe80:0:0:0:b714:55b0:2962:c0f2%eth9, 192.168.163.1, fe80:0:0:0:d554:a3f0:a6ea:47d3%eth10, fe80:0:0:0:aed2:bc06:dc31:db57%wlan1, 192.168.83.243, 240e:45a:48d:67c2:6dbd:62cf:5eda:307c, 240e:45a:48d:67c2:fddf:2d50:d7db:573f, fe80:0:0:0:2dc6:6f4:b194:de03%wlan2] 2025-08-06 09:01:23.038 INFO 3324 --- [ main] c.i.o.f.safe.ValidateContExecute : CPU core: 20 2025-08-06 09:01:23.039 INFO 3324 --- [ main] c.i.o.f.safe.ValidateContExecute : Windows 11 10.0 2025-08-06 09:01:23.100 INFO 3324 --- [ main] c.i.o.f.safe.ValidateContExecute : Computer MAC: [] 2025-08-06 09:01:23.409 INFO 3324 --- [ main] o.hibernate.jpa.internal.util.LogHelper : HHH000204: Processing PersistenceUnitInfo [ name: default ...] 2025-08-06 09:01:23.476 INFO 3324 --- [ main] org.hibernate.Version : HHH000412: Hibernate Core {5.0.12.Final} 2025-08-06 09:01:23.478 INFO 3324 --- [ main] org.hibernate.cfg.Environment : HHH000206: hibernate.properties not found 2025-08-06 09:01:23.479 INFO 3324 --- [ main] org.hibernate.cfg.Environment : HHH000021: Bytecode provider name : javassist 2025-08-06 09:01:23.522 INFO 3324 --- [ main] o.hibernate.annotations.common.Version : HCANN000001: Hibernate Commons Annotations {5.0.1.Final} 2025-08-06 09:01:23.613 INFO 3324 --- [ main] org.hibernate.dialect.Dialect : HHH000400: Using dialect: org.hibernate.dialect.MySQL5InnoDBDialect 2025-08-06 09:01:23.775 WARN 3324 --- [ main] org.hibernate.id.UUIDHexGenerator : HHH000409: Using org.hibernate.id.UUIDHexGenerator which does not generate IETF RFC 4122 compliant UUID values; consider using org.hibernate.id.UUIDGenerator instead 2025-08-06 09:01:24.127 INFO 3324 --- [ main] j.LocalContainerEntityManagerFactoryBean : Initialized JPA EntityManagerFactory for persistence unit &#39;default&#39; 2025-08-06 09:01:25.142 INFO 3324 --- [ main] io.lettuce.core.EpollProvider : Starting without optional epoll library 2025-08-06 09:01:25.143 INFO 3324 --- [ main] io.lettuce.core.KqueueProvider : Starting without optional kqueue library 2025-08-06 09:01:26.137 INFO 3324 --- [ main] c.i.h.c.a.cache.AdmdvsDimCacheManager : init admdvsDim Start 2025-08-06 09:01:27.066 INFO 3324 --- [ main] c.i.h.c.a.cache.AdmdvsDimCacheManager : init admdvsDim End 2025-08-06 09:01:27.635 INFO 3324 --- [ main] o.h.h.i.QueryTranslatorFactoryInitiator : HHH000397: Using ASTQueryTranslatorFactory 2025-08-06 09:01:27.993 INFO 3324 --- [ main] com.alibaba.druid.pool.DruidDataSource : {dataSource-2} inited 2025-08-06 09:01:28.092 INFO 3324 --- [ main] f.a.AutowiredAnnotationBeanPostProcessor : Autowired annotation is not supported on static fields: private static boolean com.insigma.sys.common.SysManageMode.tripleMode 2025-08-06 09:01:28.136 INFO 3324 --- [ main] com.insigma.sys.config.UEditorConfig : 读取UEditor配置文件成功! 2025-08-06 09:01:28.808 INFO 3324 --- [ main] c.i.hsa.common.base.job.CacheRefreshJob : begin refresh enforce dict cache ... 2025-08-06 09:01:28.809 INFO 3324 --- [ main] c.i.hsa.common.base.job.CacheRefreshJob : success refresh enforce dict cache ... 2025-08-06 09:01:28.809 INFO 3324 --- [ main] c.i.hsa.common.base.job.CacheRefreshJob : begin refresh enforce admdvsDim cache ... 2025-08-06 09:01:28.815 INFO 3324 --- [ main] c.i.h.c.a.cache.AdmdvsDimCacheManager : init admdvsDim Start 2025-08-06 09:01:29.615 INFO 3324 --- [ main] c.i.h.c.a.cache.AdmdvsDimCacheManager : init admdvsDim End 2025-08-06 09:01:29.615 INFO 3324 --- [ main] c.i.hsa.common.base.job.CacheRefreshJob : success refresh enforce admdvsDim cache ... 2025-08-06 09:01:29.627 INFO 3324 --- [ main] f.a.AutowiredAnnotationBeanPostProcessor : Autowired annotation is not supported on static methods: public static void com.insigma.hsa.common.excel.ExcelUtils.setPageSize(int) 2025-08-06 09:01:29.735 WARN 3324 --- [ main] c.i.framework.GlobalExceptionCollector : 没有找到公共服务异常统一管理方法[call4Exception],该功能将自动关闭! 2025-08-06 09:01:30.454 INFO 3324 --- [ main] o.s.s.concurrent.ThreadPoolTaskExecutor : Initializing ExecutorService &#39;applicationTaskExecutor&#39; 2025-08-06 09:01:30.519 WARN 3324 --- [ main] aWebConfiguration$JpaWebMvcConfiguration : spring.jpa.open-in-view is enabled by default. Therefore, database queries may be performed during view rendering. Explicitly configure spring.jpa.open-in-view to disable this warning Logging initialized using &#39;class org.apache.ibatis.logging.stdout.StdOutImpl&#39; adapter. 2025-08-06 09:01:31.239 INFO 3324 --- [ main] .s.s.UserDetailsServiceAutoConfiguration : Using generated security password: f0640dd2-67b8-4024-bdd5-51708f0024e3 2025-08-06 09:01:31.321 INFO 3324 --- [ main] o.s.s.web.DefaultSecurityFilterChain : Creating filter chain: org.springframework.security.web.util.matcher.AnyRequestMatcher@1, [org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter@34fd82cd, org.springframework.security.web.context.SecurityContextPersistenceFilter@18010665, org.springframework.security.web.header.HeaderWriterFilter@2e41e742, org.springframework.security.web.authentication.logout.LogoutFilter@203b2f14, com.insigma.hsaf.security.web.support.SSOUserContextFilter@28d38918, org.springframework.security.web.savedrequest.RequestCacheAwareFilter@19f1d1d, org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter@2a5b5e33, org.springframework.security.web.authentication.AnonymousAuthenticationFilter@14029881, org.springframework.security.web.session.SessionManagementFilter@307d7688, org.springframework.security.web.access.ExceptionTranslationFilter@5e09b1a6, org.springframework.security.web.access.intercept.FilterSecurityInterceptor@ddbbb82] 2025-08-06 09:01:31.325 INFO 3324 --- [ main] o.s.s.web.DefaultSecurityFilterChain : Creating filter chain: org.springframework.security.web.util.matcher.AnyRequestMatcher@1, [org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter@1925b878, org.springframework.security.web.context.SecurityContextPersistenceFilter@e449c7c, org.springframework.security.web.header.HeaderWriterFilter@4464aae2, org.springframework.security.web.authentication.logout.LogoutFilter@247dd07, org.springframework.security.web.savedrequest.RequestCacheAwareFilter@112d42ba, org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter@707fc9c7, org.springframework.security.web.authentication.AnonymousAuthenticationFilter@7f9b0fb, org.springframework.security.web.session.SessionManagementFilter@238a281f, org.springframework.security.web.access.ExceptionTranslationFilter@63ff8137, org.springframework.security.web.access.intercept.FilterSecurityInterceptor@61a5226d] 2025-08-06 09:01:32.445 INFO 3324 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat initialized with port(s): 7099 (http) 2025-08-06 09:01:32.451 INFO 3324 --- [ main] o.s.web.context.ContextLoader : Root WebApplicationContext: initialization completed in 81 ms 八月 06, 2025 9:01:32 上午 org.apache.coyote.AbstractProtocol init 信息: Initializing ProtocolHandler [&quot;http-nio-7099&quot;] 八月 06, 2025 9:01:32 上午 org.apache.catalina.core.StandardService startInternal 信息: Starting service [Tomcat] 八月 06, 2025 9:01:32 上午 org.apache.catalina.core.StandardEngine startInternal 信息: Starting Servlet engine: [Apache Tomcat/9.0.17] 八月 06, 2025 9:01:32 上午 org.apache.catalina.core.ApplicationContext log 信息: Initializing Spring embedded WebApplicationContext 2025-08-06 09:01:32.465 INFO 3324 --- [ main] o.s.b.a.e.web.EndpointLinksResolver : Exposing 2 endpoint(s) beneath base path &#39;/actuator&#39; 2025-08-06 09:01:32.501 INFO 3324 --- [ool-20-thread-1] c.i.h.c.d.impl.DataDicLocalServiceImpl : DataDicLocalServiceImpl---------getDataDict--------start 八月 06, 2025 9:01:32 上午 org.apache.coyote.AbstractProtocol start 信息: Starting ProtocolHandler [&quot;http-nio-7099&quot;] 2025-08-06 09:01:32.541 INFO 3324 --- [ool-20-thread-1] c.i.h.c.d.impl.DataDicLocalServiceImpl : 配置的字典编码.size=0 2025-08-06 09:01:32.557 INFO 3324 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port(s): 7099 (http) with context path &#39;&#39; 2025-08-06 09:01:32.574 INFO 3324 --- [ool-20-thread-1] c.i.hsa.common.dict.DataDictManager : 加载字典数=1160 2025-08-06 09:01:33.165 INFO 3324 --- [ main] s.a.ScheduledAnnotationBeanPostProcessor : No TaskScheduler/ScheduledExecutorService bean found for scheduled processing 2025-08-06 09:01:33.173 INFO 3324 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port(s): 9100 (http) with context path &#39;/insiis7-enforce&#39; 2025-08-06 09:01:33.175 INFO 3324 --- [ main] com.insigma.InsiisWebApplication : Started InsiisWebApplication in 57.123 seconds (JVM running for 67.713) 八月 06, 2025 9:01:33 上午 org.apache.coyote.AbstractProtocol start 信息: Starting ProtocolHandler [&quot;http-nio-9100&quot;] 2025-08-06 09:01:33.205 INFO 3324 --- [ main] c.i.b.send.server.init.InitServer : 初始化结果en:false Service(pandora boot) startup in 61482 ms 2025-08-06 09:01:33.786 INFO 3324 --- [ool-21-thread-1] c.i.h.c.region.service.PoolareaManager : 加载统筹区数据! 2025-08-06 09:01:33.908 INFO 3324 --- [ool-21-thread-1] c.i.h.c.region.service.PoolareaManager : 加载和缓存所有统筹区完毕!queryResult.size=4478 2025-08-06 09:01:33.943 INFO 3324 --- [ool-21-thread-1] c.i.h.c.region.service.PoolareaManager : 加载统筹区数据完毕!highest.size=469,groupResult.size=373 Wed Aug 06 09:01:34 CST 2025 WARN: Establishing SSL connection without server&#39;s identity verification is not recommended. According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connection must be established by default if explicit option isn&#39;t set. For compliance with existing applications not using SSL the verifyServerCertificate property is set to &#39;false&#39;. You need either to explicitly disable SSL by setting useSSL=false, or set useSSL=true and provide truststore for server certificate verification. 八月 06, 2025 9:01:34 上午 org.apache.catalina.core.ApplicationContext log 信息: Initializing Spring DispatcherServlet &#39;dispatcherServlet&#39; 2025-08-06 09:01:34.244 INFO 3324 --- [)-10.66.242.118] o.s.web.servlet.DispatcherServlet : Initializing Servlet &#39;dispatcherServlet&#39; 2025-08-06 09:01:34.256 INFO 3324 --- [)-10.66.242.118] o.s.web.servlet.DispatcherServlet : Completed initialization in 12 ms Wed Aug 06 09:01:34 CST 2025 WARN: Establishing SSL connection without server&#39;s identity verification is not recommended. According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connection must be established by default if explicit option isn&#39;t set. For compliance with existing applications not using SSL the verifyServerCertificate property is set to &#39;false&#39;. You need either to explicitly disable SSL by setting useSSL=false, or set useSSL=true and provide truststore for server certificate verification. Wed Aug 06 09:01:34 CST 2025 WARN: Establishing SSL connection without server&#39;s identity verification is not recommended. According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connection must be established by default if explicit option isn&#39;t set. For compliance with existing applications not using SSL the verifyServerCertificate property is set to &#39;false&#39;. You need either to explicitly disable SSL by setting useSSL=false, or set useSSL=true and provide truststore for server certificate verification. Wed Aug 06 09:01:34 CST 2025 WARN: Establishing SSL connection without server&#39;s identity verification is not recommended. According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connection must be established by default if explicit option isn&#39;t set. For compliance with existing applications not using SSL the verifyServerCertificate property is set to &#39;false&#39;. You need either to explicitly disable SSL by setting useSSL=false, or set useSSL=true and provide truststore for server certificate verification. Wed Aug 06 09:01:34 CST 2025 WARN: Establishing SSL connection without server&#39;s identity verification is not recommended. According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connection must be established by default if explicit option isn&#39;t set. For compliance with existing applications not using SSL the verifyServerCertificate property is set to &#39;false&#39;. You need either to explicitly disable SSL by setting useSSL=false, or set useSSL=true and provide truststore for server certificate verification. 2025-08-06 09:01:34.363 INFO 3324 --- [)-10.66.242.118] com.alibaba.druid.pool.DruidDataSource : {dataSource-3} inited 2025-08-06 09:01:35.750 INFO 3324 --- [ool-21-thread-1] c.i.h.c.admdvs.bo.impl.AdmdvsBOImpl : 加载行政区划数据... 2025-08-06 09:01:35.778 INFO 3324 --- [ool-21-thread-1] c.i.h.c.admdvs.bo.impl.AdmdvsBOImpl : 行政区划数据缓存完毕!省份数=1,地市数=1,区县数=17 2025-08-06 09:04:28.806 INFO 3324 --- [nio-9100-exec-9] c.i.h.s.w.support.SSOUserContextFilter : in SSOUserContextFilter! securitytype is hsa-sso-mock 2025-08-06 09:04:28.806 INFO 3324 --- [nio-9100-exec-3] c.i.h.s.w.support.SSOUserContextFilter : in SSOUserContextFilter! securitytype is hsa-sso-mock 2025-08-06 09:04:28.806 INFO 3324 --- [nio-9100-exec-1] c.i.h.s.w.support.SSOUserContextFilter : in SSOUserContextFilter! securitytype is hsa-sso-mock 2025-08-06 09:04:28.829 INFO 3324 --- [nio-9100-exec-9] c.i.f.w.s.web.RepeatRequestFilter : ===repeat=false=== 2025-08-06 09:04:28.829 INFO 3324 --- [nio-9100-exec-3] c.i.f.w.s.web.RepeatRequestFilter : ===repeat=false=== 2025-08-06 09:04:28.830 INFO 3324 --- [nio-9100-exec-1] c.i.f.w.s.web.RepeatRequestFilter : ===repeat=false=== Hibernate: select sysmenu0_.functionid as function1_7_, sysmenu0_.active as active2_7_, sysmenu0_.auflag as auflag3_7_, sysmenu0_.description as descript4_7_, sysmenu0_.developer as develope5_7_, sysmenu0_.digest as digest6_7_, sysmenu0_.funcode as funcode7_7_, sysmenu0_.funorder as funorder8_7_, sysmenu0_.funtype as funtype9_7_, sysmenu0_.icon as icon10_7_, sysmenu0_.idpath as idpath11_7_, sysmenu0_.islog as islog12_7_, sysmenu0_.location as locatio13_7_, sysmenu0_.nodetype as nodetyp14_7_, sysmenu0_.parentid as parenti15_7_, sysmenu0_.rbflag as rbflag16_7_, sysmenu0_.slevel as slevel17_7_, sysmenu0_.title as title18_7_ from SYSFUNCTION sysmenu0_ order by sysmenu0_.funorder 2025-08-06 09:04:31.567 INFO 3324 --- [nio-9100-exec-2] c.i.h.s.w.support.SSOUserContextFilter : in SSOUserContextFilter! securitytype is hsa-sso-mock 2025-08-06 09:04:31.569 INFO 3324 --- [nio-9100-exec-2] c.i.f.w.s.web.RepeatRequestFilter : ===repeat=false=== Hibernate: select sysmenu0_.functionid as function1_7_, sysmenu0_.active as active2_7_, sysmenu0_.auflag as auflag3_7_, sysmenu0_.description as descript4_7_, sysmenu0_.developer as develope5_7_, sysmenu0_.digest as digest6_7_, sysmenu0_.funcode as funcode7_7_, sysmenu0_.funorder as funorder8_7_, sysmenu0_.funtype as funtype9_7_, sysmenu0_.icon as icon10_7_, sysmenu0_.idpath as idpath11_7_, sysmenu0_.islog as islog12_7_, sysmenu0_.location as locatio13_7_, sysmenu0_.nodetype as nodetyp14_7_, sysmenu0_.parentid as parenti15_7_, sysmenu0_.rbflag as rbflag16_7_, sysmenu0_.slevel as slevel17_7_, sysmenu0_.title as title18_7_ from SYSFUNCTION sysmenu0_ order by sysmenu0_.funorder 2025-08-06 09:04:31.570 INFO 3324 --- [nio-9100-exec-6] c.i.h.s.w.support.SSOUserContextFilter : in SSOUserContextFilter! securitytype is hsa-sso-mock 2025-08-06 09:04:31.570 INFO 3324 --- [io-9100-exec-10] c.i.h.s.w.support.SSOUserContextFilter : in SSOUserContextFilter! securitytype is hsa-sso-mock 2025-08-06 09:04:31.572 INFO 3324 --- [io-9100-exec-10] c.i.f.w.s.web.RepeatRequestFilter : ===repeat=false=== 2025-08-06 09:04:31.572 INFO 3324 --- [nio-9100-exec-6] c.i.f.w.s.web.RepeatRequestFilter : ===repeat=false=== 为什么运行不结束
最新发布
08-07
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Arm精选

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值