Apusic文档中心
首页
  • 应用服务器 AAS
  • 负载均衡器 ALB
  • 分布式消息队列 ADMQ
  • 分布式缓存 AMDC
  • 分布式配置中心 ADCC
  • Java开发工具包软件 AJDK
  • 搜索引擎 ASE
  • 中间件云平台 ACP
  • 统一管理平台 AUMP
  • 云原生中间件管理 ACMP
  • DevOps平台 ADOP
  • 许可授权中心 ACLS
  • Copilot智能问答系统 ACS
  • 监控平台 AMP
  • 智能日志 AILP
  • 应用性能管理 AAPM
  • 智能告警 AAlarm
  • 金蝶Apusic AI 极光
  • 主数据管理 AMDM
  • 数据交换平台 ADXP
  • 企业服务总线 AESB
  • 数据智脑 ADPR
  • 服务治理 ASGP
  • 统一身份管理 AIDM
  • 标准模板
  • Markdown教程 (opens new window)
  • VuePress官方社区 (opens new window)
  • 帮助
贡献文档 (opens new window)
首页
  • 应用服务器 AAS
  • 负载均衡器 ALB
  • 分布式消息队列 ADMQ
  • 分布式缓存 AMDC
  • 分布式配置中心 ADCC
  • Java开发工具包软件 AJDK
  • 搜索引擎 ASE
  • 中间件云平台 ACP
  • 统一管理平台 AUMP
  • 云原生中间件管理 ACMP
  • DevOps平台 ADOP
  • 许可授权中心 ACLS
  • Copilot智能问答系统 ACS
  • 监控平台 AMP
  • 智能日志 AILP
  • 应用性能管理 AAPM
  • 智能告警 AAlarm
  • 金蝶Apusic AI 极光
  • 主数据管理 AMDM
  • 数据交换平台 ADXP
  • 企业服务总线 AESB
  • 数据智脑 ADPR
  • 服务治理 ASGP
  • 统一身份管理 AIDM
  • 标准模板
  • Markdown教程 (opens new window)
  • VuePress官方社区 (opens new window)
  • 帮助
贡献文档 (opens new window)
文档中心
  • 金蝶Apusic应用服务器

    • 产品白皮书
    • 产品更新说明
    • Product Whitepaper
    • 產品白皮書
    • V10.0.8SP12标准版

    • V10.0.8SP12标准版_繁體

    • V10.0.8SP12标准版_EN

      • Installation and Deployment
      • Quick Start
      • User Manual
      • Console User Manual
      • Command Line Operation Guide
      • Monitoring Metrics
      • API Documentation
      • Release Notes
    • V10.0.8SP11企业版

    • V10.0.8SP11标准版

    • V10.0.8SP10企业版

    • V10.0.8SP9企业版

    • V10.0.8SP9标准版

    • V10.0.8SP8企业版

    • V10.0.8SP8标准版

    • V10.0.8SP9智能安全版

    • V9.0.0SP9企业版

    • V9.0.0SP8企业版

    • V10.0.8SP8国际版

    • V10.0.10标准版

    • V10.0.10SP1企业版

    • V10.0.11标准版

    • 迁移工具V1.0

    • 金蝶Apusic应用迁移工具

  • 金蝶Apusic负载均衡器

  • 金蝶Apusic分布式消息队列

  • 金蝶Apusic分布式缓存

  • 金蝶Apusic分布式配置中心

  • 金蝶Apusic Java开发工具包软件

  • 金蝶Apusic全文检索

Console User Manual

# Preface

This document is the console user manual for Kingdee Apusic Application Server V10 Standard Edition. It describes the installation and configuration of the Standard Edition in detail, and provides basic operation methods and step-by-step instructions for each feature.

# Intended Audience

This manual is intended for developers who build applications on Kingdee Apusic Application Server, system administrators of production environments, application release engineers, and technical operations staff. The following skills will help you better understand and use this manual:

  • Familiarity with common Linux commands
  • Basic system administration tasks
  • Installing and managing software

# Related Documentation

For more information about AAS-V10 Standard Edition, refer to the following AAS-V10 product documentation set:

No.DocumentationDescription
1Kingdee Apusic Application Server V10 Standard Edition Installation GuideProvides detailed instructions on how to install AAS on various operating systems, as well as AAS service start/stop operations and the product registration process
2Kingdee Apusic Application Server V10 Standard Edition Quick Start GuideBriefly introduces how to quickly get started with AAS
3Kingdee Apusic Application Server V10 Standard Edition User ManualProvides detailed instructions on the usage and operation of AAS-related features, guiding users through system installation and deployment, feature operations, parameter configuration, daily operations and maintenance, and troubleshooting
4Kingdee Apusic Application Server V10 Standard Edition Administration Console User ManualProvides detailed instructions on the usage and operation of AAS Administration Console features, guiding users to perform operations through the visual administration console
5Kingdee Apusic Application Server V10 Standard Edition Command-Line Operation GuideProvides detailed instructions on how to operate and use AAS through the command line
6Kingdee Apusic Application Server V10 Standard Edition Monitoring Metrics DocumentationProvides detailed descriptions of various types of AAS monitoring metrics
7Kingdee Apusic Application Server V10 Standard Edition API DocumentationProvides detailed information about AAS APIs

# Technical Support

Kingdee Apusic Application Server products come with comprehensive technical support services. You can obtain technical support in the following ways:

  • Website: www.apusic.com
  • Phone: 400-855-5800
  • Email: support@apusic.com
  • Kingdee Cloud Community: https://vip.kingdee.com/?productId=73&productLineId=14&lang=zh-CN

When requesting technical support, please provide the following information:

  1. Your name
  2. Company information and contact details
  3. Operating system and version
  4. Product version number
  5. Logs, screenshots, and other details of the exception or error

# Version History

This manual is updated in step with actual product updates. The latest version includes the content of previous versions or provides corresponding notes on modifications.

DateManual VersionProductUpdate Notes
September 2026V10P12A02F01AAS Standard Edition V10Added management console operation instructions

# Product Introduction

# Overview

Kingdee Apusic Application Server V10 Standard Edition is a web application server that supports the Jakarta EE specifications and the latest Servlet and JSP specifications. With advanced technology, stable performance, and a lightweight design, Kingdee Apusic Application Server V10 Standard Edition responds quickly to ever-changing business requirements and is an excellent choice for efficient application system development.

Figure 1: Kingdee Apusic Application Server V10 Standard Edition architecture

# Platform Environment

Platform environment of Kingdee Apusic Application Server V10 Standard Edition.

Table 1: Platform environment of Kingdee Apusic Application Server V10 Standard Edition

Operating SystemDescription
WindowsWindows 7, Windows 10, Windows Server
LinuxCentOS, Ubuntu, SUSE, Red Hat
Chinese domestic platformsGalaxy Kylin series, NeoKylin series, i-soft, Red Flag, Deepin, etc.

# System Environment

System environment of Kingdee Apusic Application Server V10 Standard Edition.

Table 2: System environment of Kingdee Apusic Application Server V10 Standard Edition

System ComponentRequirement
Java environmentJDK 8 or later; 8u252 or later is recommended for HTTP/2
MemoryAt least 512 MB of memory; 1024 MB or more is recommended
Disk spaceAt least 1024 MB of disk space; 10 GB or more is recommended
BrowserMicrosoft Edge 150+, Google Chrome 150+, Firefox 154+, 360 Browser 16+, etc.

# Jakarta EE Specifications

Product specifications of Kingdee Apusic Application Server V10 Standard Edition.

Table 3: Product specifications of Kingdee Apusic Application Server V10 Standard Edition

Specification/APIVersion
Servlet4.0
JSP2.3
Expression Language3.0
WebSocket1.1
​

# Terminology

AAS: Kingdee Apusic Application Server

AAMS-[aas_version]: product identifier of Kingdee Apusic Application Server Standard Edition

APUSIC_HOME: installation directory of Kingdee Apusic Application Server

# Product Package

The product installation package is usually packed as AAMS-[version].tar.gz or AAMS-[version].zip.

In this document, ${APUSIC_HOME} denotes the installation directory of the application server.

Table 4: Kingdee Apusic Application Server V10 Standard Edition product package

PackageDescription
AAMS-[version].zip/AAMS-[version].tar.gzInstallation package of Kingdee Apusic Application Server V10 Standard Edition

Description of the Kingdee Apusic Application Server V10 Standard Edition product package.

Table 5: Contents of the Kingdee Apusic Application Server V10 Standard Edition product package

FileDescription
binDirectory that contains the startup, shutdown, and other scripts of the application server
confDirectory that contains the configuration files of the application server
consoleDirectory where the management console of the application server resides
libDirectory that contains the JAR files of the application server
logsDefault directory for application server log files
pluginsDirectory that contains the application server plugins
storeData repository directory, the centralized storage location for all kinds of data
webappsDirectory where application packages are automatically deployed
webapps-consoleDirectory where application packages are deployed via the management console
webapps-jakartaDirectory where Jakarta EE-compliant application packages are deployed
tempDirectory for temporary files of the application server
workDirectory that stores the class files generated from JSP compilation
license.xmlLicense file of the product package

# License Authorization

AAS requires a valid license to work properly. Normally, Kingdee Apusic issues a matching license according to the product edition you purchased. If the product license is about to expire or has expired, request a new license from your Kingdee Apusic contact and send them the product fingerprint (auth code) at the same time.

The license file is located at ${APUSIC_HOME}/license.xml.

# Obtaining the Auth Code (Standard Edition)

  1. Run the apusic command in the bin directory in a format similar to:

apusic -ac [ethname or ip]

where [ethname or ip] is an IP address or the name of a network interface (MAC). For example, you can pass a common IP address such as 172.x.x.1 as the parameter to obtain the software auth code (works on Windows and Linux):

apusic -ac e.g. 172.x.x.1
1

The output format is as follows, where Auth Code= is the software auth code:

Auth Code=SZTY263537626
1

  1. You can also pass the name of a network interface to obtain the auth code (works on Linux; use ifconfig to list interface names)
apusic -ac ens192
1

The output format is as follows, where Auth Code= is the software auth code:

Auth Code=SZTY1640356587
1

# Obtaining the Auth Code (Embedded Deployment)

When AAS is embedded with Spring Boot, there is no apusic command for obtaining the auth code; you have to obtain it through your application.

If you have a temporary license file that allows the application to start, remove the license file first, then add the JVM parameter apusic-ac to the startup command. Its value is an IP address or network interface name, for example (eth3 is the interface name on the test machine; replace it according to your actual network configuration):

java -jar -Dapusic-ac=eth3 [your-application.jar].jar
1

Because no license file is present, the application startup will abort. Before it aborts, the auth code information is printed in a format similar to the following, where Auth Code= is the auth code:

Auth Code=SZTY263537626
license is invalid.
1
2

# Interpreting the Messages

  1. If an expired license file is used, the following message appears (log handler information omitted), indicating that the license has expired and showing the command for obtaining the auth code.
get auth code:apusic -ac [ip or ethname]
license is invalid,out of date.
1
2
  1. If the server is started with a wrong auth code, the following message appears (log handler information omitted):
get auth code:apusic -ac [ip or ethname]
license is invalid,ac not granted!SZTY263537626 [Apusic Application Server10]43
1
2

Here the trailing 43 is the version of the license file, the same as the lic_ver identifier of the original non-KBC license. If the identifier, product name, and product version are consistent, you can conclude that the auth code is wrong. You can also run apusic -ac XX to print the auth code and compare it, where XX is the IP address or network interface name used when applying for the auth code.

  1. If a license file of another product is used, for example starting Standard Edition v10.0 with a V10 Enterprise Edition license file, the following message appears:
get auth code:apusic -ac [ip or ethname]
license is invalid,ac not granted!SZTY263537626 [Apusic Application Server10]46
1
2

The 46 in the message indicates that this is a license file for V10.0 Enterprise Edition. The content in [] together with the actual media identifies the product as V10 Standard Edition, so startup fails.

The following message indicates that a license file of V9.0 Enterprise Edition was used (see the identifier character 4):

get auth code:apusic -ac [ip or ethname]
license is invalid,ac not granted!SZTY1640356587 [Apusic Application Server10]4
1
2

You can also run apusic -ac XX to print the auth code and compare it, where XX is the IP address or network interface name used when applying for the auth code.

  1. An auth code can only be generated on the local machine. For example, applying for another IP address is not supported and produces the message "ip not supported".

# Installation and Running

The following describes how to use Kingdee Apusic Application Server Standard Edition as a complete product. ${APUSIC_HOME} denotes the root directory of the product installation.

# Installing

Make sure JDK 8+ is installed before installation.

Extract AAMS-${version}.zip or AAMS-${version}.tar.gz into the ${APUSIC_HOME} directory, as shown in the following figure:

# Uninstalling

To uninstall the product, delete all files under the installation directory ${APUSIC_HOME}.

# Running

# On Linux

Place the application package file, for example test1.war, into the ${APUSIC_HOME}/webapps/ directory;

  1. Go to the installation directory ${APUSIC_HOME}/bin and run apusic.sh run.

  1. Go to the installation directory ${APUSIC_HOME}/bin and run startapusic.sh.

  2. To start in debug mode, set JPDA_OPTS in the startup script apusic.sh, for example:

JPDA_OPTS="-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=8000"
1

Then run apusic.sh jpda start.

# On Windows

Place the application package file, for example test1.war, into the ${APUSIC_HOME}\webapps\ directory;

  1. Go to the installation directory ${APUSIC_HOME}\bin and run apusic.bat run.

​

  1. Go to the installation directory ${APUSIC_HOME}\bin and run startapusic.bat.

  2. To start in debug mode, set JPDA_OPTS in the startup script apusic.bat, for example:

JPDA_OPTS=-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=8000
1

Then run apusic.bat jpda start.

It is recommended to first check that the default system encoding is UTF-8. If garbled text appears when starting on Windows, set the console log encoding to GBK in the conf/logging.properties file.

After the server starts, open http://<IP>:6888 in a browser, or http://localhost:6888 if you are on the local machine.

Port 6888 must be open before accessing the server.

The following page indicates a successful start:

# Stopping

# On Linux

1. Ctrl + C

When the server runs in the foreground, press Ctrl + C to exit and stop AAS.

2. stopapusic.sh

Go to the installation directory ${APUSIC_HOME}/bin and run stopapusic.sh.

3. kill the process

You can stop the server with kill [PID].

# On Windows

1. Ctrl + C

When the server runs in the foreground, press Ctrl + C to exit and stop AAS.

2. stopapusic.bat

Go to the installation directory ${APUSIC_HOME}\bin and run stopapusic.bat.

3. Stop the process

Open Task Manager, find the corresponding process, and stop it.

# Built-in Accounts and Roles

The application server management console implements RBAC-based separation-of-duties access control with three built-in roles: system administrator (sysadmin), security administrator (security), and auditor (auditor). These roles cannot be modified or deleted.

Role Core Responsibility Granted Feature Permissions
System administrator (sysadmin) System O&M and user creation Dashboard
Users: user creation / viewing, plus all permissions other than those of the security administrator and auditor
Security administrator (security) Owner of security policy and authorization Dashboard
Users: user viewing, user operations, authorization
Roles
Security Config: password policy configuration, audit log configuration, business configuration backup, email verification configuration, dynamic code (OTP) verification configuration
Auditor (auditor) Owner of operation supervision and audit Login Audit, Operation Audit, Dashboard

The system has three built-in default users:

  • admin: the default system administrator user, which cannot be deleted or modified
  • secure: the default security administrator user, which cannot be deleted or modified
  • audit: the default auditor user, which cannot be deleted or modified

The system forces a password change on first login. The following passwords are the initial passwords.

Account Password Role Notes
admin Apusic@123 System administrator Cannot be deleted/modified
secure Apusic@123 Security administrator Cannot be deleted/modified
audit Apusic@123 Auditor Cannot be deleted/modified

Internal system users and resources carry a security level (classification) label that controls which classified resources a user can access. Security levels fall into three grades:

  • Secret: involves generally sensitive information, accessible only to specifically authorized personnel.
  • Confidential: involves core business data, accessible only to higher-level authorized personnel.
  • Top Secret: involves the lifeline of the system or the highest secrets, accessible only to a very small number of core personnel.

A user must change the password on the first login; business operations are allowed only after the password is changed successfully.

# System Login and First Access

# Opening the Login Page

Visit the system address in a browser: http://127.0.0.1:6848/aas-console/login

image-20260625190909005

Page elements:

Element Description
Username Enter a system account, e.g. admin
Password Enter the corresponding password
Captcha Enter the random captcha code
Log In button Submit the login information

# Entering the Account and Password

Log in with the system administrator account:

  • Username: admin
  • Password: Apusic@123

Note: At login, the frontend encrypts the username and password with AES before transmitting them. If the captcha, email verification code, or OTP two-factor authentication is enabled, the login page displays the corresponding additional input field.

Note: Email verification and OTP two-factor authentication cannot be enabled at the same time; only one of them (or neither) can be enabled. After email verification is enabled, every user must set an email address in their personal profile.

# Forced Password Change on First Login

On the first login, the system forces a password change. Enter the old password, new password, and confirmation password, then click "Change". After a successful change you enter the home page.

The new password must comply with the system password policy (minimum length 8 characters, and it must contain at least 2 or 3 of the following character types: letters, digits, special characters).

image-20260625191354249

# OTP Two-Factor Binding (If Enabled)

If OTP is enabled for the system, after entering the username, password, and captcha you are taken to the second verification page, that is, the QR code binding page:

image-20260625183603270

Search for Authenticator in your mobile app store, download and install it, and then scan the QR code:

image-20260625184110787

After scanning the QR code, the app displays the account information AAS-Console; tap AAS-Console.

image-20260625184149965

The verification code is displayed:

image-20260625184339710

Then enter the verification code on the login page to log in.

# Email Two-Factor Binding (If Enabled)

If email verification is enabled for the system, enter the username and password, click the Send Verification Code button, and then enter the 6-digit code received by email:

Image_20260626165905


# Language Settings

The language settings feature configures the display language of the management console. It supports Simplified Chinese, Traditional Chinese, and English to meet multilingual O&M scenarios.

Click the language icon in the upper-right corner of the login page. The default is Simplified Chinese; click to switch languages:

Language settings properties:

SettingParameterDescription
LanguagelanguageDisplay language of the console. Valid values: single choice among Simplified Chinese (zh_CN), Traditional Chinese (zh_TW), and English (en); only one can be selected at a time. Default: Simplified Chinese (zh_CN).

# Dashboard

# Entering the Dashboard

After a successful login you enter the dashboard by default, which shows the core runtime information of the current Apusic Application Server instance.

image-20260708141628396

# System Overview Fields

Field Description Screenshot Example
Version Current Apusic server version 10.0.8.AE.SP12.ST
Process ID Operating system PID of the AAS main service 491838
Installation Directory Root directory where the server is deployed /home/user01/AAS/0920/AAMS-V10.0.8
Start Time Server startup timestamp 2026-09-20 16:49:37
JAVA Directory JDK installation path /home/user01/AAS/java/jdk8u504-b01/jre
Open Ports Set of HTTP/HTTPS/Shutdown listening ports 6848, 6888
Operating System Host operating system version Kylin Linux V10

# Page Areas

The dashboard uses a card-based modular layout with the following areas:

Area Description
System Overview Shows the version, process ID, installation directory, start time, JDK directory, open ports, and operating system
Application Information Lists deployed applications in a table with pagination; columns include Application Name, Context, Deployed At, and Actions
System Resources Shows CPU usage and memory usage
JVM Memory Shows heap memory and non-heap memory
HTTP Channels Shows active connections, average response time, current connections, and error connections
Data Source Information Shows connection pool name, current connections, idle connections, and connectivity
Session Information Shows new sessions, active sessions, and the default session timeout
Quick Navigation Quick links that jump to Deploy Application, Create Data Source, JVM Configuration, HTTP Channels, Log Viewer, and other feature pages

# Application Information Fields

Field Description
Application Name Logical name of the deployed application; click it to open the application edit page
Context Access path of the application
Status Running / Stopped
Actions Redeploy, Reload, Uninstall

# Quick Navigation

The right side or top of the dashboard provides quick links to frequently used features, such as Deploy Application, Create Data Source, JVM Configuration, HTTP Channels, and Log Viewer.


# Top Bar

# Global Search

Type a menu or feature name in the search box at the top to quickly locate it in the menu and jump to it.

image-20260623203255453

# License Information

Click the license icon in the upper-right corner, then click View License to show the license validity period, licensed user, and license type.

image-20260623203823718

Click Update License to upload a license file and update the license:

Note: The server must be restarted for a license update to take effect.

image-20260623203724256

Alternatively, enter the license content to update the license:

Note: The server must be restarted for a license update to take effect.

image-20260623203633865

# Restart Server

Click the "Restart Server" icon button in the top toolbar to restart the application server online. A "Confirm Server Restart" dialog appears, warning that services will be temporarily unavailable during the restart and all users will be forcibly logged out, with recovery expected in 30 seconds to 1 minute. Click "Restart Now" to start the restart, or "Cancel" to abort.

Note: Services are temporarily unavailable during the restart. Perform this operation during off-peak hours.

restart-server-confirm

# System Notification

Click the notification icon to view unread notifications; clicking a notification marks it as read.

image-20260623204021419

# User Information

Click the user avatar and select Edit Profile from the dropdown.

image-20260623204129899

You can edit your personal profile, including mobile number, email address, and description.

# Changing the Password

Click the user avatar, select Change Password, and you are taken to the change password page.

Enter the old password, new password, and confirmation password, then submit. The password must comply with the system password policy.

Note: Current password policy: 8-32 characters in length, containing at least 2 of letters, digits, and special symbols, and not the same as any of the last five passwords.

image-20260623204223300

After changing the password you are automatically logged out and must log in again.

# Logging Out

Click Log Out to clear the login session and return to the login page.

image-20260623204703774


# App Management

App Management provides a visual operations interface for publishing developed business systems to application server instances, and for centrally managing and configuring their lifecycle (deployment, uninstallation, reload, incremental update, backup) and runtime parameters (context path, class loading strategy, deployment properties, etc.).

# Applications

Query applications by application name or context and view them in a paginated list.

Click "App Management → Applications" in the left menu:

image-20260623204802953

The application list shows deployed applications with the following fields:

Field Description
Application Name Logical name of the application
Context Path Access path prefix
Virtual Host Virtual host the application is bound to
Deploy Order Startup priority; a smaller value means higher priority
Deployed At Time when the application was deployed
Security Level Security level of the application
Actions Redeploy, Reload, Uninstall, and More actions: Class Libraries, Incremental Update, Backup

# Querying Applications

Enter an application name or context path in the query area at the top, or select a virtual host, and click "Query":

image-20260623205236378

Click "Reset" to clear the query conditions.

# Deploying an Application

The application deployment feature provides a wizard-style graphical interface that publishes an application (such as a WAR package) to the server step by step.

Click the "Deploy Application" button:

image-20260708141748476

Deployment is a three-step wizard:

  1. Select Deployment Package: upload a local file or specify a server file path;
  2. Set deployment properties:
SettingParameterDescription
Application NameappNameLogical name of the application. Purpose: globally unique identifier of the application, used for application management and access. Valid values: string, up to 255 characters; only letters, digits, underscores, hyphens, and dots are allowed; must be globally unique; required. Default: empty.
Context PathappContextURL path prefix for accessing the application. Purpose: determines the path through which browsers access the application. Valid values: string, a valid URL path. Default: empty (the application name is used by default).
Class Loading OrderclassLoaderOrderDelegation strategy of the application class loader. Purpose: controls whether the parent class loader or the application's own libraries take precedence when loading classes, to resolve class conflicts. Valid values: dropdown, Parent First / Application First. Default: Application First.
JSP PrecompilejspPrecompileWhether to compile JSP files into classes ahead of time at deployment. Purpose: speeds up the first access at the cost of longer deployment time. Valid values: switch, On / Off. Default: Off.
Virtual HostvirtualHostVirtual host the application is bound to. Purpose: assigns the application to a virtual host so it is reachable through the corresponding domain name. Valid values: dropdown of virtual hosts configured in the Virtual Hosts module. Default: the default virtual host.
Session ManagersessionManagerSession manager used by the application. Purpose: configures the application's session storage policy, supporting Memory, File, Redis, and Database storage types; session managers are created under "Configuration → Session Manager". Valid values: dropdown of session managers configured in the Session Manager module. Default: empty.
Deploy OrderdeployOrderLoading order of the application at server startup. Purpose: controls the startup priority of multiple applications; a smaller value means higher priority. Valid values: integer, 0~2147483647. Default: 100.
Shared LibrariessharedLibShared libraries referenced by the application. Purpose: reuses the JARs in shared libraries so that applications do not have to package the same dependencies repeatedly. Valid values: dropdown of shared libraries configured in the Shared Libraries module. Default: empty.
Shared Library PrioritysharedLibPriorityPosition of the shared library in the application's class loading order. Purpose: when the same class exists in both the application and a shared library, determines which source is loaded first, to resolve class conflicts; the application's own WEB-INF/classes always takes precedence over WEB-INF/lib. Valid values: dropdown, Shared Library First (shared library > WEB-INF/classes > WEB-INF/lib) / WEB-INF/classes First (WEB-INF/classes > shared library > WEB-INF/lib) / WEB-INF/lib First (WEB-INF/classes > WEB-INF/lib > shared library). Default: Shared Library First.
Deployment TimeoutdeployTimeoutTimeout for application deployment / startup, in seconds. Purpose: if deployment is not completed within this duration, it is considered failed. Valid values: integer, 1~3600. Default: 300.
Security DomainsecurityDomainSecurity domain used by the application. Purpose: provides the authentication source for the application's authentication and authorization. Valid values: dropdown of security domains configured in the Security Domains module. Default: empty.
Security LevelclassLevelSecurity level of the application. Purpose: indicates which security levels of personnel can see this resource. Valid values: dropdown, Internal / Secret / Confidential. Default: the option selected by default on the page.
Application DescriptionappDescRemarks of the application. Purpose: helps administrators identify the purpose of the application. Valid values: string, up to 1000 characters. Default: empty.
Deployment PropertiesdeployPropsCustom deployment parameters. Purpose: passes extended deployment configuration as "property name - property value" pairs; multiple pairs can be added. Valid values: key-value list; property names support only letters, digits, and underscores; property values support arbitrary text. Default: empty.

image-20260623205752524

3. Confirm the deployment summary: verify the information and click "Deploy". To change the deployment information, click Previous.

image-20260623205832264

# Reloading an Application

Reloads a deployed application: without uninstalling or redeploying it, reloads the application configuration, class files, resource files, and context so that the latest configuration and changes take effect.

Clicking "Reload" stops and then starts the application. It applies when the application's configuration files or libraries have been updated and need to be reloaded.

image-20260624103210237

Click Confirm to reload the application.

# Redeploying an Application

The redeploy feature lets you overwrite the existing application resources and rerun the deployment process by uploading a new application package or selecting a new application file on the server. The redeploy page retains the application's basic configuration by default; you can update it manually. The console completes configuration validation, resource updates, application initialization, and health checks to ensure the application runs normally after redeployment. The redeployment process is basically the same as the deployment process and is also step-based.

Click "Redeploy" and upload a new package or select a server file to overwrite the existing application.

image-20260624104320720

# Uninstalling an Application

Uninstalls a deployed application: completely removes the application from the server in the app management console, releases server resources, and updates the application status.

Click "Uninstall"; the system displays a confirmation dialog. Click OK to uninstall the application.

image-20260624104403152

Note: If the recycle bin is enabled, the application goes to the recycle bin instead of being physically deleted, and can be restored from there.

# Class Libraries

Class library management provides visual management of the JAR packages in the application's WEB-INF/lib directory, supporting list display, upload (create), and deletion.

Click "Class Libraries" to manage the JAR files under the application's WEB-INF/lib, including uploading new JAR files and deleting existing libraries.

image-20260624105227268

Note: The application must be restarted for class library changes to take effect.

Click Create to open the upload class libraries page, where you can upload multiple JAR files.

Note: Uploading a JAR with the same name overwrites the existing one.

image-20260624105327062

Click Delete to delete the corresponding class library.

image-20260624105646955

# Editing an Application

You can modify the runtime parameters of a deployed application, including context path, class loading order, JSP precompilation, virtual host, session manager, deploy order, shared libraries, shared library priority, deployment timeout, security level, application description, and custom deployment properties. The application name cannot be changed. Configuration is saved immediately after modification; a running application must be reloaded for the changes to take effect.

In the application list, click "More → Edit" to open the application edit page. The page properties are described in the table in the "Deploying an Application" section. Among them, "Application Name" is read-only; the meaning, valid values, and defaults of the other settings are the same as in "Deploying an Application".

Note: After saving the edits, the application must be reloaded for the changes to take effect. The system will prompt you to "Reload Now" or "Reload Later".

# Incremental Update

The incremental update feature partially updates (patches) a deployed application. Upload an incremental package in ZIP format whose directory structure must match the application's, and the files in the corresponding directories are updated — that is, the content of the incremental package overwrites the corresponding directories of the application.

Click "Incremental Update" to go to the incremental update page.

Note: After an incremental update, the updated JARs, configuration files, and JSPs require an application restart to take effect.

image-20260624134321039

Click Upload Update Package to upload a ZIP incremental package.

image-20260624135537449

Note: Files with the same name in the uploaded package overwrite the original files. It is recommended to back up the application manually before using this feature so that you can recover from a problematic incremental update.

# App Recycle Bin

The app recycle bin feature moves an application to the recycle bin when it is uninstalled, so it can be restored or recovered later if necessary.

Click "App Management → App Recycle Bin" to view uninstalled applications and perform "Restore" or "Delete".

image-20260624143313830

# Recycle Bin Settings

Click Settings to go to the app recycle bin settings page.

image-20260624143359183

Input:

SettingParameterDescription
Enable RecycleenableWhether an uninstalled application automatically goes to the recycle bin. Purpose: when enabled, uninstalled applications are archived to the recycle directory automatically and can be restored from the recycle bin; when disabled, uninstalled applications are not recycled. Valid values: checkbox, Yes / No. Default: No.
Recycle PathpathServer directory where recycled application packages are stored. Purpose: specifies the storage location of recycled archive files. Valid values: string, up to 255 characters; must be an existing directory on the server with read/write permission; system variable placeholders are supported. Default: ${apusic.home}/store/app_recycle.
Retention DaysretentionHow long recycled files are retained, in days. Purpose: recycled application packages older than the retention period are cleaned up automatically by the system. Valid values: integer, 1~365. Default: 30.

# Restoring an Application

Restores an application from the recycle bin to the application list. Note that restoration fails if an application with the same name already exists in the list; you must uninstall the application with that name first.

Click "Restore" to go to the restore page.

image-20260624144233890

Enter the configuration:

SettingParameterDescription
Application NameappNameName of the application to restore. Purpose: identifies the restore target; after restoration, no application with the same name may exist in the list. Valid values: string, read-only. Default: automatically filled with the application name from the recycle bin.
Context PathappContextURL path prefix for accessing the application. Valid values: string, up to 255 characters; only letters, digits, underscores, and hyphens are allowed. Default: the original configuration.
Class Loading OrderclassLoaderOrderDelegation strategy of the application class loader. Purpose: controls whether the parent class loader or the application's own libraries take precedence when loading classes. Valid values: dropdown, Parent First / Application First. Default: the original configuration (Application First by default).
JSP PrecompilejspPrecompileWhether to precompile all JSP files at startup. Purpose: when enabled, precompilation happens at application startup; when disabled, at first access. Valid values: switch, On / Off. Default: the original configuration.
Virtual HostvirtualHostVirtual host the application is bound to. Valid values: dropdown of virtual hosts configured on the server. Default: the original configuration.
Session ManagersessionManagerSession persistence mode. Purpose: configures the application's session storage policy, supporting Memory, File, Redis, and Database storage types. Valid values: dropdown of session managers configured in the Session Manager module. Default: the original configuration.
Deploy OrderdeployOrderLoading order of the application at server startup. Purpose: a smaller value means higher loading priority. Valid values: integer, 0~2147483647. Default: the original configuration.
Shared LibrariessharedLibServer shared libraries associated with the application. Valid values: dropdown of shared libraries configured in the Shared Libraries module. Default: the original configuration.
Shared Library PrioritysharedLibPriorityPosition of the shared library in the application's class loading order. Valid values: dropdown, Shared Library First / WEB-INF/classes First / WEB-INF/lib First. Default: the original configuration.
Deployment Timeout (seconds)deployTimeoutTimeout for application deployment / startup, in seconds. Valid values: integer, 1~3600. Default: the original configuration.
Security DomainsecurityDomainSecurity domain used by the application. Valid values: dropdown of security domain names configured in the Security Domains module. Default: the original configuration.
Security LevelclassLevelSecurity level of the application. Purpose: indicates which security levels of personnel can see this resource. Valid values: dropdown, Public / Internal / Secret / Confidential. Default: the original configuration.
Application DescriptionappDescRemarks of the application. Valid values: string, up to 1000 characters. Default: the original configuration.
Deployment Properties (custom)deployPropsCustom configuration parameters of the application. Purpose: passes extended configuration as "property name - property value" pairs; multiple pairs can be added. Valid values: key-value list; property names support only letters, digits, and underscores; property values support arbitrary text. Default: the original configuration.

Finally click "Restore"; the system reports whether the restoration succeeded or failed.

# Deleting an Application

Physically deletes an application from the recycle bin. A confirmation dialog appears; click "OK" to physically delete it, or Cancel to abort.

image-20260624150342178

# App Backup

The app backup feature protects application data throughout its lifecycle and supports manual backup and restoration of deployed application packages.

# Backing Up Immediately

Click "App Management → Applications → More → Backup"

image-20260624154020439

# Backup List

After a backup, click "App Management → App Backup" to go to the application backup list, which can be queried by application name and context path.

image-20260624154605524

The list shows the application name, context path, application path (where the backup file is stored), backup time and current backup file size, and action buttons (Restore, Delete, Download).

# Backup Settings

Click "Backup Settings" to specify the application backup directory and retention days:

SettingParameterDescription
Backup DirectorypathDirectory where application backup packages are stored. Purpose: specifies where all application backup files are stored on the server. Valid values: string, a valid directory path; system variable placeholders are supported. Default: ${apusic.home}/store/app_backup.
Backup Retention DaysretentionHow long backup files are retained, in days. Purpose: backup files older than the retention period are cleaned up automatically by the system. Valid values: integer, 1~365. Default: 7.

image-20260624155058060

# Restoring a Backup File

Restores a backed-up application package and its deployment configuration. After the administrator selects a historical backup record, the system automatically fills in the complete deployment configuration at the backup point in time; the configuration can be modified as needed before submitting the restoration. During restoration the system intelligently checks the target application status: if an application with the same name already exists in the current environment, a confirmation dialog lets you overwrite (uninstall the original application first, then restore the backup version) or cancel, providing application version rollback and fault recovery.

image-20260626161822368

# Deleting a Backup File

Click "Delete"; a confirmation dialog appears. Clicking confirm physically deletes the backup file.

image-20260624155504036

# Downloading a Backup File

Downloads the backed-up application as an archive file.


# Resources

# Data Sources

The application server management console manages the full lifecycle of data sources (JDBC connection pools), covering list query, creation, editing, enable/disable, deletion, and connectivity testing. It supports connection configuration for mainstream databases such as MySQL, Oracle, PostgreSQL, DM (Dameng), KingbaseES, and others, with multi-dimensional settings covering basic properties, connection pool, connection validation, monitoring, and extended parameters. This meets application requirements for unified management of multiple database resources, connection optimization, and status monitoring, and ensures stable, maintainable, and secure database connections.

# Data Source List

Click "Resources → Data Sources" in the left menu:

image-20260624160438963

Query conditions

Query Condition Description Example
Data Source Name Fuzzy query by data source name jdbc/mysql
Resource Type Supports javax.sql.DataSource, javax.sql.XADataSource, javax.sql.ConnectionPoolDataSource javax.sql.DataSource
Status Filter by enabled/disabled status All Statuses

List fields

Field Description
Data Source Name Name of the data source, globally unique
Resource Type Resource type: javax.sql.DataSource, javax.sql.XADataSource, or javax.sql.ConnectionPoolDataSource
Driver Class Fully qualified name of the JDBC driver class
Status Enabled / Disabled
Connectivity Result of the latest connectivity test, e.g. "Normal" or "Abnormal"
Actions Edit, Delete, Enable/Disable, Test Connectivity

# Creating a Data Source

A wizard-style data source configuration tool that lets you create and manage database connection pools. The step-by-step wizard reduces configuration complexity and ensures the resulting connection pool meets the high-performance and high-availability requirements of production environments.

Click "Create" to go to the creation page. Creating a data source is a four-step wizard: Basic Config → Connection Pool Config → Connection Validation Config → Advanced Config

Step 1: Basic Config

Create Data Source

SettingParameterDescription
NamenameData source name (JNDI name). Purpose: globally unique identifier of the data source; applications look up and obtain database connections by this name. Valid values: string, 1~128 characters, globally unique, required. Default: empty.
Database Driver VendordbTypeDatabase vendor type. Purpose: selects the target database type; the system fills in the default driver class and URL template accordingly. Valid values: dropdown, e.g. MySQL, Oracle, PostgreSQL, DM, KingbaseES, HighGo; required. Default: empty.
Resource TyperesourceTypeJNDI resource interface type of the data source. Purpose: determines how connections are obtained (plain / XA distributed / pooled). Valid values: dropdown, javax.sql.DataSource, javax.sql.XADataSource, javax.sql.ConnectionPoolDataSource; required. Default: javax.sql.DataSource.
Driver ClassdriverClassFully qualified name of the JDBC driver. Purpose: specifies the JDBC Driver implementation class to load. Valid values: string, 1~128 characters, e.g. com.mysql.cj.jdbc.Driver; required. Default: filled automatically according to the selected database driver vendor.
Driver PathdriverPathSource of the JDBC driver JAR. Purpose: upload the driver file or specify the path of the driver JAR on the server. Valid values: file upload or path string; only .jar files, up to 100MB. Default: empty.
StatusstatusEnabled state after the data source is created. Purpose: controls whether the data source is put into use immediately. Valid values: switch, On / Off. Default: On.
Security LevelclassLevelSecurity level of the data source. Purpose: controls which security levels of personnel can see the data source; users with a higher level can view lower-level data. Valid values: dropdown, Secret / Confidential / Top Secret. Default: Secret.
HosthostDatabase server address. Purpose: specifies the IP or domain name the database listens on, used to assemble the JDBC URL automatically. Valid values: string, 1~255 characters. Default: empty.
PortportPort the database service listens on. Purpose: combined with the host to assemble the JDBC URL. Valid values: integer, 1~65535, e.g. 3306, 1521. Default: empty.
Database NamedatabaseNameSchema (database name) or Service Name of the target database. Valid values: string, 1~64 characters. Default: empty.
UsernameusernameAccount for connecting to the database. Valid values: string, 1~255 characters, required. Default: empty.
PasswordpasswordPassword for connecting to the database. Purpose: credential for database authentication; stored encrypted and never echoed in plain text in the frontend. Valid values: string, 1~255 characters, required. Default: empty.
URLurlComplete JDBC connection string. Purpose: the actual database connection address used by the data source, usually generated from the host / port / database name. Valid values: string, 1~500 characters, must comply with the JDBC specification; can be edited manually; required. Default: generated from host / port / database name.
Custom PropertiescustomPropertiesCustom extended parameters of the data source. Purpose: passes additional connection properties to the driver as key-value pairs. Valid values: key-value list. Default: empty.

Step 2: Connection Pool Config

image-20260624162557832

SettingParameterDescription
Initial ConnectionsinitialConnectionsNumber of connections created when the pool starts. Purpose: warms up the pool and reduces connection setup overhead for the first requests. Valid values: integer, 0 ~ max connections. Default: 10.
Max ConnectionsmaxConnectionsMaximum total connections the pool may allocate. Purpose: limits concurrent database connections to protect the database. Valid values: integer, ≥ initial connections, up to 2147483647; required. Default: 20.
Min Idle ConnectionsminIdleMinimum idle connections kept in the pool. Purpose: ensures connections are available under low load so burst requests do not wait for connection setup. Valid values: integer, 0 ~ max idle connections; required. Default: 4.
Max Idle ConnectionsmaxIdleMaximum idle connections kept in the pool. Purpose: idle connections beyond this count are released to control resource usage. Valid values: integer, ≥ min idle connections and ≤ max connections; required. Default: 10.
Max Wait TimemaxWaitMsMaximum time a request waits when no connection is available, in milliseconds. Purpose: after the timeout an exception is thrown; -1 means wait indefinitely, 0 means fail immediately. Valid values: integer, -1 ~ 2147483647; required. Default: 15000.
Idle TimeoutidleTimeoutMsHow long a connection may stay idle in the pool before it is released, in milliseconds. Purpose: reclaims long-idle connections to free database resources. Valid values: integer, 1 ~ 86400000; required. Default: 60000.
Idle Check PeriodidleCheckPeriodMsInterval at which the background thread checks idle connection validity, in milliseconds. Purpose: periodically inspects idle connections; 0 disables the check. Valid values: integer, 0 ~ 1800000; required. Default: 60000.
Max LifetimemaxLifetimeMsMaximum total lifetime of a single connection, in milliseconds. Purpose: connections are forcibly rebuilt when the lifetime limit is reached to avoid connection aging on the database side; 0 means unlimited. Valid values: integer, 0 ~ 86400000; required. Default: 900000.
Connections per CheckmaxCheckConnectionsMaximum idle connections checked per scan. Purpose: limits the work per check so the task does not consume too many resources. Valid values: integer, 1 ~ 2147483647. Default: 5.

Step 3: Connection Validation Config

image-20260624163435072

SettingParameterDescription
Validation SQLvalidationQuerySQL statement used to test whether a connection is valid. Purpose: this SQL is executed during connection validation to determine availability. Valid values: string, 1~256 characters, e.g. SELECT 1; required when any validation switch is on. Default: empty.
Validation TimeoutvalidationTimeoutSecondsTimeout for executing the validation SQL, in seconds. Purpose: a connection is considered invalid if the SQL does not return within this duration. Valid values: integer, 1 ~ 1800. Default: 3.
Test on BorrowtestOnBorrowWhether to validate a connection before lending it out. Purpose: ensures the connection received by the application is usable; enabling it adds overhead to every borrow. Valid values: switch, On / Off; requires the Validation SQL when on. Default: Off.
Test on ReturntestOnReturnWhether to validate a connection after it is returned. Purpose: intercepts connections damaged during use. Valid values: switch, On / Off; requires the Validation SQL when on. Default: Off.
Test while IdletestWhileIdleWhether to validate connections periodically while idle. Purpose: works with the idle check period to weed out invalid connections; low overhead, recommended. Valid values: switch, On / Off; requires the Validation SQL when on. Default: Off.
Test on ConnecttestOnConnectWhether to validate a newly created connection. Purpose: ensures new connections are immediately usable. Valid values: switch, On / Off; requires the Validation SQL when on. Default: Off.
Validation IntervalvalidationIntervalMsInterval between two connection validations, in milliseconds. Purpose: controls frequency to avoid over-validation affecting performance. Valid values: integer, 1 ~ 1800000; requires the Validation SQL when set. Default: 30000.

Step 4: Advanced Config

image-20260624163633122

SettingParameterDescription
Connection Auto ReclaimconnectionAutoReclaimWhether the automatic connection reclamation mechanism is enabled. Purpose: automatically reclaims database connections not released after a request ends, preventing connection leaks. Valid values: switch, On / Off. Default: Off.
Leak RecoveryleakRecoverWhether to forcibly reclaim connections not returned for a long time. Purpose: forcibly reclaims a connection when it has not been returned within the leak detection threshold. Valid values: switch, On / Off. Default: Off.
Remove Abandoned on MaintenanceremoveAbandonedOnMaintenanceWhether leaked connections are reclaimed during pool maintenance. Purpose: reclaims connections identified as leaked during pool maintenance (idle check). Valid values: switch, On / Off. Default: Off.
Leak Detection ThresholdleakDetectionThresholdA connection not returned within this duration is considered leaked, in milliseconds. Purpose: duration threshold for leak detection; it should be greater than the slowest SQL execution time of the application. Valid values: integer, greater than the slowest SQL time ~ 1800000. Default: 30000.
Abandon When Percentage FullabandonWhenPercentageFullPool usage percentage that triggers leak handling, in %. Purpose: leak reclamation starts only when the in-use ratio reaches this value, preventing slow queries from being killed under low load. Valid values: integer, 1 ~ 100. Default: 10.
Auto CommitautoCommitWhether database transactions are committed automatically by default. Purpose: controls the default transaction commit mode of connections obtained from this data source. Valid values: switch, On / Off. Default: On.
Log AbandonedlogAbandonedWhether to print connection leak logs. Purpose: outputs stack logs when leaked connections are reclaimed to help locate leaking code. Valid values: switch, On / Off. Default: Off.

Constraints and limitations:

  1. Data source names are globally unique and cannot be duplicated.
  2. The connection URL must comply with the JDBC specification.
  3. The database password is stored encrypted, is never echoed in the frontend, and can only be modified, not viewed.
  4. Driver package upload supports only .jar files up to 100MB.
  5. Connection pool parameters must be reasonable for the application, e.g. the maximum connections must be greater than the initial connections.
  6. A newly created data source is in the "Enabled" state by default.

# Editing a Data Source

In the data source list, click the data source name in the Actions column to open the wizard-style edit page. The data source name cannot be changed; all other fields are the same as when creating a data source. If the data source is referenced by an application, the application must be reloaded after saving for the changes to take effect.

image-20260624164452651

# Deleting a Data Source

To delete a data source, you must disable it first.

Note: A data source referenced by an application cannot be deleted. Remove the application dependency first.

image-20260624172125597

# Enabling/Disabling a Data Source

The enable/disable feature controls the usage state of a data source. An enabled data source can be used by applications normally; a disabled data source cannot provide database connections to applications.

image-20260624172200616

# Testing a Data Source

Tests database connectivity. Clicking "Test" obtains a database connection; if the connection is obtained, connectivity shows Connected, otherwise Not Connected.

image-20260624172553446

# Shared Libraries

Shared libraries manage class libraries (JAR packages) that can be referenced by multiple applications together, so that each application does not have to package the same dependencies repeatedly. The shared libraries module provides list query, creation, viewing, deletion, and reference inspection for shared libraries.

Click "Resources → Shared Libraries" in the left menu:

Shared Libraries

Query conditions

Query Condition Description Example
Library Name Fuzzy query by library name demo-doc
Version Filter by library version 1.0.0
Referencing Applications Filter by the name of applications referencing this shared library myapp

List fields

Field Description
Library Name Unique identifier of the shared library; click to open the library details
Version Version number of the shared library
File Count Number of JAR files in the shared library
Reference Count Number of applications referencing this shared library
Updated At Time of the most recent update of the shared library
Actions View, Delete

# Creating a Shared Library

Click "Create" to open the create shared library page:

Create Shared Library

SettingParameterDescription
Library NamenameUnique identifier of the shared library. Purpose: globally identifies the shared library; applications reference it by this name at deployment. Valid values: string; only letters, digits, underscores, and hyphens; globally unique; required. Default: empty.
Library VersionversionVersion number of the shared library. Purpose: distinguishes different versions of the same shared library. Valid values: string; only letters, digits, -, _, ., e.g. 1.0.0; required. Default: empty.
Library DescriptiondescriptionRemarks of the shared library. Purpose: helps administrators identify the purpose of the library. Valid values: string, up to 512 characters. Default: empty.
Library FilesfileJAR files contained in the shared library. Purpose: batch-uploads the files that make up the shared library. Valid values: file upload; only .jar files, each up to 100MB, at most 200 files; required. Default: empty.

After filling in the fields, click "Save" to create the shared library. On success you return to the shared library list.

# Viewing a Shared Library

In the shared library list, click the library name or "View" in the Actions column to open the library details page. The details page contains three areas: "Library Information", "Library File List", and "Referencing Applications":

Shared Library Details

  • Library Information: shows the library name, version, update time, and description;
  • Library File List: shows the JAR files in the shared library, with columns File Name, Size, Upload Time, and Actions (Download / Delete); each file can be downloaded or deleted individually;
  • Referencing Applications: shows the applications referencing this shared library, filterable by "All / Running / Backup / Recycle Bin", with columns Application Name, Application Type, Context Path, Shared Library Priority, Application Path, and Time.

# Deleting a Shared Library

In the shared library list, click "Delete" in the Actions column. A confirmation dialog appears with the message 'Are you sure you want to delete shared library "name"?'. Click "Confirm" to delete or "Cancel" to abort:

Delete Shared Library

Note: Deleting a shared library that is referenced by applications affects class loading of those applications. Make sure no application references it before deleting.

# Shared Library References

Shared library references exist in two directions: "application references shared library" and "shared library views references":

  1. Application references shared library: in the "Shared Libraries" setting of "App Management → Deploy Application" or the application edit page, select a shared library configured in the Shared Libraries module from the dropdown; the application can then reuse the JARs in the shared library. See "App Management → Deploy Application";
  2. Viewing references: in the "Referencing Applications" area of the shared library details page, view the applications referencing the shared library and their shared library priorities; the "Reference Count" column in the shared library list counts the referencing applications.

# Configuration

# JVM Configuration

The JVM parameter configuration feature provides a visual, fine-grained interface for managing and optimizing the Java Virtual Machine (JVM) runtime environment. You can configure the JDK path, memory model (heap and metaspace), garbage collection policy, network protocol support (IPv6), remote debugging options, and underlying system properties.

Click "Configuration → JVM" in the left menu. The page contains two tabs: "Basic Properties" and "CRaC Config". The "Basic Properties" tab configures JVM runtime parameters; the "CRaC Config" tab configures JVM checkpoint/restore based on CRaC (Coordinated Restore at Checkpoint), which can greatly shorten application startup time (requires JDK support for the CRaC feature).

Note: The server must be restarted for JVM configuration changes to take effect.

image-20260624193106030

# Basic Properties

Click "Configuration → JVM" in the left menu to enter the "Basic Properties" tab, where you can configure JVM runtime parameters.

Field descriptions:

SettingParameterDescription
JDK PathjdkPathAbsolute path of the JDK installed on the server. Purpose: identifies the JDK used by the server. Valid values: read-only, auto-detected and filled by the system, e.g. /opt/jdk1.8.0_361. Default: auto-detected.
Java VersionjavaVersionJava version of the JDK path. Purpose: shows the version of the current JDK. Valid values: read-only, auto-detected, e.g. 1.8.0_361. Default: auto-detected.
Heap Minimum (-Xms)heapMinInitial JVM heap size in MB, corresponding to -Xms in vm.options. Purpose: sets the heap memory allocated at JVM startup. Valid values: integer, 1 ~ available physical memory, must be less than or equal to the heap maximum; required. Default: 1024 (-Xms1024m in the installation package's vm.options).
Heap Maximum (-Xmx)heapMaxMaximum JVM heap size in MB, corresponding to -Xmx in vm.options. Purpose: limits the upper bound of JVM heap growth; must be greater than or equal to the heap minimum. Valid values: integer, 1 ~ available physical memory, required. Default: 4096 (-Xmx4096m in the installation package's vm.options).
Metaspace InitialmetaspaceInitialInitial JVM metaspace size in MB, corresponding to -XX:MetaspaceSize. Purpose: sets the initial metaspace allocation. Valid values: positive integer, 1 ~ available physical memory, must be less than or equal to the metaspace maximum; required. Default: empty.
Metaspace MaximummetaspaceMaxMaximum JVM metaspace size in MB, corresponding to -XX:MaxMetaspaceSize. Purpose: limits the metaspace to prevent class metadata from exhausting memory; must be greater than or equal to the metaspace initial value. Valid values: positive integer, 1 ~ available physical memory, required. Default: empty.
Garbage CollectorgcTypeJVM garbage collector type, corresponding to options such as -XX:+UseParallelGC. Purpose: selects the heap garbage collection policy. Valid values: dropdown, e.g. ParallelGC, CMS, G1GC; required. Default: ParallelGC.
Enable DebugdebugEnabledWhether remote debugging is enabled. Purpose: when enabled, the JVM starts in debug mode and debuggers can connect remotely. Valid values: switch, On / Off. Default: Off.
Debug OptionsdebugOptionsRemote debugging parameters, corresponding to -agentlib:jdwp=.... Purpose: configures the debug transport and listen address; editable only when "Enable Debug" is on. Valid values: string, conforming to the JVM debugging specification, e.g. -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n, up to 500 characters. Default: empty.
Native Library PathnativeLibraryPathPath where the JVM loads native libraries (.so/.dll files), corresponding to -Djava.library.path. Purpose: specifies the search directory for JNI native libraries. Valid values: string, up to 255 characters; multiple paths separated by semicolons; must be valid directories on the server. Default: empty.
JVM OptionsjvmOptionsCustom JVM parameters. Purpose: appends arbitrary JVM startup parameters as key-value pairs; multiple entries can be added or removed. Valid values: string; supports -Dkey=value, -XX:+Option, -XX:-Option; each entry up to 255 characters. Default: empty.

The configured JVM parameters are saved to the conf/vm.options configuration file, which is located in the same directory as apusic.conf.

# CRaC Configuration

CRaC (Coordinated Restore at Checkpoint) is based on the JVM checkpoint/restore mechanism. It creates a checkpoint image of a warmed-up JVM, so the application skips the warm-up phase when restored, achieving millisecond-level startup and greatly improving elastic scaling efficiency.

Note: CRaC only supports Linux and a compatible JDK (Apusic CRaC JDK); containers require privileged mode; the restore environment must match the snapshot environment.

Click the "CRaC" tab. By default, the "Enable CRaC" switch is off:

jvm_crac_off

When you turn on "Enable CRaC", the system automatically runs a compatibility check on the current environment and displays the environment check results (7 items in total). CRaC can only be used after all checks pass:

jvm_crac_on_detect

Description of environment check items:

Check Item Requirement Description
Operating system Linux CRaC relies on the checkpoint/restore capability of the Linux kernel; only Linux is supported.
Processor architecture x86_64 / aarch64 The processor architecture must be x86_64 or aarch64.
JDK CRaC support Apusic CRaC JDK A CRaC-capable Apusic CRaC JDK is required.
Kernel version >= 5.6 Linux kernel version must be 5.6 or later.
Kernel checkpoint support CONFIG_CHECKPOINT_RESTORE=y The kernel must be built with the checkpoint/restore option enabled.
glibc version >= 2.35 glibc version must be 2.35 or later.
criu privilege root / SUID The CRIU tool requires root privileges or SUID elevation.

After all checks pass, configure "Checkpoint Settings" and "Diagnostic Options" ("Diagnostic Options" is collapsed by default; click to expand):

jvm_crac_on_settings

Field description:

SettingParameterDescription
Enable CRaCcracEnabledWhether to enable the CRaC feature. Purpose: once enabled, the instance keeps serving and checkpoint images can be made at any time; enabling runs a compatibility check on the current environment. Valid values: switch, Enabled / Disabled. Default: Disabled.
Checkpoint DirectorycracCheckpointDirDirectory where checkpoint images are stored. Purpose: image files are written when a checkpoint is taken; does not affect the running instance. Valid values: fixed path assigned by the system, read-only. Default: ${APUSIC_HOME}/store/crac-image.
File Descriptor PolicycracFdPolicyPath of the file descriptor policy file. Purpose: defines the rules for handling files and ports at checkpoint/restore (close / reopen / keep). Valid values: string, valid file path; required. Default: ${APUSIC_HOME}/conf/crac/fd-policies.yaml.
Startup Time TracingcracTraceStartupTimePrints the restore duration on restore. Purpose: used for comparison with cold start; read-only, no overhead. Valid values: switch, Enabled / Disabled. Default: Enabled.
Resource ReportcracPrintResourcesLists each file/port opened by the JVM and its verdict at checkpoint time. Purpose: verifies whether the file descriptor policy is complete. Valid values: switch, Enabled / Disabled. Default: Disabled.
FD Open Stack TracescracCollectFdStacktracesWhen a checkpoint fails due to a file descriptor, prints where it was opened. Purpose: helps locate the code that opened the file descriptor; slight overhead. Valid values: switch, Enabled / Disabled. Default: Disabled.

After configuration, click "Save". Once CRaC is enabled and saved, the "Make Image" button becomes available; click it to create a checkpoint image of the currently running instance, written to the checkpoint directory. Click "Restore Default" to reset the settings on this page to their default values.

To start the application from a checkpoint image, run manually:

java -XX:CRaCRestoreFrom=<checkpoint directory>
1

Note: The CRaC configuration takes effect only after the server is restarted.

# JMX Configuration

The JMX configuration module manages the Java Management Extensions (JMX) remote monitoring and management capability of the application server. It supports enabling/disabling the JMX service and configuring the listen address, port, authentication, and SSL/TLS encryption. Once effective, JMX clients (such as JConsole and VisualVM) can remotely monitor the runtime status of AAS and applications, including threads, memory, GC, and request statistics.

Click "Configuration → JMX" in the left menu.

image-20260624193535487

Field descriptions:

SettingParameterDescription
Enable JMXenableWhether the JMX remote monitoring and management service is enabled. Purpose: when enabled, clients such as JConsole and VisualVM can connect remotely; when disabled, all JMX parameters are ineffective. Valid values: switch, Enable / Disable. Default: Disable.
Listen AddresshostIP address the JMX service listens on. Purpose: restricts the network interface the JMX service binds to. Valid values: up to 128 characters, valid IPv4 format (e.g. 0.0.0.0, 127.0.0.1); 0.0.0.0 listens on all interfaces; required. Default: 127.0.0.1 (accessible locally only when left empty).
Listen PortportTCP port the JMX service listens on. Purpose: JMX clients connect through this port. Valid values: integer, 1024~65535, the port must not be in use; required. Default: 6868.
Enable AuthenticationauthWhether JMX client authentication is enabled. Purpose: when enabled, clients must provide username/password credentials. Valid values: switch, On / Off. Default: Off.
Password FilepasswordFilePath of the JMX authentication password file. Purpose: configures the usernames and passwords allowed to connect; see the password file example below. Valid values: string, a valid file path. Default: conf/jmxremote.password.
Access Control FileaccessFilePath of the JMX access control file. Purpose: configures each user's access permission (readonly, readwrite); see the access control file example below. Valid values: string, a valid file path. Default: conf/jmxremote.access.
SSL/TLS EnabledsslEnabledWhether SSL/TLS encryption is enabled for JMX connections. Purpose: when enabled, JMX communication is encrypted and certificate information must be configured; the security settings are collapsed by default and expand when enabled. Valid values: switch, On / Off. Default: Off.
Custom CertificatecertCustomWhether custom keystore information is used. Purpose: when off, a "Keystore Name" dropdown is shown for selecting from certificate stores; when on, inputs for keystore path and passwords are shown for manual entry. Valid values: switch, On / Off. Default: Off.
Keystore NamekeyStoreNameName of the keystore in use. Purpose: select a certificate store of the "Keystore" type from Certificate Stores; shown when custom certificate is off; single choice. Valid values: dropdown of created keystores. Default: empty.
Keystore PathkeyStoreFileKeystore file path, shown when custom certificate is on. Purpose: specifies the custom keystore file location. Valid values: string, up to 255 characters, supports system variable placeholders; required when SSL is on. Default: empty.
Keystore PasswordkeyStorePasswordKeystore access password, shown when custom certificate is on. Purpose: passphrase to open the keystore file. Valid values: string, 8~128 characters, hidden on the page; required when SSL is on. Default: empty.
Entry PasswordkeyPasswordPassword of the certificate entry in the keystore, shown when custom certificate is on. Purpose: passphrase to access the private key entry in the keystore. Valid values: string, 8~128 characters, hidden on the page. Default: empty.
Keystore TypekeyStoreTypeKeystore file format. Purpose: declares the storage format of the keystore. Valid values: dropdown, JKS / PKCS12. Default: JKS.
Client AuthenticationclientAuthWhether JMX clients are required to present certificates. Purpose: when enabled, mutual authentication is used and clients must hold certificates accepted by the truststore. Valid values: switch, On / Off. Default: Off.
Truststore PathtrustStoreFileTruststore file path, shown when client authentication and custom certificate are on. Purpose: specifies the truststore used to verify client certificates. Valid values: string, up to 255 characters; required when client authentication is on. Default: empty.
Truststore PasswordtrustStorePasswordTruststore access password, shown when client authentication and custom certificate are on. Purpose: passphrase to open the truststore file. Valid values: string, 8~128 characters, hidden on the page; required when client authentication is on. Default: empty.
Truststore TypetrustStoreTypeTruststore file format, shown when custom certificate is on. Purpose: declares the storage format of the truststore. Valid values: dropdown, JKS / PKCS12; required when client authentication is on. Default: JKS.
Cipher SuitessslCipherSuitesCipher suites used for SSL/TLS encryption. Purpose: restricts the algorithm suites allowed for encrypted JMX communication and blocks weak suites. Valid values: dual-list selection box with add/remove and search; manual input supported; multiple values separated by commas; duplicates removed on save; required when SSL is on. Default: empty (JDK default suites).

Password file example

[username] [password]

For example: username admin, password YOUR_PASSWORD

image-20260624202206513

Access control file example

[username] [authority]

For example: username admin, permission readwrite

image-20260624202116104

# HTTP Channels

The Apusic application server provides full lifecycle management of HTTP/HTTPS/AJP/HTTP2 protocol channels, supporting channel creation, configuration, modification, deletion, and state management, covering multiple dimensions such as basic networking, the HTTP protocol, SSL/TLS encryption, and HTTP/2.

Click "Configuration → HTTP Channels" in the left menu:

image-20260626085753498

Note that admin-http is the channel dedicated to the management console and cannot be deleted.

# Creating/Editing an HTTP Channel

The management console provides a visual way to create HTTP channels, supporting the following configuration:

  • Basic Config: name, IO mode, listen address, listen port, default virtual host, thread pool, buffer sizes, max connections, connection timeout, etc.
  • HTTP Config: URI encoding, default response character encoding, compression, max POST bytes, max header size, etc.
  • SSL Config: SSL switch, TLS protocol versions, client authentication, keystore/truststore configuration, cipher suites, etc.
  • HTTP2 Config: enable HTTP/2, compression, max concurrent streams, KeepAlive timeout, etc.

Click "Configuration → HTTP Channels → Create" in the left menu to go to the create HTTP channel page:

image-20260626090334015

The create HTTP channel page has many parameters, organized into multiple tabs: Basic Info, HTTP Config, SSL Config, HTTP2 Config

Basic Info

image-20260626090610647

image-20260628102429631

Field descriptions:

SettingParameterDescription
NamenameUnique identifier of the HTTP channel. Purpose: distinguishes channels in the configuration; cannot be changed when editing. Valid values: string, up to 64 characters; only letters, digits, underscores, and hyphens; globally unique; required. Default: empty.
IO ModeioModeNetwork IO processing model of the channel. Purpose: determines how the underlying network reads and writes; it must match the server environment; APR requires the native library to be installed in advance. Valid values: dropdown, NIO / NIO2 / APR (only modes supported by the server are shown); required. Default: NIO.
Listen AddresshostServer IP address the channel binds to. Purpose: restricts which network interface the channel listens on; 0.0.0.0 listens on all interfaces, 127.0.0.1 is local only. Valid values: string, up to 128 characters, valid IPv4 format; required. Default: 0.0.0.0.
Listen PortportTCP port the channel listens on. Purpose: clients access the service through this port; ports below 1024 require root privileges. Valid values: integer, 1~65535, the port must not be in use; required. Default: empty.
Redirect PortredirectPortHTTPS redirect port. Purpose: when a request requires SSL but the current channel is not SSL, the request is redirected to this port; ports below 1024 require root privileges. Valid values: integer, 1~65535. Default: empty.
Thread PoolthreadPoolBusiness thread pool bound to the channel. Purpose: HTTP requests are processed by threads in this pool, which must be created in Thread Pools in advance. Valid values: single-select dropdown of configured thread pools; required. Default: http-thread-pool.
Receive BufferreceiveBufferSizeSocket read buffer size in bytes. Purpose: controls the TCP receive buffer; too small increases IO round trips, too large wastes memory; 0 uses the VM default. Valid values: integer, 0~1048576; required. Default: 8192.
Send BuffersendBufferSizeSocket write buffer size in bytes. Purpose: controls the TCP send buffer; 0 uses the VM default. Valid values: integer, 0~1048576; required. Default: 8192.
Max ConnectionsmaxConnectionsMaximum concurrent TCP connections allowed on the listen port. Purpose: new connections queue once the limit is reached. Valid values: integer, 1~9999999, -1 means unlimited; required. Default: -1 (unlimited).
Connection TimeoutconnectionTimeoutTCP connection idle timeout in milliseconds. Purpose: idle connections with no data are closed automatically after this duration. Valid values: integer, 1~3600000; required. Default: 20000.
TCP Accept Queue SizeacceptCountLength of the OS kernel TCP listen queue. Purpose: when the connection limit is reached, controls how many connections completing the three-way handshake can queue. Valid values: integer, 1~10000; required. Default: 100.
TCP NoDelaytcpNoDelayWhether the Nagle algorithm is disabled. Purpose: when on, small packets are sent immediately, reducing latency; recommended for long-lived connections with frequent small packets. Valid values: switch, On / Off. Default: On.
Max KeepAlive RequestsmaxKeepAliveRequestsMaximum HTTP requests a single KeepAlive connection may process. Purpose: the connection is forcibly closed when the limit is reached. Valid values: integer, 1~10000; required. Default: 100.
KeepAlive TimeoutkeepAliveTimeoutKeepAlive idle timeout in seconds. Purpose: the server actively closes the TCP channel after a keep-alive connection is idle for this duration. Valid values: integer, 1~3600; required. Default: 20.
Use IP VHostsuseIPVHostsWhether the request source IP is used to match virtual hosts. Purpose: when on, virtual hosts are matched by IP first; when off, only by domain name. Valid values: switch, On / Off. Default: Off.
Processor CacheprocessorCacheCache capacity for reused HTTP protocol parsers. Purpose: caches and reuses protocol handler objects to reduce the overhead of creating parsers frequently. Valid values: integer, 0~2147483647; required. Default: 20000.
Graceful StopgracefulStopAwaitMillisGraceful shutdown wait duration in milliseconds. Purpose: after AAS stops, the maximum time to wait for in-progress client requests to finish. Valid values: integer, 0~2147483647; 0 disables the feature. Default: 0.
Slow Thread MonitorlongThreadEnabledWhether business threads that take too long are monitored. Purpose: when on, the stack of slow request threads is recorded for performance troubleshooting. Valid values: switch, On / Off. Default: Off.
Slow Thread ThresholdlongThreadThresholdThreshold for identifying a slow thread, in seconds; shown when Slow Thread Monitor is on. Purpose: a request that takes longer than this threshold is identified as a slow thread and recorded. Valid values: integer, in seconds. Default: 60.
Slow Thread Check PeriodlongThreadCycleTimeSlow thread check period in seconds; shown when Slow Thread Monitor is on. Purpose: scans in-flight threads for timeouts once per period. Valid values: integer, in seconds. Default: 3.
Check IntervallongThreadRollingIntervalSlow thread log rolling interval in minutes; shown when Slow Thread Monitor is on. Purpose: controls time-based rolling of slow thread log files. Valid values: integer, in minutes. Default: 5.
Log DirectorylongThreadLogDirOutput directory of slow thread logs; shown when Slow Thread Monitor is on. Purpose: specifies where slow thread log files are stored. Valid values: string, a valid directory path. Default: empty.
Blacklist DetectionsdosEnabledWhether blacklist protection based on access policy is enabled. Purpose: when on, attack behavior is detected and malicious IPs are added to the blacklist. Valid values: switch, On / Off. Default: Off.
Blacklist ThresholdsdosThresholdBlacklist trigger threshold in times; shown when Blacklist Detection is on. Purpose: an IP is blacklisted once its attack count exceeds this threshold. Valid values: integer. Default: 3.
Time WindowsdosTimeWindowMinutesAttack statistics time window in minutes; shown when Blacklist Detection is on. Purpose: counts the attacks of the same IP within this window; exceeding the threshold blacklists the IP. Valid values: integer, in minutes. Default: 30.
ExpirationsdosBlacklistTtlMinutesBlacklist entry expiration in minutes; shown when Blacklist Detection is on. Purpose: blacklisted IPs are released automatically after this duration. Valid values: integer, in minutes. Default: 30.
Max Packet IntervalsdosMaxPacketIntervalMaximum interval between two packets in milliseconds; shown when Blacklist Detection is on. Purpose: requests whose interval exceeds this value are recorded as attack events. Valid values: integer, in milliseconds. Default: 0 (detection disabled).
Flush IntervalsdosBlacklistFlushMinutesBlacklist file flush interval in minutes; shown when Blacklist Detection is on. Purpose: controls how often the blacklist is persisted to file. Valid values: integer, in minutes. Default: 10.
Protection ModesdosModeBlacklist protection mode; shown when Blacklist Detection is on. Purpose: selects the handling when the blacklist is hit — "Protect" blocks directly, "Alert" only records an alert. Valid values: dropdown, Protect / Alert. Default: Alert.

HTTP Config

image-20260626090740778

image-20260626090753481

Field descriptions:

SettingParameterDescription
URI EncodinguriEncodingCharacter encoding used to parse URL paths. Purpose: determines how URLs and query parameters are decoded; UTF-8 is recommended uniformly for Chinese business scenarios. Valid values: dropdown, a valid charset encoding (UTF-8 / GBK etc.); required. Default: UTF-8.
Use Body Encoding For URIuseBodyEncodingForURIWhether the request body encoding is used to parse URI parameters. Purpose: when on, URL parameters are parsed with the encoding from the HTTP request body's Content-Type; when off, only the URI encoding setting is used. Valid values: switch, On / Off. Default: Off.
Response Character EncodingresponseCharacterEncodingEncoding used by default when the response does not specify a charset. Purpose: responses that do not declare a character set are output in this encoding. Valid values: dropdown, a standard charset encoding; required. Default: ISO-8859-1.
DNS LookupsenableLookupsWhether DNS reverse lookup is performed on client IPs. Purpose: when on, host names are recorded in logs and request attributes; reverse lookup affects performance, keeping it off is recommended. Valid values: switch, On / Off. Default: Off.
CompressioncompressionHTTP response GZIP compression policy. Purpose: off disables compression globally; on compresses when the client supports it; force compresses regardless of client; when on, the compressible MIME types must be configured. Valid values: dropdown, off / on / force; required. Default: on.
Compressible MIME TypescompressibleMimeTypeList of resource MIME types allowed to be compressed. Purpose: only resource types in the list are GZIP-compressed. Valid values: string, multiple types separated by commas; required when compression is on. Default: text/html,text/xml,text/plain,text/css.
Compression Min SizecompressionMinSizeMinimum response body size in bytes that triggers compression. Purpose: responses smaller than this are not compressed (compressing small files can enlarge them). Valid values: integer, -1 ~ 2147483647, -1 means unlimited; required when compression is on. Default: 2048.
Allow TRACEhttpTraceWhether the HTTP TRACE request method is allowed. Purpose: TRACE is for debugging; enabling it risks information leakage; keep it off in production. Valid values: switch, On / Off. Default: Off.
Powered BypoweredByWhether the server version identifier is returned in response headers. Purpose: turning it off hides the server fingerprint and improves security. Valid values: switch, On / Off. Default: Off.
Async TimeoutasyncTimeoutMaximum execution timeout of Servlet asynchronous requests in milliseconds. Purpose: asynchronous requests are interrupted automatically after this duration. Valid values: integer, 1~2147483647; required. Default: 30000.
Disable Upload TimeoutdisableUploadTimeoutWhether the connection upload timeout limit is disabled. Purpose: when on, the "Connection Upload Timeout" parameter is ignored and uploads are not time-limited; when off, the upload timeout applies. Valid values: switch, On / Off. Default: On.
Connection Upload TimeoutconnectionUploadTimeoutTimeout for upload data stream transfer in milliseconds. Purpose: the connection is closed if no data chunk arrives for this duration; effective when "Disable Upload Timeout" is off. Valid values: integer, 1~3600000; required. Default: 300000.
Max POST SizemaxPostSizeMaximum data size allowed in an HTTP POST body, in bytes. Purpose: POST requests larger than this are rejected. Valid values: integer, 1~2147483647, -1 means unlimited; required. Default: 2097152 (2MB).
Max Parameter CountmaxParameterCountMaximum total parameter key-value pairs per request (URL + form). Purpose: defends against parameter overflow attacks. Valid values: integer, 1~2147483647, -1 means unlimited; required. Default: 10000.
Max Header CountmaxHeaderCountMaximum number of header fields allowed in a single HTTP request. Purpose: defends against header overflow attacks. Valid values: integer, 1~2147483647, -1 means unlimited; required. Default: 100.
Max Header SizemaxHttpHeaderSizeMaximum total bytes of all request headers combined. Purpose: requests exceeding this limit are rejected outright. Valid values: integer, 1~2147483647, -1 means unlimited; required. Default: 8192.
Custom Response HeaderscustomResponseHeadersCustom HTTP response header key-value pairs. Purpose: uniformly appends response headers to responses passing through this channel, e.g. X-Frame-Options=SAMEORIGIN. Valid values: key-value table; header names may contain only letters, digits, and !#$%&'*+-.^_&#124;~; entries can be added or removed. Default: empty.

SSL Config

image-20260626090844954

image-20260626090859697

Field descriptions:

SettingParameterDescription
SSL EnabledsslEnabledWhether SSL/TLS encryption is enabled. Purpose: when on, the channel provides encrypted communication over HTTPS and certificate information must be configured. Valid values: switch, On / Off. Default: Off.
SM (Guomi) AuthenticationgmEnabledWhether SM (Chinese national cryptography) suite authentication is enabled. Purpose: when on, the configured SM certificates are validated and encrypted connections use SM algorithms. Valid values: switch, On / Off. Default: Off.
Redirect PortredirectPortHTTPS redirect port. Purpose: non-SSL requests that require encryption are redirected to this port. Valid values: integer, 1~65535. Default: empty.
Proxy Server NameproxyNameProxy server hostname in reverse proxy scenarios. Purpose: the externally exposed hostname when the channel is behind a reverse proxy. Valid values: string, 1~128 characters. Default: empty.
Proxy Server PortproxyPortProxy server port in reverse proxy scenarios. Purpose: the externally exposed port when the channel is behind a reverse proxy. Valid values: integer, 1~65535. Default: empty.
TLS ProtocolstlsProtocolsArrAllowed TLS protocol versions; hidden when SM authentication is on. Purpose: restricts the protocol versions negotiable during the SSL handshake; only TLS1.2/TLS1.3 are recommended in production. Valid values: checkbox group, TLS1.0 / TLS1.1 / TLS1.2 / TLS1.3; required when SSL is on. Default: TLS1.2 and TLS1.3 checked.
Client AuthenticationclientAuthClient certificate verification level. Purpose: controls whether clients must present a certificate; "Required" means mutual authentication. Valid values: dropdown, Disabled / Optional / Required; required when SSL is on. Default: Disabled.
Custom CertificatecertificateCustomWhether custom keystore information is used. Purpose: when off, a certificate store dropdown is shown for selecting from Certificate Stores; when on, inputs for keystore path and passwords are shown for manual entry. Valid values: switch, On / Off. Default: Off.
Keystore NamekeyStoreNameName of the keystore in use; shown when custom certificate is off. Purpose: select a certificate store of the "Keystore" type from Certificate Stores. Valid values: single-select dropdown of created keystores. Default: empty.
Keystore EntrykeyStoreEntryCertificate entry in the keystore; shown when custom certificate is off. Purpose: lists all certificate entries under the selected keystore; choose the certificate used for SSL. Valid values: single-select dropdown. Default: empty.
Truststore NametrustStoreNameName of the truststore in use; shown when custom certificate is off. Purpose: select a certificate store of the "Truststore" type from Certificate Stores, used to verify client certificates. Valid values: single-select dropdown of created truststores. Default: empty.
Truststore EntrytrustStoreEntryCertificate entry in the truststore; shown when custom certificate is off. Purpose: lists all certificate entries under the selected truststore; choose the trusted certificate. Valid values: single-select dropdown. Default: empty.
Certificate AliasaliasAlias of the certificate; shown when custom certificate is on. Purpose: specifies the alias of the keystore entry used for SSL. Valid values: string, 1~255 characters. Default: empty.
Keystore PathkeyStorePathKeystore file path; shown when custom certificate is on. Purpose: specifies the custom keystore file location. Valid values: string, 1~255 characters, supports system variable placeholders; required when SSL is on. Default: empty.
Keystore PasswordkeyStorePasswordKeystore access password; shown when custom certificate is on. Purpose: passphrase to open the keystore file. Valid values: string, 8~128 characters, hidden on the page; required when SSL is on. Default: empty.
Keystore TypekeyStoreTypeKeystore file format; shown when custom certificate is on. Purpose: declares the storage format of the keystore. Valid values: string, e.g. JKS / PKCS12. Default: empty.
Truststore PathtruststorePathTruststore file path; shown when custom certificate is on. Purpose: specifies the truststore file used to verify client certificates. Valid values: string, 1~255 characters; required when client authentication is "Required / Optional". Default: empty.
Truststore PasswordtruststorePasswordTruststore access password; shown when custom certificate is on. Purpose: passphrase to open the truststore file. Valid values: string, 8~128 characters, hidden on the page. Default: empty.
Truststore TypetruststoreTypeTruststore file format; shown when custom certificate is on. Purpose: declares the storage format of the truststore. Valid values: string, e.g. JKS / PKCS12. Default: empty.
Cipher SuitessslCipherSuitesCipher suites used for SSL/TLS encryption. Purpose: restricts the algorithm suites allowed for encrypted communication and blocks weak suites. Valid values: dual-list selection box with add/remove and search; manual input supported; multiple values separated by commas; duplicates removed on save; required when SSL is on. Default: empty (JDK default suites).

HTTP2 Config

image-20260626091119881

image-20260626091132466

Field descriptions:

SettingParameterDescription
Enable HTTP/2http2EnabledWhether the HTTP/2 protocol is enabled. Purpose: when on, the channel supports HTTP/2 multiplexing; HTTPS channels only. Valid values: switch, On / Off. Default: Off.
Compressionhttp2CompressionIndependent HTTP/2 compression policy, taking precedence over the HTTP tab compression setting. Purpose: controls GZIP compression of HTTP/2 responses. Valid values: dropdown, off / on / force; required when HTTP/2 is enabled. Default: on.
Compressible MIME Typeshttp2CompressibleMimeTypeResource MIME types allowed to be compressed under HTTP/2, independent of the HTTP/1 configuration. Purpose: only resource types in the list are compressed. Valid values: string, multiple types separated by commas; required when HTTP/2 is enabled. Default: text/html,text/xml,text/plain,text/css,text/javascript,application/javascript,application/json etc.
No-Compression User Agentshttp2NoCompressionUserAgentsRegular expression of client User-Agents for which compression is not performed. Purpose: compression is disabled for matching clients. Valid values: string, regular expression format. Default: empty.
Compression Min Sizehttp2CompressionMinSizeMinimum HTTP/2 response body size in bytes that triggers compression. Purpose: GZIP compression starts once the response body reaches this size. Valid values: integer, 1~1048576; required when HTTP/2 is enabled. Default: 2048.
Max Concurrent Streamshttp2MaxConcurrentStreamsUpper limit of request streams processed in parallel within a single HTTP/2 TCP connection. Purpose: controls the concurrency of multiplexing. Valid values: integer, 1~10000; required when HTTP/2 is enabled. Default: 100.
Max Concurrent Executing Streamshttp2MaxConcurrentExecutingStreamsUpper limit of HTTP/2 streams executing business logic concurrently in the same connection. Purpose: limits server thread pressure. Valid values: integer, 1~10000; required when HTTP/2 is enabled. Default: 20.
Max Header Sizehttp2MaxHeaderSizeMaximum total bytes of HTTP/2 request header binary frames. Purpose: defends against oversized header attacks. Valid values: integer, 1~1048576; required when HTTP/2 is enabled. Default: 8192.
Max Header Counthttp2MaxHeaderCountUpper limit of header fields in a single HTTP/2 request. Purpose: defends against header overflow attacks. Valid values: integer, 1~1000; required when HTTP/2 is enabled. Default: 100.
Max Trailer Sizehttp2MaxTrailerSizeMaximum bytes of HTTP/2 trailing trailer frame data. Purpose: limits the size of trailer frames. Valid values: integer, 1~1048576; required when HTTP/2 is enabled. Default: 8192.
Max Trailer Counthttp2MaxTrailerCountUpper limit of trailer fields per request. Purpose: limits the number of trailer fields. Valid values: integer, 1~1000; required when HTTP/2 is enabled. Default: 100.
Initial Window Sizehttp2InitialWindowSizeInitial HTTP/2 flow control window size in bytes. Purpose: controls the transfer rate of a single stream. Valid values: integer, 1~1073741824; required when HTTP/2 is enabled. Default: 65535.
KeepAlive Timeouthttp2KeepAliveTimeoutHTTP/2 connection idle timeout in milliseconds. Purpose: the TCP connection is closed automatically when no data flows for this duration. Valid values: integer, 1~3600000; required when HTTP/2 is enabled. Default: 20000.
Socket Read Timeouthttp2SocketReadTimeoutHTTP/2 socket frame read timeout threshold in milliseconds. Purpose: the connection is closed when reading takes longer than this. Valid values: integer, 1~3600000; required when HTTP/2 is enabled. Default: 20000.
Socket Write Timeouthttp2SocketWriteTimeoutHTTP/2 socket frame write timeout threshold in milliseconds. Purpose: the connection is closed when writing takes longer than this. Valid values: integer, 1~3600000; required when HTTP/2 is enabled. Default: 20000.
Stream Read Timeouthttp2StreamReadTimeoutIndependent timeout for reading data of a single HTTP/2 request stream, in milliseconds. Purpose: the stream is interrupted when reading exceeds this duration. Valid values: integer, 1~3600000; required when HTTP/2 is enabled. Default: 20000.
Stream Write Timeouthttp2StreamWriteTimeoutIndependent timeout for writing response data of a single HTTP/2 request stream, in milliseconds. Purpose: the stream is interrupted when writing exceeds this duration. Valid values: integer, 1~3600000; required when HTTP/2 is enabled. Default: 20000.

# Deleting an HTTP Channel

Deleting an HTTP channel opens a confirmation dialog; click OK to delete it.

image-20260626091957273

# Virtual Hosts

Provides full lifecycle management of virtual hosts, supporting creation, configuration, modification, deletion, and state management. Virtual hosts bind domain name/IP aliases to HTTP channels to achieve isolated deployment of multiple domains and sites, and also support access control, log configuration, SSO integration, and custom extensions.

# Virtual Host List

Click "Configuration → Virtual Hosts" in the left menu:

image-20260624203233261

Query conditions:

Query Condition Description Example
Name Matches the virtual host name; the input hint is "Please enter virtual host name" admin
Alias Matches access domain aliases; the input hint is "Please enter alias" www.example.com
Document Root Matches the document root directory path; click the folder icon inside the input to select a directory; the hint is "Please enter document root" webapps

After entering conditions, click "Query" to filter the list; click "Reset" to clear all query conditions. Above the list are "Create" and "Refresh" buttons; below the list are the total record count and pagination controls.

List fields:

Field Description
Name Unique business identifier of the virtual host; click the name to open the edit page
Alias List of domain/IP aliases matched by this virtual host
Document Root Base directory for static resources and application deployment
Default Virtual Host Whether it is the system default virtual host: Yes / No
Actions Delete; the default virtual host provides no delete action

admin is the default virtual host used by the management console itself and cannot be deleted; localhost is also a default virtual host.

# Creating a Virtual Host

  1. In the virtual host list, click "Create" to open the "Configuration / Virtual Hosts / Create Virtual Host" page;
  2. Fill in the name (required), document root, aliases, and other basic parameters; configure SSO and access control policies as needed;
  3. To attach response headers, click "Add Response Header" and fill in "Header Name / Header Value" row by row; click the delete icon at the row end to remove extra rows;
  4. Click "Save" to finish creating, or "Cancel" to discard this configuration and return to the list.

image-20260624204018653

Parameter descriptions:

SettingParameterDescription
NamenameUnique business identifier of the virtual host. Purpose: distinguishes virtual hosts in the configuration; domain-name style naming is supported; cannot be changed when editing. Valid values: string; only letters, digits, ., -; globally unique; no maximum length (≤64 characters recommended); required. Default: empty.
AliasaliasAccess domain matching list of the virtual host. Purpose: a request whose Host header matches any domain in the list is routed to this virtual host; supports main domain plus wildcard subdomains. Valid values: string; multiple domains separated by commas; each segment must comply with DNS naming rules; total length ≤256 characters recommended; required. Default: empty.
Document RootdocBaseRoot document directory of the virtual host. Purpose: specifies the base directory for static resources and application deployment under this virtual host. Valid values: string; relative or absolute path; ≤255 characters; required. Default: webapps.
SSOssoWhether single sign-on is enabled. Purpose: when on, SSO login logic is enabled for this virtual host and applications on the same host share the login state. Valid values: switch, On / Off. Default: Off.
SSO Cookie HttpOnlyssoHttpOnlyWhether the SSO cookie carries the HttpOnly attribute. Purpose: when on, frontend JavaScript cannot read the cookie, defending against XSS credential theft; effective only when SSO is on. Valid values: switch, On / Off. Default: Off.
IP WhitelistaccessIpWhitelistAccess IP whitelist policy. Purpose: only clients matching an IP regex in the list can access; empty means no restriction; if the whitelist and blacklist have the same value, the blacklist is void. Valid values: string; multiple IP regexes separated by commas; each a standard IP regex; 1~255 characters. Default: empty.
IP BlacklistaccessIpBlacklistAccess IP blacklist interception rules. Purpose: clients matching an IP regex in the list are denied directly; if the whitelist and blacklist have the same value, the blacklist is void. Valid values: string; multiple IP regexes separated by commas; standard IP regex syntax. Default: empty.
Domain WhitelistaccessDomainWhitelistHost domain whitelist. Purpose: only matching domains can access; if the whitelist and blacklist have the same value, the blacklist is void. Valid values: string; domain regexes separated by commas; standard domain regex syntax. Default: empty.
Domain BlacklistaccessDomainBlacklistHost domain interception blacklist. Purpose: Host requests matching the regex are rejected with 403; if the whitelist and blacklist have the same value, the blacklist is void. Valid values: string; domain regexes separated by commas. Default: empty.
Allowed Access TimeaccessTimeService access time restriction. Purpose: clients may access only within the configured periods; requests outside the periods are intercepted; empty means open 24 hours. Valid values: string; period format HH:mm:ss-HH:mm:ss; multiple periods separated by commas; time range 00:00:00 ~ 23:59:59; 1~128 characters. Default: empty.
Custom Response HeadersextraPropsCustom HTTP response headers. Purpose: appends the specified response headers to responses of this virtual host as key-value pairs, e.g. Cache-Control : no-cache. Valid values: multi-line text, one key : value pair per line. Default: empty.

The fields on the create virtual host page are the same as on the edit page.

# Editing a Virtual Host

Click a virtual host name to go to the virtual host edit page:

image-20260624203409496

The edit page fields are the same as the create page, except that "Name", as the unique business identifier, cannot be changed. After modifying, click "Save" to apply the configuration, or "Cancel" to discard the changes and return to the list.

# Deleting a Virtual Host

  1. In the list, click "Delete" in the Actions column of the target virtual host;
  2. The "Confirm Delete" dialog appears with the message 'Are you sure you want to delete virtual host "localhost"? The deletion takes effect after the server is restarted; associated HTTP channels or applications may not work properly';
  3. After verification, click "OK" to delete, or "Cancel" to abort.

vhost_delete_confirm

Deleting a virtual host takes effect after a server restart. Before deleting, make sure no application or HTTP channel depends on the virtual host; default virtual hosts cannot be deleted.

# Session Manager

The session manager configures the session management policy of web applications, including the session storage type, maximum sessions, and session persistence. It supports four storage types — Memory, File, Redis, and Database — which applications can reference as needed at deployment.

# Session Manager List

Click "Configuration → Session Manager" in the left menu:

session_mgr

Query conditions:

Query Condition Description Example
Name Matches the session manager name; the input hint is "Please enter session manager name" default
Type Filters by session storage type; the dropdown defaults to "All Types" Memory

After entering conditions, click "Query" to filter the list; click "Reset" to clear the query conditions. Above the list are "Create" and "Refresh" buttons; below the list are the total record count and pagination controls.

List fields:

Field Description
Name Unique identifier of the session manager
Type Session storage type: Memory, File, Redis, Database
Created At Creation time of the session manager
Updated At Time of the most recent modification
Actions Maintenance operations for the created session manager

# Creating a Session Manager

Click "Create" to go to the create session manager page. All types share the common attributes below; each type has its own storage attributes, and the "Advanced Attributes" section at the bottom of the page applies to all types.

Common attributes:

SettingParameterDescription
NamenameUnique identifier of the session manager. Purpose: globally identifies the session manager; applications reference it by this name at deployment. Valid values: string, letters / digits / underscores / hyphens only, max 64 characters, globally unique, required. Default: empty.
TypetypeSession storage type. Purpose: determines how session data is stored; cannot be modified after creation — create a new manager if a change is needed. Valid values: dropdown — Memory, File, Redis, Database; required. Default: Memory.
Max SessionsmaxSessionsMaximum number of sessions the server allows. Purpose: limits the total number of active sessions to prevent memory exhaustion. Valid values: integer, -1 or a positive integer, max 2147483647, required. Default: -1 (unlimited).
# Memory

The Memory type keeps sessions in server memory and supports a session persistence file used to restore sessions after a normal AAS shutdown or restart:

session_mgr_create

SettingParameterDescription
Session Persistence FilepersistPathOn a normal AAS shutdown or restart, in-memory sessions are serialized to this file and restored at the next startup. Purpose: implements session persistence; blank disables it and all sessions become invalid after a restart. Valid values: string, relative path only (absolute paths and .. segments are not allowed); the root directory is the application's work directory (e.g. ${apusic.home}/work/ams-service/localhost/sm-test); max 256 characters. Default: SESSIONS.ser.
# File

Building on in-memory management, the File type supports idle backup, idle swap-out, and a persistence directory, moving long-idle sessions to disk to free memory:

session_mgr_create_file

SettingParameterDescription
Save on RestartsaveOnRestartWhether all active in-memory sessions are serialized to files on a normal AAS shutdown or restart and deserialized at the next startup. Valid values: switch, On / Off. Default: On.
Max Idle Backup TimemaxIdleBackupA session idle longer than this time is automatically backed up to disk (it remains in memory). Purpose: idle sessions can be restored from disk after a failure without affecting in-memory access speed. Valid values: integer, in seconds; -1 disables automatic backup. Default: -1.
Min Idle Swap TimeminIdleSwapWhen sessions are swapped out to keep the total under Max Sessions, only sessions idle longer than this time may be swapped out. Purpose: avoids frequently swapping out active sessions. Valid values: integer, in seconds; -1 disables swap-out. Default: -1.
Max Idle Swap TimemaxIdleSwapA session idle longer than this time is swapped out to disk (removed from memory and reloaded on next access). Purpose: frees memory held by long-idle sessions. Valid values: integer, in seconds; -1 disables idle-based swap-out. Default: -1.
Persistence DirectorypersistenceDirDirectory where session persistence files are stored. Purpose: specifies the on-disk location for File-type sessions; the directory is created automatically if it does not exist; blank uses the server's built-in default directory. Valid values: string, relative path only (absolute paths and .. segments are not allowed); the root directory is the application's work directory (e.g. ${apusic.home}/work/ams-service/localhost/sm-test); max 512 characters. Default: empty (server default directory).
# Redis

The Redis type stores sessions in a Redis server and supports Standalone and Sentinel architecture modes, suitable for sharing sessions across multiple instances.

To use the Redis type, first install the Redis session plugin (aas-redis-package.zip) under plugins/redis of the AAS installation directory. If the plugin has not been loaded by the server, saving automatically configures common.loader, and AAS must be restarted for it to take effect.

session_mgr_create_redis

SettingParameterDescription
Architecture ModeredisModeRedis deployment architecture mode. Purpose: selects how Redis is deployed and accessed. Valid values: dropdown — Standalone / Sentinel. Default: Standalone.
Redis Node AddressredisNodesAddress of the standalone Redis service; shown when Architecture Mode is Standalone. Valid values: string, format ip:port, required. Default: empty.
Sentinel Node ListredisNodesAddresses of multiple sentinel instances; shown when Architecture Mode is Sentinel. Valid values: string, format ip:port, multiple nodes separated by commas, required. Default: empty.
Master NameredisMasterNameMaster library name configured in the sentinel cluster; shown when Architecture Mode is Sentinel. Valid values: string, max 256 characters, required. Default: empty.
Database IndexredisDatabaseRedis logical database index. Purpose: isolates session data of different applications or environments. Valid values: integer, 0–15, required. Default: 0.
Connection PasswordredisPasswordRedis connection password; leave blank if none. Valid values: string, max 256 characters. Default: empty.
Session Persist PolicysessionPersistPoliciesControls when sessions are written to Redis. The Default policy is always in effect (saved at request end if the session changed); the other two can be enabled additionally. Valid values: multi-select — Default (saved at request end if session changed) / Save on Change / Save After Every Request. Default: Default.
TimeoutredisConnectTimeoutTimeout shared by connection establishment and read/write operations (Jedis uses one timeout for both connect and read). Valid values: integer, in milliseconds, non-negative, max 2147483647, required. Default: 2000.
Max ConnectionsredisMaxConnMaximum number of active connections in the Redis connection pool. Valid values: positive integer, max 2147483647, required. Default: 100.
Min Idle ConnectionsredisMinIdleMinimum number of idle connections kept in the Redis connection pool. Valid values: non-negative integer, max 2147483647, required. Default: 10.
Max Idle ConnectionsredisMaxIdleMaximum number of idle connections allowed in the pool; connections beyond this limit are closed when returned. Valid values: positive integer; leave blank to use the kernel default. Default: empty (kernel default 8).
Max Wait TimeredisMaxWaitHow long a request blocks waiting for a connection when the pool has no idle connection available. Valid values: integer, in milliseconds, non-negative, max 2147483647, required. Default: 3000.
# Database

The Database type persists sessions to a database session table; prepare a data source in advance and execute the session table DDL in the database:

session_mgr_create_database

SettingParameterDescription
Save on RestartsaveOnRestartWhether all active in-memory sessions are serialized to files on a normal AAS shutdown or restart and deserialized at the next startup. Valid values: switch, On / Off. Default: On.
Max Idle Backup TimemaxIdleBackupA session idle longer than this time is automatically backed up to disk (it remains in memory). Purpose: idle sessions can be restored from disk after a failure without affecting in-memory access speed. Valid values: integer, in seconds; -1 disables automatic backup. Default: -1.
Min Idle Swap TimeminIdleSwapWhen sessions are swapped out to keep the total under Max Sessions, only sessions idle longer than this time may be swapped out. Purpose: avoids frequently swapping out active sessions. Valid values: integer, in seconds; -1 disables swap-out. Default: -1.
Max Idle Swap TimemaxIdleSwapA session idle longer than this time is swapped out to disk (removed from memory and reloaded on next access). Purpose: frees memory held by long-idle sessions. Valid values: integer, in seconds; -1 disables idle-based swap-out. Default: -1.
Application-local Data SourcelocalDataSourceTurn on when the data source is deployed inside the application (rather than at server level); the kernel looks up the data source through the application class loader. Valid values: switch, On / Off. Default: Off.
Data SourcedataSourceNameData source holding the session table. Purpose: specifies where the session table is stored; create it under "Resources → Data Sources" first, and execute the "Session Table DDL" provided on the page in the database (table name aas$sessions; column names and order must not be changed). When "Application-local Data Source" is on, enter the application-local data source JNDI name. Valid values: dropdown of created data sources, or an application-local JNDI name, max 256 characters, required. Default: empty.

Advanced attributes (common to all types):

SettingParameterDescription
Session Attribute Name FiltersessionAttributeNameFilterFilters session attributes to persist by attribute name. Purpose: uses a regular expression to limit which session attributes participate in persistence, reducing overhead. Valid values: string, regular expression, max 512 characters. Default: empty (no filtering).
Session Attribute Value Class FiltersessionAttributeValueClassNameFilterFilters session attributes to persist by attribute value class name. Purpose: uses a class-name regular expression to limit which attribute value types participate in persistence. Valid values: string, class-name regular expression, max 512 characters. Default: empty (no filtering).
Warn When Attribute FilteredwarnOnFilterFailureWhether a warning log is output when a session attribute is filtered out. Purpose: when on, a WARN-level log is recorded when an attribute fails the filter, making missing persistence easier to troubleshoot; otherwise only DEBUG is logged. Valid values: switch, On / Off. Default: Off.
Notify Attribute Listener on Same InstancenotifyAttributeOnUnchangedWhether setAttribute replacing an attribute with the same object still fires the HttpSessionAttributeListener attributeReplaced event (a new object with equal content is unaffected). Valid values: switch, On / Off. Default: On.
Fire Binding Events on Same InstancenotifyBindingOnUnchangedWhether setAttribute replacing an attribute with the same object still fires valueBound / valueUnbound events on values implementing HttpSessionBindingListener (a new object with equal content is unaffected). Valid values: switch, On / Off. Default: Off.

After filling in the fields, click "Save" to create the session manager. After creation it can be referenced in an application's session configuration. If the session manager is already bound to applications, saving automatically restarts the bound applications for the new configuration to take effect.

# Certificate Stores

The Apusic application server provides full lifecycle management of certificate stores, supporting creation, import, viewing, download, and deletion of certificate stores as well as management of certificate entries, meeting the certificate configuration needs of server HTTPS, SSL/TLS mutual authentication, and other security scenarios. The module supports mainstream certificate store formats such as JKS and PKCS12, distinguishes keystores from truststores, and provides certificate import, details viewing, download, and deletion, ensuring secure and compliant server communication.

Click "Configuration → Certificate Stores" in the left menu:

image-20260625094054477

# Creating a Certificate Store

You can create a truststore or a keystore; the store format can be JKS or PKCS12.

Click "Create" to go to the create certificate store page:

image-20260625094952729

Field descriptions:

SettingParameterDescription
NamenameUnique identifier of the certificate store. Purpose: globally identifies the certificate store; SSL/JMX and other configurations reference it by this name. Valid values: string, up to 64 characters; only letters, digits, underscores, hyphens, and dots; globally unique; required. Default: empty.
TypetypeCertificate store file format. Purpose: determines the storage format of the certificate store. Valid values: dropdown, JKS / PKCS12; required. Default: JKS.
Store TypestoreTypePurpose type of the certificate store. Purpose: controls the store's use — a keystore holds private keys and certificates (for the server identity), a truststore holds trusted public key certificates (for verifying the peer). Valid values: dropdown, Keystore / Truststore; required. Default: Keystore.
PasswordpasswordAccess password of the certificate store. Purpose: protects the store contents and is verified on read and write. Valid values: string, 8~32 characters; must contain letters, digits, and special characters; hidden on the page; required. Default: empty.
Confirm PasswordconfirmPasswordRe-enter the certificate store password. Purpose: confirms the password was entered correctly. Valid values: string, must match the Password field; required. Default: empty.

# Importing Content into a Certificate Store

Click "Import" to go to the import page. Whether a certificate or a key is imported depends on whether the current store is a keystore or a truststore.

# Importing a Certificate

image-20260625104805539

You can upload a certificate store file and export the contents of that store into the truststore you created.

Field descriptions:

SettingParameterDescription
Target Store Info—Name, store type, and type of the target certificate store. Purpose: shows the target of the import operation. Valid values: read-only, cannot be modified. Default: the currently selected certificate store information.
Target Store Type—Store type of the target certificate store, e.g. "Truststore (public key store)". Purpose: confirms the import direction. Valid values: read-only, cannot be modified. Default: the store type of the currently selected certificate store.
Upload StorefileSource certificate store file to upload. Purpose: imports the certificate entries from the source store into the target truststore. Valid values: file upload; JKS / PKCS12 formats; no larger than 10MB; required. Default: empty.
Store TypetypeFile format of the uploaded certificate store. Purpose: declares the format of the uploaded file; it must match the actual file. Valid values: dropdown, JKS / PKCS12; required. Default: JKS.
AliasaliasAlias of the certificate to import from the source store. Purpose: imports only a specific certificate entry; when empty, all certificate entries are imported by default. Valid values: string, must exist in the source store. Default: empty (import all entries).
Store PasswordsourcePasswordAccess password of the source certificate store. Purpose: used to read the source store contents. Valid values: string, hidden on the page. Default: empty.

You can also paste the certificate content directly (usually a .pem or .crt file) and import it into the truststore directly:

image-20260625104459361

Field descriptions:

SettingParameterDescription
Target Store Info—Name, store type, and type of the target certificate store. Purpose: shows the target of the import operation. Valid values: read-only, cannot be modified. Default: the currently selected certificate store information.
Target Store Type—Store type of the target certificate store, e.g. "Truststore (public key store)". Purpose: confirms the import direction. Valid values: read-only, cannot be modified. Default: the store type of the currently selected certificate store.
Public Key (Certificate) ContentcontentPasted certificate text content. Purpose: imports the certificate directly as text. Valid values: multi-line text; PEM and DER formats supported; required. Default: empty.
AliasaliasAlias of the certificate in the target store after import. Purpose: identifies the imported certificate entry; when empty, all certificate entries are imported by default. Valid values: string. Default: empty.

After importing, click the certificate store to go to its details page, where all entries of the store can be viewed:

image-20260625105050128

Click "Details" to open a popup with the entry's information, including signature algorithm, validity period, owner, issuer, etc.

image-20260625105155134

Click "Delete" to open a confirmation dialog; clicking "OK" deletes the entry.

image-20260625105232656

# Importing a Key

You can upload a keystore file and export the contents of that store into the keystore you created.

image-20260625105824801

Field descriptions:

SettingParameterDescription
Target Store Info—Name, store type, and type of the target certificate store. Purpose: shows the target of the import operation. Valid values: read-only, cannot be modified. Default: the currently selected certificate store information.
Target Store Type—Store type of the target certificate store, e.g. "Keystore (private key store)". Purpose: confirms the import direction. Valid values: read-only, cannot be modified. Default: the store type of the currently selected certificate store.
Upload StorefileSource keystore file to upload. Purpose: imports the key entries from the source keystore into the target keystore. Valid values: file upload; JKS / PKCS12 formats; no larger than 10MB; required. Default: empty.
Store TypetypeFile format of the uploaded keystore. Purpose: declares the format of the uploaded file; it must match the actual file. Valid values: dropdown, JKS / PKCS12; required. Default: JKS.
Store PasswordsourcePasswordAccess password of the source keystore. Purpose: used to read the source keystore contents. Valid values: string, hidden on the page; required. Default: empty.
Entry PasswordkeyPasswordPassword that unlocks a specific private key entry in the source keystore; shown when the target store type is PKCS12. Purpose: PKCS12 allows a separate password per key entry, while JKS has only the store password. Valid values: string, hidden on the page. Default: empty.
AliasaliasAlias of the key entry to import from the source keystore. Purpose: imports only a specific key entry; when empty, all entries are imported by default. Valid values: string, must exist in the source keystore. Default: empty (import all entries).
Target AliastargetAliasAlias in the target certificate store after import. Purpose: identifies the imported key entry. Valid values: string, must be unique in the target store. Default: empty.
Private Key Password (target store)targetKeyPasswordPassword for storing the private key in the target certificate store; shown when the target store type is PKCS12. Purpose: PKCS12 allows a separate password per key entry, while JKS has only the store password. Valid values: string, hidden on the page. Default: empty.
Confirm Password (target store)confirmTargetKeyPasswordRe-enter the private key password of the target certificate store; shown when the target store type is PKCS12. Purpose: confirms the private key password was entered correctly. Valid values: string, must match the private key password. Default: empty.

You can also paste the key content directly (usually a .pem or .key file) and import it into the keystore directly (note that the content must be unencrypted and must not contain "ENCRYPTED PRIVATE KEY"):

image-20260625110544955

After importing, click the certificate store name to view the imported entries:

image-20260625134124023

Click an entry to delete it; a confirmation dialog appears, and clicking Confirm deletes the entry:

image-20260625134311734

# Downloading a Certificate Store

Downloads the certificate store file to the local machine. The downloaded file contains all certificate entries.

image-20260625134748544

# Deleting a Certificate Store

Before deletion, the system checks whether the store is referenced by an HTTP channel; if it is referenced, the deletion fails.

image-20260625134458003

# Viewing a Certificate Store

Shows the basic information of a certificate store and its certificate entry list, and supports viewing the details of a single certificate (algorithm, validity period, type, etc.).

image-20260625134842750

Click the Details button to view the entry's validity period, signature algorithm, owner, issuer, and other information:

image-20260625134923152

# Thread Pools

The Apusic application server management console provides full lifecycle management of thread pools, supporting creation, configuration, modification, deletion, and state management of thread pools. Through thread pool parameter tuning, server resources are allocated reasonably and concurrent requests are handled efficiently, preventing thread exhaustion or frequent creation and destruction, and ensuring service stability and performance. It supports fine-grained configuration of the core thread pool parameters (core threads, max threads, queue size, idle time, priority) to meet the concurrency requirements of different business scenarios.

Click "Configuration → Thread Pools" in the left menu to configure thread pool parameters of all kinds, including core threads, max threads, queue size, idle timeout, thread priority, etc.

image-20260624205635111

# Creating a Thread Pool

image-20260628102647956

Field descriptions:

SettingParameterDescription
NamenameUnique identifier of the thread pool. Purpose: globally identifies the thread pool; HTTP channels and other configurations reference it by this name; cannot be changed when editing. Valid values: string, 1~64 characters; only letters, digits, underscores, hyphens; globally unique; required. Default: empty.
Min ThreadsminThreadsCore number of threads of the pool. Purpose: the minimum number of threads the pool keeps at all times. Valid values: integer, 1~65535, must be less than or equal to Max Threads; required. Default: 10.
Max ThreadsmaxThreadsMaximum number of threads the pool may create. Purpose: limits the upper bound of threads processing requests concurrently. Valid values: integer, 1~65535, must be greater than or equal to Min Threads; required. Default: 200.
Queue SizequeueSizeCapacity of the waiting queue. Purpose: holds request tasks that have not yet been processed. Valid values: integer, 1~65535; required. Default: 4096.
Idle TimeoutmaxIdleTimeIdle keep-alive time of non-core threads, in milliseconds. Purpose: idle threads are reclaimed after this duration. Valid values: integer, 1~86400000 (1 day); required. Default: 60000.
Step ReclaimthreadStepReclaimWhether stepped batch reclamation of idle threads is enabled. Purpose: when on, idle threads are reclaimed in batches step by step, avoiding a sudden drop in thread count. Valid values: switch, On / Off. Default: Off.
Reclaim CountthreadStepSizeNumber of idle threads reclaimed per batch during step reclamation; shown when Step Reclaim is on. Purpose: controls the number of threads reclaimed per batch. Valid values: integer, 1~65535. Default: 20.
Reclaim IntervalthreadStepTimeInterval between step-reclaim batches, in milliseconds; shown when Step Reclaim is on. Purpose: controls the interval between adjacent batches. Valid values: integer, 1~86400000 (1 day). Default: 10000.
Connection Auto ReclaimconnectionAutoReclaimAuto reclamation policy for data source connections. Purpose: controls how connections are reclaimed after a request ends — "Auto" reclaims connections automatically when the request ends, "Detect Only" only detects leaks and allows manual reclamation. Valid values: dropdown, Disabled / Auto / Detect Only; required. Default: Disabled.
PrioritypriorityCPU scheduling priority of threads. Purpose: a larger number means a higher chance of being scheduled by the CPU first. Valid values: dropdown, 1~10. Default: 5.

# Editing a Thread Pool

In the thread pool list, click the thread pool name to open the "Thread Pools" edit page:

threadpool_edit

The edit page has the same fields as the create page, except that Name is read-only and cannot be changed. After modifying the other parameters, click "Save" to apply, or "Cancel" to discard the changes.

The server must be restarted for thread pool parameter changes to take effect.

# Deleting a Thread Pool

In the thread pool list, click "Delete" in the Actions column; the thread pool is deleted after confirmation.

Built-in thread pools (such as admin-thread-pool) provide no delete entry; before deleting, make sure no HTTP channel or other configuration references the thread pool, otherwise associated features may fail.

# Monitoring and Diagnostics

# Monitor Config

The application server management console provides fine-grained performance monitoring and diagnostics. By configuring the monitoring service, you can enable real-time data collection for core components such as the JVM, web container, thread pools, data sources (JDBC connection pools), and HTTP channels.

Click "Monitoring → Monitor Config" in the left menu. The page contains four tabs: "Monitoring Service", "Alert Settings", "API Services", and "SNMP Config".

# Monitoring Service

image-20260625135212744

You can configure the monitoring service switch, the collection interval, and the per-module monitoring status (data sources, HTTP channels, thread pools, application sessions, Full GC, JVM, CPU, memory, etc.).

Field descriptions:

SettingParameterDescription
Monitor ServicemonitorServiceMaster switch of the monitoring service. Purpose: when on, monitoring data of each module is collected at the collection interval; when off, collection stops for all monitoring data. Valid values: switch, On / Off. Default: Off.
Monitor MBeanmonitorMbeanWhether MBean monitoring is enabled. Purpose: when on, more fine-grained runtime metrics are collected through MBeans. Valid values: switch, On / Off. Default: Off.
Collection IntervalcollectIntervalMonitoring data collection interval, in seconds. Purpose: controls the sampling frequency; a shorter interval means denser data and higher overhead. Valid values: integer, 10~3600. Default: 10.
Max Data PointsmaxDataPointsMaximum number of data points retained for monitoring data. Purpose: limits the scale of historical data shown in monitoring charts. Valid values: integer. Default: empty (system default limit).
Module StatusmoduleStatusIndependent switches for monitoring each module (data sources, HTTP channels, thread pools, application sessions, Full GC, JVM, CPU, memory, etc.). Purpose: enables monitoring for the corresponding modules on demand; only enabled modules produce monitoring data. Valid values: switch, On / Off (set per module). Default: Off.

Only the enabled monitoring items produce the corresponding monitoring data.

# Alert Settings

Alert Settings proactively notify operations personnel when monitored metrics become abnormal. An alert is triggered when "current value > threshold" and "consecutive occurrences >= the configured count".

monitor-config-alarm

Field descriptions:

Setting Description
Monitoring Alert Master switch of monitoring alerts. When on, alerts are detected and sent according to the alert item rules; when off, no alerts are produced. Default: Off.
Alert Interval Minimum interval (in minutes) between identical alerts, used to prevent alert storms. Valid values: positive integer. Default: 30.
Alert Method Alert notification method; multiple selections supported: Email / SNMP / Alert Platform.
Alert Items List of metrics to check, each with a threshold and a consecutive-occurrence count: CPU Usage (%, default 80, 3 times), Memory Usage (%, default 80, 3 times), Full GC Count (times/minute, default 5), Full GC Time (ms, default 1000, 2 times), HTTP Timeout Requests (default 10, 2 times), HTTP Waiting Tasks (default 10, 3 times), HTTP Errors (default 5, 2 times).

Click "Save" to apply the configuration; click "Restore Defaults" to reset this page to factory defaults.

# API Services

API Services expose the server's monitoring data through standard interfaces, making it easy to integrate third-party monitoring platforms such as Prometheus and Grafana.

monitor-config-api

Field descriptions:

Setting Description
Prometheus Service When on, exposes the metrics endpoint /aas-console/metrics for Prometheus to scrape monitoring metrics. Default: Off.
Restful Service When on, provides the JSON monitoring data interface /aas-console/metrics/data. Default: Off.
Security Authentication Authentication method for the interfaces: None / Basic Auth / Authorization Request Header. Default: None. Enabling authentication is recommended in production.
Whitelist List of IP addresses allowed to access the API services. Separate multiple IPs with commas or line breaks; leave empty for no restriction (up to 512 characters or 100 addresses). Supported formats: CIDR (e.g. 10.0.0.0/24, 2001:db8::/32), single IP (e.g. 127.0.0.1, fe80::1), wildcard (IPv4 only), range (IPv4 only).

Click "Save" to apply the configuration; click "Restore Defaults" to reset this page to factory defaults.

grafana_dashbord

# SNMP Config

SNMP Config enables the SNMP agent service so that third-party network management systems can collect server monitoring data over the SNMP protocol.

monitor-config-snmp

Field descriptions:

Setting Description
SNMP Agent Service Whether the SNMP agent is enabled. Default: Off.
Bind Address IP address the SNMP service binds to; 0.0.0.0 means listening on all available network interfaces. Default: 0.0.0.0.
Bind Port Port the SNMP service binds to; ports below 1024 usually require root privileges. Default: 161.
Transport Protocol Type Transport protocol type of SNMP. Default: udp.
Protocol Version SNMP version; only one can be set. Default: v2c.
SNMP Community Name SNMP community name. Default: public. Changing the default community name is recommended in production.

Click "Save" to apply the configuration; click "Restore Defaults" to reset this page to factory defaults.

Appendix:SNMP-OID Monitoring Item Mapping

# Monitor Data

Displays real-time data of core components such as system resources, JVM, data sources, application sessions, HTTP channels, and thread pools in chart form, and provides dedicated diagnostics such as SQL Trace, Class Loading Trace, and Full GC monitoring.

# System Resources

Perceives the CPU load, memory usage, and disk space status of the server node in real time.

Click "Monitoring → Monitor Data" in the left menu:

If it shows that the monitoring service is off, enable system resource monitoring in Monitor Config first.

13_monitor_data

Click "Historical Data" to view the collected historical data.

image-20260625135758981

  • CPU monitoring: monitors the overall CPU usage of the system in real time;
  • Memory monitoring: monitors total, used, free, and cached physical memory; monitors the usage of the swap partition;
  • Disk monitoring: monitors the space usage (%) and remaining free space (GB) of all mounted partitions;
  • Virtual memory monitoring: monitors virtual memory usage;
  • Server basic information: operating system, CPU architecture, CPU cores, etc.;
  • System load: average load of the CPU task queue over 15 minutes;
  • Network IO: real-time uplink/downlink traffic rate of the server network interfaces.

# JVM Monitoring

Shows key JVM metrics such as heap memory, non-heap memory, class loading, thread status, and garbage collection.

image-20260625141841053

image-20260625142332003

  • Memory monitoring: distinguishes heap from non-heap memory, with fine-grained monitoring of memory pools (such as Code Cache, Metaspace).
  • Thread monitoring: monitors the thread count in real time, provides deadlock detection, and can show detailed thread stacks.
  • GC monitoring: monitors the frequency and duration of Young GC and Full GC.

# Data Source Monitoring

Monitors the running status of connection pools in real time: current active connections, idle connections, connections waiting to be acquired, and suspected leaks.

When no data source is configured, this page shows "No data".

image-20260625143008972

# Application Sessions

Monitors, for each application in real time, the number of created sessions, expired sessions, active sessions, rejected sessions, and passivated sessions.

image-20260625143351407

# HTTP Channels

Monitors current connections, total processed requests, errors, bytes sent and received, total processing time, and maximum processing time in real time.

image-20260625143513223

# Thread Pools

Collects and displays the running status of thread pools in real time, including the core configuration (max/min threads) and runtime metrics (active threads, idle threads, task queue backlog, etc.).

image-20260625143602505

Click "Details" to show other monitoring content of the thread pool.

image-20260625143658315

# SQL Trace

SQL Trace captures SQL statements executed through data sources together with their execution time, helping locate slow SQL statements and database access performance problems.

Click "Monitoring → Monitor Data" in the left menu and switch to the "SQL Trace" tab:

monitor-data-sql-trace

Trace Control

Setting Description
Slow SQL Threshold In milliseconds. Set to 0 to capture all SQL statements; set to a positive value (e.g. 2000) to capture only slow SQL statements whose execution time exceeds the threshold. The threshold is saved when tracing is started. Default: 0.
Max SQL Records Maximum number of SQL records retained per data source; the oldest records are deleted automatically when the limit is exceeded. Saved when tracing is started. Default: 10000.
Enable Stack When on, records the call stack of each SQL statement to help locate where the SQL is invoked; stack collection adds extra performance overhead. The stack switch is saved when tracing is started. Default: Off.
Data Source Trace Config Click "Configure Trace Events" to configure the events to trace per data source in the "Data Source Trace Parameters" dialog; when no data source is configured, "No data source" is shown.

Performance impact notice: full tracing (threshold = 0) has a significant impact on system performance. In production, enable it only briefly while troubleshooting, and prefer filtering with a "duration > 0" threshold.

Click "Start Trace" to begin capturing SQL; click again to stop tracing.

Trace Record Query

Supports combined queries of trace records by execution time range, data source, trace event, and SQL keyword (fuzzy search). Trace record list fields: Trace Event, SQL Statement, Execution Count, Duration (ms), Max Duration (ms), Execution Time, Data Source, Actions. Click "Export" to export trace records locally; click "Refresh" to get the latest records.

# Class Loading Trace

Class Loading Trace shows the hierarchy of class loaders inside the server and the details of each class loader, helping troubleshoot class conflicts and class loading order issues.

Click "Monitoring → Monitor Data" in the left menu and switch to the "Class Loading Trace" tab:

monitor-data-class-loading

  • At the top of the page, enter a fully qualified Java class name (e.g. com.example.MyClass) to search; click "Reset" to clear the search criteria;
  • The "Class Loader Hierarchy" tree on the left shows the hierarchy from BootstrapClassLoader down to each application's class loader; click a node to view its details on the right;
  • "Class Loader Details" on the right shows the selected class loader's application, class name, instance name, HashCode identity, and class path list.

# Full GC Monitoring

Full GC Monitoring captures Full GC / Mixed GC events in real time to assist memory problem analysis.

Click "Monitoring → Monitor Data" in the left menu, switch to the "Full GC" tab, and click "Start Monitoring" to begin capturing GC events:

monitor-data-fullgc

Page content:

  • Query conditions: filter GC events by start time and end time; click "Search" to apply the filter and "Reset" to restore the default time range;
  • GC Event Frequency chart: shows the trend of Full GC count and Mixed GC count over time;
  • GC Duration chart: shows the trend of GC duration over time;
  • Memory Region Usage: shows the usage of each memory region;
  • GC Event Details and Diagnosis: list fields include Start Time, GC Type, Duration (ms), Cause, Before/After (MB), Total Count, Actions; supports exporting CSV and viewing the associated Heap Dump.

# Snapshots

Snapshot management packages and exports the server's diagnostic information with one click, for problem reporting and offline analysis. It supports manual snapshot generation as well as automatic snapshot policies.

Click "Monitoring → Snapshots" in the left menu. The page contains two tabs: "Snapshot List" and "Auto Snapshot".

# Snapshot List

The "Snapshot List" tab shows the snapshots generated so far:

monitor_snapshot

Query conditions

Query Condition Description Example
Snapshot Name Fuzzy query by snapshot name snapshot-2026
Created At Filter by creation time range 2026-09-01 ~ 2026-09-21
Status Filter by snapshot status: All / Pending / Generating / Completed / Failed / Partially Failed All

List fields

Field Description
Name Snapshot name
Created At Creation time of the snapshot
Size Size of the snapshot package
Status Pending / Generating / Completed / Failed / Partially Failed
Actions Download / Delete

# Generating a Snapshot

Click "Generate Snapshot" to check the diagnostic content to package and configure the corresponding parameters:

monitor_snapshot_create

Selectable snapshot content:

Snapshot Content Description
Access Logs Packages HTTP access logs
GC Logs Packages garbage collection logs
System Configuration Packages server configuration information
System Logs Packages system runtime logs
Host Monitoring Data Packages host resource monitoring data
Instance Monitoring Metrics Packages instance monitoring metric data
System Coredump Packages system core dump files (depends on debugging tools such as gdb; the page shows a hint)
Thread Stacks Packages thread stack information; the capture count (default 3) and interval between captures (default 1 second) can be configured
Heapdump Packages the heap dump file; the mode can be selected (live: live objects only)

After the configuration is done, click OK to generate the snapshot. While it is being generated the status is "Generating"; when done the status becomes "Completed".

# Downloading and Deleting a Snapshot

  • Download: click "Download" in the Actions column of the snapshot list to download the snapshot package locally for problem reporting and offline analysis;
  • Delete: click "Delete" in the Actions column of the snapshot list and confirm in the dialog to delete the snapshot package.

# Auto Snapshot

The "Auto Snapshot" tab configures the automatic snapshot policy, which consists of a basic policy and trigger conditions:

snapshot_auto_tab

Setting Description
Enable Auto Snapshot Master switch of auto snapshots; the monitoring service must be enabled, otherwise a complete snapshot cannot be obtained
Snapshot Content The content to package in auto snapshots (Access Logs, GC Logs, System Configuration, System Logs, Host Monitoring Data, Instance Monitoring Metrics, System Coredump, Thread Stacks, Heapdump); Thread Stacks allows configuring the capture count (default 3, 1 second apart) and Heapdump the mode (live: live objects only)
Max Snapshots Retained Upper limit of retained auto snapshots; auto snapshots beyond this count are deleted automatically
Generation Interval Minimum time difference between two auto snapshots, in minutes
Trigger Conditions A snapshot is triggered when "current value > threshold" and "consecutive occurrences ≥ the configured count"; thresholds and consecutive occurrence counts can be configured per metric (such as CPU usage, memory usage, etc.)

# Replay

Replay shows historical monitoring data on a timeline, making it easy to review and analyze the system's running status within a period.

Click "Monitoring → Replay" in the left menu:

monitor_replay

  • Tabs: System Resources, JVM Monitoring, Data Sources, Application Sessions, HTTP Channels, Thread Pools;
  • Supports selecting a time range to query historical data;
  • Playback controls: play/pause, next frame, timeline slider dragging, playback speed selection (1x etc.);
  • Displays the metrics at the selected time point in charts (such as CPU usage, memory usage, virtual memory usage, etc.).

# Performance

Performance collection samples and analyzes server performance based on async-profiler and generates result files such as flame graphs, used to locate CPU hotspots, lock contention, and other performance issues.

Click "Monitoring → Performance" in the left menu. The page contains two tabs: "Data Collection" and "Trace Analysis".

# Environment Precheck

After entering the "Data Collection" tab, the system first performs an environment precheck to confirm that the server meets the sampling conditions:

monitor_perf

  • Operating system architecture: checks whether the current server architecture (such as Linux x86_64) supports performance collection;
  • async-profiler installation status: shows whether the component is installed and its version (the figure shows v3.0 installed);
  • perf_event_open permission: checks whether the kernel sampling permission is normal;
  • JDK version risk hint: with JDK versions below 8u352, high-frequency sampling has a crash risk, and the page shows a warning.

# Collection Configuration and Execution

  1. Select the collection type, e.g. CPU;
  2. Set the collection duration, default 30 seconds (10~600 seconds recommended);
  3. Set the sampling interval, default 10000000 nanoseconds (10ms);
  4. Select the output format: HTML flame graph, JFR, SVG;
  5. For fine control of sampling behavior, fill in collection parameters such as lock=10us, cstack=fp in the advanced parameters;
  6. Click "Start Collection" to start sampling; when done, the result file can be viewed / downloaded; click "Reset" to restore the default configuration.

# Trace Analysis

Click the "Trace Analysis" tab to enter the trace configuration page:

perf_trace

Trace parameter configuration:

Setting Description Example
Min Request Duration Only requests exceeding this value are recorded, in milliseconds 3000
Min Method Duration Only methods exceeding this value are recorded; should be less than the min request duration, in milliseconds 200
Deadline The task stops automatically at this time; when left empty it must be stopped manually Select a date
Target Application Only traces classes loaded in the selected application, which can greatly shorten the startup time LuxuryMall (/LuxuryMall)
Included Packages Multiple package names separated by commas; lower priority than "Excluded Packages" com.demo.
Excluded Packages Multiple package names separated by commas; higher priority than "Included Packages" com.apusic.,org.,com.google.

Probe settings:

Click the "Probe Settings" button to configure the APM probe directory:

perf_trace_probe

  • APM directory: specifies the directory path of the APM probe;
  • After saving, the JVM parameter -javaagent:<APM directory>/agent.jar is added automatically; AAS must be restarted for it to take effect.

Running a trace:

  1. After completing the trace parameter configuration, click "Start Trace" to start trace data collection;
  2. The page shows the "Trace Duration" timer in real time;
  3. When the deadline is reached or the trace is stopped manually, the trace data is saved to the "Trace Records" list.

Trace record query:

Query Condition Description
Start Time Filters trace records by date range
Status Filters by trace task status
Data Size Greater Than (KB) Filters by a lower bound of data size

Trace record list fields: Name, Start Time, End Time, Status, Trace Parameters, Data Size, Actions (View / Download / Delete).

# Thread Monitor

Thread Monitor periodically samples server threads and displays the thread count changes, each thread's CPU usage, memory allocation, and the request being processed, in real time; it also supports thread diagnosis.

Click "Monitoring → Thread Monitor" in the left menu. The page contains two tabs: "Thread Monitor" and "Thread Diagnosis":

monitor_thread

# Starting Thread Monitoring

  1. Configure the sampling parameters: sampling interval (default 3 seconds), sample data size (default 10MB);
  2. Click "Start Monitoring" to begin sampling; the page shows the thread count trend chart in real time (total threads, active HTTP threads, system CPU trend) and thread pool cards (e.g. http-thread-pool, showing working threads, created threads, max threads; figure: working threads 0 / created 25 / max 200);
  3. During sampling you can click "Export Monitoring Data" to export the sampled data for offline analysis.

# Filtering and Viewing Thread Information

The thread information list supports the following filters:

Filter Options
Thread Type All / HTTP Threads / Others
Thread Status All Statuses / RUNNABLE / BLOCKED / WAITING / TIMED_WAITING
CPU Usage All / ≥20% / ≥40% / ≥60% / ≥80%

List fields:

Field Description
Thread Name Name identifier of the server thread
ID Unique number of the thread
Status Current running status of the thread, e.g. RUNNABLE, WAITING
CPU Usage CPU usage percentage of the thread within the sampling period
Accumulated CPU Total CPU time consumed by the thread since startup
Allocated Memory Memory allocated by the thread
Thread Pool The pool the thread belongs to, e.g. http-thread-pool
Current Request The request address the thread is processing
Current Request Duration Time elapsed processing the current request
Actions Terminate / Stack

# Thread Diagnosis

Click the "Thread Diagnosis" tab to enter the thread diagnosis page:

thread_diagnosis

Initial-state actions:

Action Description
Import Monitoring Data Imports thread monitoring sample data collected externally for offline diagnosis
Export Monitoring Data Exports the current monitoring sample data
Export Diagnosis Report Exports the diagnosis report after diagnosis is complete (unavailable before diagnosis)
Start Diagnosis Runs diagnosis analysis on the most recent monitoring sample data

Diagnosis result page:

After clicking "Start Diagnosis", the system analyzes the sample data and produces the diagnosis result:

thread_diagnosis_result

The diagnosis result contains the following modules:

  • Summary: shows the server IP, sampling time range, sampling interval, number of samples, and report generation time; includes a "Thread Count / System CPU Trend" line chart (total threads, active HTTP threads, system CPU) and an "HTTP Thread Pool Trend" line chart (working threads, created threads, configured max);
  • Diagnosis Opinion: the diagnostic conclusion automatically produced from the sample data, e.g. "No obvious abnormality was found during the diagnosis period";
  • Deadlock Detection: automatically detects whether thread deadlocks occurred during sampling, e.g. "No deadlock detected";
  • Thread Operation Analysis: contains two sub-tabs, "Thread Operation Timeline" and "Thread Operation Statistics".

Thread operation analysis:

thread_diagnosis_timeline

  • Thread Operation Timeline: shows each thread's operation records on a timeline; supports filtering by thread type (All / HTTP Threads / Others) and operation type (CPU operations / Network access / Disk IO / Thread blocking), and fuzzy query by thread name;
  • Thread Operation Statistics: shows aggregated operation data of each thread in a statistical view.

Note: Thread diagnosis depends on the sample data collected in the "Thread Monitor" tab. Start monitoring and complete sampling in the "Thread Monitor" tab first, then switch to the "Thread Diagnosis" tab to run the diagnosis analysis.


# Operations Inspection

The Operations Inspection module provides automated inspection and security checking of the server, including one-click inspection, class resource analysis, security baseline checking, script recording, and more, helping administrators quickly understand the server's health and security compliance status.

# One-Click Inspection

One-click inspection collects the running status data of the current Apusic application server and generates a corresponding inspection report.

Click "Operations Inspection → One-Click Inspection" in the left menu:

ops_inspection

# Running an Inspection

Click the "Inspect" button to trigger an inspection task. The system collects the server's running status data and, when the inspection finishes, generates an inspection report in the "Inspection Result List".

ops_inspection_config

SettingParameterDescription
TimeouttimeoutTimeout of the inspection task, in seconds. Purpose: when data collection reaches this limit, subsequent collection tasks are terminated automatically; after termination, the instance data already collected is still available. Valid values: integer, ≥1, up to 172800 seconds (48 hours). Default: 600.

# Querying and Downloading Inspection Results

Query conditions

Query Condition Description Example
Inspection Result Fuzzy query by inspection result name inspection-2026
Status Filter by inspection task status All
Start Time / End Time Filter by inspection start and end time range 2026-09-01 ~ 2026-09-21

List fields

Field Description
No. Sequence number of the inspection result
Inspection Result Inspection result name
Status Execution status of the inspection task
Timeout (seconds) Timeout configured for this inspection
Date Execution date of the inspection
Actions Download / Delete / Re-inspect

Click "Download" to download the inspection report locally for analysis; click "Re-inspect" to run another inspection based on that result; click "Delete" and confirm in the dialog to delete the inspection result.

# Class Resource Analysis

Class Resource Analysis inspects class loading of applications to detect class conflicts and redundant dependencies, helping troubleshoot runtime exceptions caused by duplicate classes or inconsistent versions. You can select a deployed application or upload a new application package for real-time analysis.

Click "Operations Inspection → Class Resource Analysis" in the left menu. The page contains two tabs: "Online Analysis" and "Analysis Records".

# Online Analysis

The "Online Analysis" tab is used to start a class resource analysis task:

class-analysis-online

Field descriptions:

Setting Description
Analysis Target Required. Either "Deployed Application" or "Upload Application". Default: Deployed Application.
Select Application Required when the analysis target is "Deployed Application". Select from the dropdown an application already deployed on the application server; the target must be an application already deployed on the application server.
Application File Required when the analysis target is "Upload Application". Application files in .war / .jar / .zip format are supported; the recommended file size is no more than 500 MB.
Scan Scope The default * scans all classes of the target application. Enter class names or package prefix wildcards, separated by semicolons (😉, e.g. java.lang.Object;com.aas.*.
Analysis Content Required; at least one item must be selected: Conflict Detection / Redundancy Detection. Both are selected by default.

When "Upload Application" is selected, the page provides a file upload entry:

class-analysis-upload

After completing the configuration, click "Start Analysis" to run the analysis; click "Reset" to clear what you have entered. When the analysis finishes, the page automatically switches to the "Analysis Records" tab.

# Analysis Records

The "Analysis Records" tab shows the results of previous analysis tasks and supports combined queries by analysis time range, analysis target, and application/file name:

class-analysis-records

List fields:

Field Description
Analysis Time Execution time of the analysis task
Analysis Target Deployed Application / Upload Application
Application/File Name of the analyzed application or uploaded file
Analysis Content Analysis items selected for this analysis (Conflict, Redundancy)
Status Execution status of the analysis task (Running / Completed / Failed)
Result Summary Summary of the detection result, e.g. "Redundant 1"
Actions View / Delete / Export Report

Click "View" to open the analysis detail page, which shows the issue list and, for each problematic class, its sources, type, and resolution advice:

class-analysis-detail

Click "Export Report" to export the analysis result locally; click "Delete" and confirm to delete the analysis record.

# Security Baseline

Security Baseline provides compliance checking of the server's security configuration, with built-in common detection rules and support for custom rules, running checks, and generating detection reports.

Click "Operations Inspection → Security Baseline" in the left menu. The page contains two tabs: "Detection Rules" and "Detection Reports".

# Detection Rule List

The "Detection Rules" tab shows all detection rules and supports filtering and batch operations:

ops_baseline

Query conditions

Query Condition Description Example
Rule Name Fuzzy query by rule name Port conflict check
Config Type Filter by strong config / weak config All
Check Item Fuzzy query by check item keyword endpoint
Status Filter by enabled / disabled All

List fields

Field Description
Rule Name Detection rule name; click to view the rule configuration
Description Description of what the rule checks
Config Type Strong config / weak config. A non-compliant strong config causes the instance to fail to start; a non-compliant weak config does not affect startup but outputs an exception log
Severity Low / Medium / High — the severity when non-compliant, used to calculate the overall report result
Check Item Locating information of the configuration item the rule checks
Applicable Platform All / Linux etc.; rules not applicable to the platform get the result "Not applicable"
Status Enabled / Disabled; disabled rules do not participate in checks
Actions Delete

Page action buttons: Run Check, Add Rule, Baseline Settings, Report Config, Batch Enable, Batch Disable.

Examples of built-in detection rules:

  • Console audit log retention check: checks that the audit log retention period is no less than 180 days (MLPS requirement);
  • Console password complexity policy check: checks the console password policy — minimum length no less than 8 characters and containing at least 2 of letters, digits, and special symbols;
  • Console built-in account initial password check: checks that the built-in accounts (admin/secure/audit) have all completed the first-login password change;
  • Console login failure lockout check: checks that login failure lockout is enabled for the console and that both the password retry count and the user lock duration are greater than 0;
  • Port conflict check: checks whether the ports of all endpoints in apusic.conf are duplicated;
  • Startup script umask check: checks whether the startup script sets umask 027 (offline static check);
  • Disk space check: checks that the free space of the disk holding the log directory is no less than 10%;
  • JMX password file permission check: checks that the permissions of the jmxremote.password file do not exceed 644.

# Running a Check

Run Check immediately executes a compliance check on the selected rules and generates a detection report:

  1. In the detection rule list, check the rules to check (multiple selection supported);
  2. Click the "Run Check" button; if no rule is selected, the top of the page prompts "Please select rules to check first":

baseline_run_click

  1. After selecting rules, click "Run Check"; the system checks configuration compliance rule by rule:

baseline_run_select

  1. When the check completes, the page switches to the "Detection Reports" tab automatically and a new report is generated in the report list; see "Detection Reports".

# Adding a Rule

Click "Add Rule" to enter the "Add Detection Rule" page. The form has three groups: "Basic Information", "Check Configuration", and "Remediation Advice":

baseline_rule_create

baseline_rule_create_2

Basic Information

SettingParameterDescription
Rule NameruleNameName of the detection rule. Purpose: uniquely identifies a detection rule. Valid values: string, 1~128 characters; should briefly and clearly describe what is checked; required. Default: empty.
Rule DescriptionruleDescDetailed description of the rule. Purpose: describes the purpose and meaning of the check. Valid values: string, 0~512 characters. Default: empty.
Config TypeconfigTypeConfiguration strength of the rule. Purpose: a non-compliant strong config causes the instance to fail to start; a non-compliant weak config does not affect startup but outputs an exception log. Valid values: single choice, Strong Config / Weak Config. Default: Strong Config.
SeverityseveritySeverity when non-compliant. Purpose: used to calculate the overall report result (Normal / Minor Abnormality / General Abnormality / Severe Abnormality). Valid values: single choice, High / Medium / Low. Default: Medium.
Applicable PlatformplatformOperating system platform the rule applies to. Purpose: rules not applicable to the platform get the result "Not applicable" and are excluded from the overall result statistics. Valid values: dropdown, e.g. All, Linux. Default: All.
StatusstatusEnabled state of the rule. Purpose: disabled rules do not participate in checks. Valid values: single choice, Enabled / Disabled. Default: Enabled.
ExecutorexecutorExecutor of the rule. Purpose: kernel rules are executed by the application server and require a check source and check mode; console rules are executed by the management console and need no check source configuration. Valid values: single choice, Kernel / Console. Default: Kernel.

Check Configuration

SettingParameterDescription
Source TypesourceTypeSource type of the check data. Purpose: determines the meaning of the locator and attribute as well as the form fields displayed. Valid values: dropdown, one of XML Config (apusic.conf, web.xml, context.xml, etc.), Properties Config (apusic.properties, logging.properties, etc.), Text Content (regex match), JVM Args (vm.options), File Attributes (permission / owner / size, etc.), Custom Script; required. Default: XML Config (apusic.conf, web.xml, context.xml, etc.).
Target FiletargetFilePath of the file to check. Purpose: locates the file to check; the value is a path relative to the instance root directory. Valid values: string, e.g. conf/apusic.conf, conf/vm.options, conf/logging.properties, conf/keystore.jks; a directory (e.g. logs) may be entered when the source type is "File Attributes (permission / owner / size, etc.)"; not required when "Custom Script" is selected; required for the other types. Default: empty.
LocatorlocatorLocating expression of the configuration element. Purpose: locates the content to check within the target file; the syntax varies with the source type. Valid values: for XML Config, an XPath expression such as /config/endpoints/endpoint[@name='admin-http']; for Properties Config, a property key such as java.util.logging.ConsoleHandler.level; for Text Content, a regular expression such as jdwp|-Xdebug; for JVM Args, a single argument name without the - prefix, such as Xmx, Dfile.encoding; not applicable to the File Attributes and Custom Script types. Default: empty.
AttributeattrNameName of the attribute to read. Purpose: for the XML Config type, the XML attribute name of the element — when left empty, the element's text content is taken, e.g. port; for the File Attributes type, a file attribute name: mode (permission), owner, group, size, mtime (modification time), freeSpacePercent (free disk space percentage); not applicable to the other types. Default: empty.
Ignore Comment LinesignoreCommentsWhether to skip comment lines during the check. Purpose: shown only for the "Text Content (regex match)" type; when on, # comment lines are skipped before matching to avoid false positives from commented content. Valid values: switch, On / Off. Default: Off.
OperatorcheckModeHow the actual value is compared with the expected value. Purpose: works with the expected value to determine compliance. Valid values: dropdown, one of Equals, Not equals, Greater than, Greater than or equals, Less than, Less than or equals, Contains, Regex matches, Regex not matches, Exists, Not exists; "Exists / Not exists" requires no expected value; when "Regex not matches" is selected and no expected value is entered, a locator hit is judged as a violation. Default: Equals.
ExpectedexpectedValueRecommended value given by the rule author. Purpose: used together with the operator; may differ from the factory default. Valid values: string; for the JVM Args source type, enter the value in the original JVM argument format, e.g. 1024m; for switch-type arguments, + / - is used as the expected value. Default: empty.
Fail when value is still factory defaultdefaultAsViolationOptional judgment condition. Purpose: when on, the rule is judged non-compliant if the configuration item is still at its factory default (suitable for scenarios such as default passwords); at least one of "operator + expected value" and this switch must be configured, and when both are configured both conditions must be met; when off, "is default" is only marked in the report and does not affect the compliance judgment. Valid values: switch, On / Off. Default: Off.

When "Custom Script" is selected as the source type, the "Check Config" group shows only the source type, and the remaining parameters are replaced by the "Custom Check Script" group:

Custom Check Script

SettingParameterDescription
Script TypescriptTypeType of the check script. Purpose: determines the content format and execution mode of the script. Valid values: dropdown; currently Groovy is supported. Default: Groovy.
Script NamescriptNameName of the script file. Purpose: a file name without a directory; after saving, the script is stored in the instance's conf/baseline/checkers/ directory. Valid values: string, e.g. port-conflict.groovy. Default: empty.
Check ScriptscriptContentContent of the check script. Purpose: write the custom check logic; for the writing conventions see "Custom Check Script Conventions". Valid values: Groovy script code; required. Default: empty.

Remediation Advice

SettingParameterDescription
Problem DescriptionproblemDescProblem description shown when the check fails. Valid values: string. Default: empty.
Fix AdvicefixAdviceDetailed remediation steps and suggestions. Valid values: string. Default: empty.
ReferencereferenceRelated document link or reference material. Valid values: string. Default: empty.

After filling in, click "Save" to create the rule, or "Cancel" to abort and return to the list.

# Source Type and Parameter Differences

The locator syntax, the meaning of the attribute, and the form fields displayed differ across source types, summarized as follows:

Source Type Locator Syntax Attribute Form Differences Typical Check Scenarios
XML Config (apusic.conf, web.xml, context.xml, etc.) XPath expression XML attribute name; the element text is taken when left empty Shows all check parameters SSLEnabled of the management channel, session timeout
Properties Config (apusic.properties, logging.properties, etc.) Property key Not applicable Attribute not shown Log level and other key-value configurations
Text Content (regex match) Regular expression Not applicable Attribute not shown; Ignore Comment Lines shown Remote debugging arguments and other "presence means violation" items
JVM Args (vm.options) Single argument name without the - prefix Not applicable Attribute not shown Heap memory lower bound, GC arguments, system properties
File Attributes (permission / owner / size, etc.) Not applicable mode / owner / group / size / mtime / freeSpacePercent Locator not shown; the target file may be a directory Keystore permissions, free space of the log directory
Custom Script Not applicable Not applicable Target File, Locator, Operator, and Expected not shown; the Custom Check Script group is shown Port conflict and other checks that require custom logic
# Source Type Configuration Examples
# Example 1: XML Config — Mandatory HTTPS check for the management console

Checks whether SSL is enabled on admin-http, the dedicated channel of the management console; if not enabled, the check fails:

baseline-rule-src-xml

Check Config values:

Setting Value
Source Type XML Config (apusic.conf, web.xml, context.xml, etc.)
Target File conf/apusic.conf
Locator /config/endpoints/endpoint[@name='admin-http']
Attribute SSLEnabled
Operator Equals
Expected true

Check logic: the XPath locates the endpoint element named admin-http, reads its SSLEnabled attribute, and judges the rule compliant if the value equals true; otherwise non-compliant.

# Example 2: Properties Config — Console log level check

Checks whether the console log output level is INFO:

baseline-rule-src-properties

Check Config values:

Setting Value
Source Type Properties Config (apusic.properties, logging.properties, etc.)
Target File conf/logging.properties
Locator java.util.logging.ConsoleHandler.level
Operator Equals
Expected INFO

Check logic: reads the value of the property key from logging.properties and judges the rule compliant if it equals INFO; the Properties type uses the property key as the locator and has no attribute parameter.

# Example 3: Text Content (regex match) — Remote debugging argument disable check

Checks whether remote debugging (jdwp or -Xdebug) is enabled in vm.options; any occurrence is a violation:

baseline-rule-src-text

Check Config values:

Setting Value
Source Type Text Content (regex match)
Target File conf/vm.options
Locator jdwp\|-Xdebug
Ignore Comment Lines On
Operator Regex not matches
Expected empty

Check logic: searches the file content (with # comment lines skipped) for jdwp or -Xdebug by regular expression; when the operator is "Regex not matches" and the expected value is empty, a locator hit is judged non-compliant, and no hit at all is judged compliant.

# Example 4: JVM Args (vm.options) — Maximum heap memory lower-bound check

Checks whether the maximum heap memory is no less than 1024m:

baseline-rule-src-vmargs

Check Config values:

Setting Value
Source Type JVM Args (vm.options)
Target File conf/vm.options
Locator Xmx
Operator Greater than or equals
Expected 1024m

Check logic: parses the value of the -Xmx argument in vm.options and judges the rule compliant if it is greater than or equal to 1024m; the JVM Args type uses a single argument name as the locator (without the - prefix), the expected value is entered in the original JVM argument format, and switch-type arguments are compared with + / - as the expected value.

# Example 5: File Attributes — Keystore file permission check

Checks that the permissions of the keystore file do not exceed 644 to prevent other users from reading it:

baseline-rule-src-file

Check Config values:

Setting Value
Source Type File Attributes (permission / owner / size, etc.)
Target File conf/keystore.jks
Attribute mode
Operator Less than or equals
Expected 644

Check logic: reads the permission bits of the target file and judges the rule compliant if they are less than or equal to 644; permission rules rely on the operating system permission model, so setting the applicable platform to Linux is recommended. To check the free space of the log directory, enter a directory as the target file (e.g. logs), enter freeSpacePercent as the attribute, and select "Greater than or equals" as the operator.

# Example 6: Custom Script — Port conflict check

Checks whether the listening ports of all endpoints in apusic.conf are duplicated; the rule is executed by the kernel:

baseline-rule-src-script

Check Config values:

Setting Value
Source Type Custom Script
Script Type Groovy
Script Name port-conflict.groovy
Check Script Groovy script content of the port conflict check

Check logic: the script is executed by the baseline engine inside the server, parses the port numbers of all endpoints in apusic.conf, and returns a non-compliant result with the details of the duplicated ports when duplicates exist; for the writing conventions see "Custom Check Script Conventions".

# Custom Check Script Conventions

When Groovy is selected as the script type, the check script follows these conventions:

  • The script is executed inside the JVM where the baseline engine runs and can use the binding variable ctx (the check context): ctx.resolve("conf/apusic.conf") returns a File object relative to the instance root directory; ctx.getApusicBase() returns the instance root directory;
  • The script can read the binding variable lang to obtain the current report language (en, zh_TW, or empty for Simplified Chinese) and output messages in the corresponding language;
  • A return value of true means compliant and false means non-compliant; a Map may also be returned (violated indicates whether it is non-compliant, output is the detail message) to show detailed check results in the report.

# Baseline Settings

Click "Baseline Settings" to enter the baseline settings page and configure the global baseline checking policy:

baseline_settings

SettingParameterDescription
Enable Baseline Security CheckbaselineEnabledMaster switch of baseline checking. Purpose: controls startup-time automatic checks and scheduled checks; manual triggering is not restricted. Valid values: switch, On / Off. Default: Off.
Block Startup on Strong ViolationblockOnStrongStartup-time strong-config interception switch. Purpose: when on, the service is prevented from starting if a strong config check fails at startup. Valid values: switch, On / Off. Default: On.
Block Console Startup on Strong ViolationblockConsoleOnStrongConsole startup-time interception switch. Purpose: when on, if any strong config violation is found in the merged report during console startup, the console is blocked (all requests return 503 with the violation reason); when off, only a warning log is recorded and nothing is blocked. Valid values: switch, On / Off. Default: On.
Alert on ViolationalertOnViolationWarning log switch. Purpose: outputs a warning log when the configuration is non-compliant, for O&M tracking. Valid values: switch, On / Off. Default: On.
Scheduled (cron)cronScheduling expression for scheduled automatic checks. Purpose: runs the baseline check automatically on the cron schedule; empty means no scheduling; changes take effect without a restart. Valid values: 6-field cron (second minute hour day month week), e.g. 0 0 2 * * ?. Default: empty.

After the configuration is done, click "Save" to apply, or "Cancel" to discard the changes.

# Report Config

Click "Report Config" to enter the report configuration page and configure the generation and retention policy of detection reports:

baseline_report_config

SettingParameterDescription
Report File PathreportPathStorage directory of detection report files. Purpose: report storage path relative to the instance root directory. Valid values: string, e.g. logs/baseline; required. Default: logs/baseline.
Report FormatreportFormatReport output format. Purpose: HTML for human review, JSON for consumption by the console and O&M platforms. Valid values: dropdown, HTML / JSON. Default: HTML.
Report LanguagereportLangLanguage of the report content. Valid values: dropdown, e.g. Simplified Chinese. Default: Simplified Chinese.
Report File NamereportNameNaming template of the report file. Purpose: supports the variables ${instance} and ${timestamp}. Valid values: string, e.g. baseline-${instance}-${timestamp}; required. Default: baseline-${instance}-${timestamp}.
Check Default ValuescheckDefaultDefault value marking switch. Purpose: when on, items that differ from the factory defaults are marked in the report. Valid values: switch, On / Off. Default: On.
Backup Config FilesbackupConfigPre-check backup switch. Purpose: automatically backs up the checked configuration files before running a check, for rollback. Valid values: switch, On / Off. Default: On.
Backup CountbackupCountNumber of configuration file backups retained. Purpose: the oldest backups are cleaned automatically beyond this count; 0 means no backups, -1 means unlimited. Valid values: integer. Default: 30.
Max Reports RetainedmaxReportsUpper limit of retained reports. Purpose: older reports beyond this count are cleaned automatically to avoid occupying too much disk space. Valid values: integer; required. Default: 20.

After the configuration is done, click "Save" to apply, or "Cancel" to discard the changes.

# Enabling/Disabling Baselines

Enable / disable controls whether rules participate in checks: in the detection rule list, check one or more rules and click "Batch Enable" or "Batch Disable"; the change takes effect immediately and the "Status" column of the list updates to "Enabled" or "Disabled":

baseline_batch_select

Note: Batch Enable / Batch Disable takes effect immediately after the click, with no confirmation dialog; verify the selected rules before operating. Disabled rules do not participate in subsequent checks.

# Deleting a Baseline

In the detection rule list, click "Delete" in the Actions column; in the confirm-delete dialog, click "Confirm" to delete the rule, or "Cancel" to abort:

baseline_rule_delete_confirm

# Detection Reports

The "Detection Reports" tab shows the reports generated by previous checks and supports filtering by report name, overall result, and detection time; the report list columns include Report Name, Check Time, Overall Result (Normal / Minor Abnormality / General Abnormality / Severe Abnormality), Normal/Abnormal items, Report Size, Report Format, and Actions (Download / Delete); the page also provides "Batch Delete" and "Export" buttons:

baseline_report_tab

Click a report name to enter the report details page, which contains:

  • Report Summary: checked instance, check time, report file, number of rules checked, and overall result;
  • Result Statistics: counts of items that are Normal, Minor Abnormality, General Abnormality, Severe Abnormality, using default values, and using custom values;
  • Configuration Item Check Details: columns include No., Rule Name, Config Type, Severity, Check Item, Actual Value, Suggested Value, Factory Default, Is Default, Result, Description; supports filtering by result (All / Normal / Minor Abnormality / General Abnormality / Severe Abnormality / Not configured or not applicable) and config type (Strong Config / Weak Config), and "Download" exports the details:

baseline_report_detail

Deleting a report: in the report list, click "Delete" in the Actions column (or check reports and click "Batch Delete"); in the confirm-delete dialog, confirm to delete the report file:

baseline_report_delete_confirm

# Script Recording

Script recording records diagnostic script data (such as thread stacks and GC) while the server runs, so that on-site information can be collected when a problem occurs.

Click "Operations Inspection → Script Recording" in the left menu:

ops_script_recording

# Querying Recording Tasks

Query conditions

Query Condition Description Example
Name Fuzzy query by recording task name thread-dump
Status Filter by recording task status All
Recording Date Filter by recording date range 2026-09-01 ~ 2026-09-21

List fields

Field Description
Name Name of the recording task
Created By User who created the recording task
Recording Date Creation date of the recording task
Recording Duration/Timeout Actual recording duration and the configured timeout
Status Current status of the recording task
Description Description of the recording task
Actions Actions offered based on the status (e.g. Delete)

# Creating a Recording Task

Click "Create" to create a recording task:

ops_script_recording_create

SettingParameterDescription
NamenameName of the recording task. Purpose: uniquely identifies a script recording task. Valid values: string, ≤255 characters; only letters, digits, underscores, hyphens, dots; required. Default: empty.
TimeouttimeoutTimeout of the recording task, in minutes. Purpose: recording stops automatically when this duration is reached. Valid values: integer, in minutes; required. Default: 30.
DescriptiondescriptionDescription of the recording task. Purpose: notes the purpose and background of the recording. Valid values: string, ≤1000 characters. Default: empty.

After filling in, click "Save" to create the recording task. The Status in the list then shows "Recording" and operations start being recorded. Click "Stop" in the actions to stop the recording task manually; the task also stops recording automatically when the timeout is reached.

Scripts are stored in the ${apusic.home}/data/script-recording/<script name> directory.

# Downloading Scripts

After recording is complete, click "Download" in the actions and select the script format to download. Three formats are available: aascli, postman, and curl; multiple selections are supported.

  • aascli: Script in AAS command-line client format, used for replay via the aascli tool.
  • postman: Postman Collection v2.1 format, which can be imported into Postman for execution.
  • curl: Shell + cURL format script, which can be executed in any environment that supports curl.

# Executing Scripts

The downloaded scripts can be executed in the corresponding way. Note the following:

  1. Use the tool corresponding to the script format for execution.
  2. Before executing a script, modify the attribute values according to the actual situation, including name, path, username, password, etc.
  3. Before executing an aascli script, you need to log in to aascli first when executing for the first time:
./aascli.sh login -u <username> -p <password>
1

​ After logging in, press Ctrl + C to exit, and then execute the recorded script.

  1. Before executing a curl script, set the actual values of AAS_BASE_URL and TOKEN.

  2. Before executing a postman script, set the actual values of AAS_BASE_URL and Authorization.

# Deleting Scripts

On the script recording list page, click "Delete" in the actions to delete a script.

Once deleted, the script cannot be recovered. Please operate with caution.


# Log Service

The Log Service module of the application server management console supports visual log viewing, keyword search, and log export/download; it supports full visual configuration of system logs and access logs, covering log level, output format, encoding, rotation policy, compression and archiving, filter rules, and retention policy; it also supports log rotation by both date and file size, achieving automatic log cleanup and compression archiving.

# Log Viewer

Provides visual viewing pages for system runtime logs (such as apusic.log) and access logs, supporting switching between multiple log files, log level filtering, and keyword search, with dynamic refresh, so that administrators can quickly troubleshoot system exceptions and locate problems.

# System Logs

Click "Logs → Log Viewer" in the left menu.

Supports querying by a specific log file, log level, time range, keyword, etc.

image-20260625144512491

Click the "Download" button to download the log file.

# Access Logs

Click "Logs → Log Viewer → Access Logs" in the left menu.

# Raw Logs

Supports viewing the raw content of log files, covering both system logs and access logs.

Click "Logs → Log Viewer → Raw Logs" in the left menu.

image-20260625145811873

Click Live Refresh to scroll dynamically; log file updates are displayed in real time.

# Log Config

# System Log Config

Provides full visual configuration of the application server's system runtime logs, covering the global log level, log format, output encoding, log output path, rotation policy, compression archiving, and filter rules.

Click "Logs → Log Config" in the left menu:

image-20260625150317722

image-20260625152838043

Basic Config

SettingParameterDescription
Global Log LevelglobalLevelGlobal log output level of the system. Purpose: controls the verbosity of logs; logs below this level are not output. Valid values: dropdown, SEVERE / WARNING / INFO / CONFIG / FINE / FINER / FINEST; required. Default: INFO (set to FINE in the installation package's logging.properties).
Custom Class LevelsclassLoggersIndependent log levels for specific Java packages or classes. Purpose: sets a separate log level for the specified classes / packages, overriding the global level. Valid values: string, 1~255 bytes, format such as org.apache.apusic=INFO,org.apache.coyote=INFO, multiple entries separated by commas. Default: empty.
Console OutputconsoleEnabledWhether logs are output to the console. Purpose: when on, logs are also printed to the standard output. Valid values: switch, On / Off. Default: On.
File OutputfileEnabledWhether logs are output to a file. Purpose: when on, logs are written to log files. Valid values: switch, On / Off. Default: On.
Log File PrefixfilePrefixLog file name prefix. Purpose: forms the log file name together with the date format and suffix. Valid values: string, 1~100 characters; required. Default: apusic..
Log File SuffixfileSuffixLog file name suffix. Purpose: forms the log file name together with the prefix and date format. Valid values: string, 1~100 characters; required. Default: .log.
Log File EncodingencodingCharacter encoding of log files. Purpose: determines the encoding in which log content is written. Valid values: dropdown, UTF-8 / GBK; required. Default: UTF-8.
File Name Date FormatfileTimestampFormatDate format in the log file name. Purpose: full file name = log file prefix + date format + log file suffix. Valid values: string, 1~100 characters, date format pattern; required. Default: yyyy-MM-dd.
Retention DaysmaxDaysNumber of days log files are retained. Purpose: logs older than the retention period are deleted automatically; 0 or a negative value means unlimited. Valid values: integer, -1~500; required. Default: 90 (90 in the installation package's logging.properties).

Log Format Config

SettingParameterDescription
Console Log PatternconsolePatternLog format template for console output. Purpose: defines the output style of console logs. Valid values: string, 1~500 characters, format template, e.g. %d{yyyy-MM-dd HH:mm:ss} [%t] %-5level %logger{36} - %msg%n; required. Default: built-in system template.
File Log PatternfilePatternLog format template for file output. Purpose: defines the style of logs written to files. Valid values: string, 1~500 characters, format template, e.g. %d{yyyy-MM-dd HH:mm:ss} [%t] %-5level %logger{36} - %msg%n; required. Default: built-in system template.

Log Compression Config

SettingParameterDescription
Log CompressioncompressEnabledWhether log compression archiving is enabled. Purpose: when on, historical logs are compressed and archived on a schedule. Valid values: switch, On / Off. Default: Off.
Compression TimecompressTimeScheduled compression execution time, format HH:mm. Purpose: every day at the specified time, the logs produced the previous day are compressed. Valid values: time, 00:00~23:59, format HH:mm; required when compression is on. Default: 02:00.
Compression DirectorycompressDirStorage path of compressed files. Purpose: specifies the directory where compressed archives are stored. Valid values: string, 1~500 characters, supports variables such as ${apusic.base}/logs/archive; required when compression is on. Default: ${apusic.base}/logs/archive.

Log Rotation Config

SettingParameterDescription
Rotate by DaterotateByDateWhether a new log file is generated per day. Purpose: when on, a new log file is generated every day. Valid values: switch, On / Off. Default: On.
Rotate by SizemaxSizeSize limit of a single log file, in MB. Purpose: the log file rotates automatically when it reaches this size; 0 means no size-based rotation. Valid values: integer, 0~10000, in MB; required. Default: 0.

# Access Log Config

Provides full visual configuration of the application server's access logs, covering basic log information, log format, rotation policy, and compression policy.

Click "Logs → Log Config → Access Log Config" in the left menu:

image-20260625153347861

image-20260625153711336

Basic Config

SettingParameterDescription
Enable Access LogenabledWhether access logs are recorded. Purpose: when on, this tab shows "Virtual Hosts", "Log File Path", "Log File Encoding", "Enable Custom Format", "Log Content", "Record Request Headers", "Record Response Headers", "Record Cookies", "Record Sessions", "Write Buffer", "Buffer Size", "Retention Days" and the log rotation and compression sections; when off, the other properties are hidden. Valid values: switch, On / Off. Default: Off.
Virtual HostsvirtualHostsScope of virtual hosts with access logging enabled. Purpose: access logs are recorded only on the selected virtual hosts; shows all virtual host names from the "Virtual Hosts" module. Valid values: checkbox group; at least one virtual host must be selected. Default: all selected.
Log File PathdirectoryStorage path of access logs. Purpose: specifies the directory where access log files are stored. Valid values: string, a valid directory path, supports system variables; required. Default: ${apusic.base}/logs/localhost_access_log.
Log File EncodingencodingCharacter encoding of access log files. Purpose: determines the encoding in which log content is written. Valid values: dropdown, UTF-8 / GBK; required. Default: UTF-8.
Write BufferbufferEnabledWhether buffered file writing is enabled. Purpose: when on, log content is written to the file in one batch only when the accumulated size reaches the buffer size (and all is written when the server stops), improving logging performance; when off, each log entry is written immediately. Valid values: switch, On / Off. Default: On.
Buffer SizebufferSizeBuffered write threshold, in bytes; shown when Write Buffer is on. Purpose: accumulated log content is written to the file in one batch when it reaches this value. Valid values: integer, in bytes. Default: 32768.
Retention DaysmaxDaysNumber of days access log files are retained. Purpose: log files older than the retention period are deleted automatically; 0 or a negative value means retain forever. Valid values: positive integer. Default: 30.

Log Format Config

SettingParameterDescription
Log ContentselectedItemsContent items recorded in access logs. Purpose: selects the fields included in the log. Valid values: checkbox group with "Time", "Client IP", "Request Method", "Protocol", "HTTP Status Code", "Request URL", "Session ID", "Bytes Sent", "Thread Name", "Client Domain", "Local Port", "Application Name"; at least one must be checked; required. Default: "Time", "Client IP", "Request Method", "Protocol", "HTTP Status Code", "Request URL" checked.
Date FormatdateFormatOutput format of the time field. Purpose: controls the format of the time field in access logs. Valid values: string, date format pattern. Default: dd/MM/yyyy:HH:mm:ss.
Record Request HeadersrequestHeadersRequest header names to record. Purpose: records the values of the specified request headers in access logs. Valid values: string, multiple names separated by commas. Default: empty.
Record Response HeadersresponseHeadersResponse header names to record. Purpose: records the values of the specified response headers in access logs. Valid values: string, multiple names separated by commas. Default: empty.
Record CookiescookiesCookie names to record. Purpose: records the values of the specified cookies in access logs. Valid values: string, multiple names separated by commas. Default: empty.
Record SessionssessionAttrsSession attribute names to record. Purpose: records the values of the specified session attributes in access logs. Valid values: string, multiple names separated by commas. Default: empty.
Custom FormatcustomPatternCustom access log recording format; shown when Enable Custom Format is on. Purpose: customizes the log format with placeholders: %a remote IP address; %A local IP address; %B bytes sent (excluding HTTP headers); %D request processing time (milliseconds); %T request processing time (seconds); %h remote host name; %H request protocol; %m request method; %p local port; %q query string; %r first line of the request; %s response HTTP status code; %S user session ID; %t date and time; %u remote user authentication; %U request URL path; %v local server name; %I thread name processing the request; %X connection status; %N application name; %{XXX}i incoming request header; %{XXX}o outgoing response header; %{XXX}c specific cookie name; %{XXX}r ServletRequest attribute name; %{XXX}s HttpSession attribute name. Valid values: string, combination of format placeholders. Default: %t,%a,%m,%H,%s,%U.

Log Rotation

SettingParameterDescription
Rotate by TimerotateByDateWhether access logs rotate daily. Purpose: at 00:00 every day, all access logs of the previous day are cut into a new log file automatically. Valid values: switch, On / Off. Default: On.
Rotate by SizemaxSizeSize limit of an access log file, in MB. Purpose: a new log file is cut when the file size reaches this threshold. Valid values: integer, in MB. Default: 30.

Log Compression

SettingParameterDescription
Log CompressioncompressEnabledWhether access log compression archiving is enabled. Purpose: when on, "Compression Time" and "Compression Directory" are shown; when off, they are hidden. Valid values: switch, On / Off. Default: Off.
Compression TimecompressTimeScheduled compression execution time, format HH:mm. Purpose: compression is executed every day at the specified time. Valid values: time, 00:00~23:59, format HH:mm; required when compression is on. Default: 00:00.
Compression DirectorycompressDirStorage path of compressed files. Purpose: specifies the directory where compressed archives are stored. Valid values: string, supports variables such as ${apusic.base}/logs/archive; required when compression is on. Default: empty.

# Security

# Security Domains

This module is the core identity authentication and access control module of the application server. It is implemented based on the application server standard security realm specification and provides unified user authentication, role authorization, password verification, and session security management for the platform.

The module supports visual creation, configuration, and management of multiple types of security domains (DataSource Realm, UserDatabase Realm, JAAS Realm, JNDI Realm), and supports binding a security domain to an application or using it globally for the container, achieving unified management of authentication sources.

# DataSource Realm

A data source security domain. It compares the application's login users against the specified user table and role table in the database configured in a data source.

image-20260626143408567

image-20260626143547902

Field descriptions:

Basic Information

SettingParameterDescription
NamenameUnique identifier of the security domain. Purpose: globally identifies the security domain; used for application binding and log identification. Valid values: string, ≤128 characters; only letters, digits, underscores, hyphens; globally unique; required. Default: empty.
TypetypeImplementation type of the security domain. Purpose: determines the authentication data source and method. Valid values: dropdown, DataSource Realm / UserDatabase Realm / JAAS Realm / JNDI Realm; required. Default: empty.
DescriptiondescDescription of the security domain. Purpose: notes the purpose of the security domain. Valid values: multi-line text, up to 500 characters. Default: empty.
Password HashpasswordHashHash comparison algorithm for user passwords. Purpose: declares the hash algorithm used by the stored password field; authentication compares with this algorithm; leaving it unselected means plaintext storage. Valid values: dropdown, None (plaintext) / MD5 / SHA1 / SHA-256 / SHA-512; hashed passwords can be generated with the application server's built-in encryption tool:
Windows: bin/digest.bat -a SHA-256 -s 0 -i 1 [YOUR_PASSWORD]
Linux/Mac: bin/digest.sh -a SHA-256 -s 0 -i 1 [YOUR_PASSWORD]. Default: None (plaintext).

Lock Mechanism

SettingParameterDescription
Enable LocklockEnabledWhether the authentication failure lock mechanism is enabled. Purpose: when on, the user is locked after consecutive authentication failures reach the specified count. Valid values: switch, On / Off. Default: Off.
Max Failed AttemptsmaxFailedAttemptsConsecutive authentication failure lock threshold, in times. Purpose: the user is locked after consecutive failures reach this count. Valid values: integer. Default: 5.
Lock TimeoutlockTimeoutTime before a locked user is unlocked automatically, in seconds. Purpose: after the user is locked, the lock is released automatically once this time passes. Valid values: integer, in seconds. Default: 300.
Cache SizecacheSizeSize of the authentication cache. Purpose: sets the number of cached authentication result entries. Valid values: integer. Default: 1000.
Cache Removal Warning TimecacheRemovalWarningTimeCache removal warning time, in seconds. Purpose: a warning is triggered when a cache entry is removed before this time is reached. Valid values: integer, in seconds. Default: 3600.

DataSource Realm Config

SettingParameterDescription
Data Source JNDI NamedataSourceJndiJNDI name of the data source. Purpose: specifies the data source used for authentication queries; it must already be created in "Data Sources". Valid values: string, a valid JNDI name such as jdbc/mysql; required. Default: empty.
User TableuserTableDatabase table that stores user information. Purpose: users are queried from this table during authentication. Valid values: string, an existing table name in the database, e.g. users; required. Default: empty.
Username FieldusernameFieldColumn in the user table that stores usernames. Purpose: specifies the username field. Valid values: string, an existing column name in the user table, e.g. user_name; required. Default: empty.
Password FieldpasswordFieldColumn in the user table that stores passwords. Purpose: specifies the password field; compared using the password hash algorithm. Valid values: string, an existing column name in the user table, e.g. user_pass; required. Default: empty.
User Role TableroleTableDatabase table that stores user-role relationships. Purpose: user roles are queried from this table during authorization. Valid values: string, an existing table name in the database, e.g. user_roles; required. Default: empty.
Role Name FieldroleFieldColumn in the role table that stores role names. Purpose: specifies the role name field. Valid values: string, an existing column name in the role table, e.g. role_name; required. Default: empty.

# JAAS Realm

A JAAS Realm delegates the application server's authentication and authorization work to a custom LoginModule through the JAAS framework.

image-20260626150202250

image-20260626150416965

Basic Information

SettingParameterDescription
NamenameUnique identifier of the security domain. Purpose: globally identifies the security domain; used for application binding and log identification. Valid values: string, ≤128 characters; only letters, digits, underscores, hyphens; globally unique; required. Default: empty.
TypetypeImplementation type of the security domain. Purpose: determines the authentication data source and method. Valid values: dropdown, DataSource Realm / UserDatabase Realm / JAAS Realm / JNDI Realm; required. Default: empty.
DescriptiondescDescription of the security domain. Purpose: notes the purpose of the security domain. Valid values: multi-line text, up to 500 characters. Default: empty.
Password HashpasswordHashHash comparison algorithm for user passwords. Purpose: declares the hash algorithm used by the stored password field; authentication compares with this algorithm; leaving it unselected means plaintext storage. Valid values: dropdown, None (plaintext) / MD5 / SHA1 / SHA-256 / SHA-512; hashed passwords can be generated with the application server's built-in encryption tool:
Windows: bin/digest.bat -a SHA-256 -s 0 -i 1 [YOUR_PASSWORD]
Linux/Mac: bin/digest.sh -a SHA-256 -s 0 -i 1 [YOUR_PASSWORD]. Default: None (plaintext).

Lock Mechanism

SettingParameterDescription
Enable LocklockEnabledWhether the authentication failure lock mechanism is enabled. Purpose: when on, the user is locked after consecutive authentication failures reach the specified count. Valid values: switch, On / Off. Default: Off.
Max Failed AttemptsmaxFailedAttemptsConsecutive authentication failure lock threshold, in times. Purpose: the user is locked after consecutive failures reach this count. Valid values: integer. Default: 5.
Lock TimeoutlockTimeoutTime before a locked user is unlocked automatically, in seconds. Purpose: after the user is locked, the lock is released automatically once this time passes. Valid values: integer, in seconds. Default: 300.
Cache SizecacheSizeSize of the authentication cache. Purpose: sets the number of cached authentication result entries. Valid values: integer. Default: 1000.
Cache Removal Warning TimecacheRemovalWarningTimeCache removal warning time, in seconds. Purpose: a warning is triggered when a cache entry is removed before this time is reached. Valid values: integer, in seconds. Default: 3600.

JAAS Realm Config

SettingParameterDescription
User Principal ClassuserPrincipalClassFully qualified name of the Principal class representing the user identity after successful authentication. Purpose: AAS uses this Principal to identify the user. Valid values: string, fully qualified class names, multiple separated by commas; required. Default: empty.
Role Principal ClassrolePrincipalClassFully qualified name of the Principal class representing the user's role information. Purpose: AAS maps the names of these Principals to the user's roles. Valid values: string, fully qualified class names, multiple separated by commas; required. Default: empty.
LoginModule ConfigloginModuleConfigDefinition of the login module logic; a composite list containing: 1. loginModuleClass (LoginModule implementation class): the fully qualified name of a class implementing the javax.security.auth.spi.LoginModule interface, e.g. com.foo.auth.DatabaseLoginModule; 2. controlFlag (control flag): the verification strategy, one of required, requisite, sufficient, optional — see the control flag table below; 3. jaasOptions (JAAS parameters): passes extra parameters in KEY=value format, multiple separated by spaces. Valid values: list; at least one LoginModule must be configured; required. Default: empty.

Control flag descriptions:

Flag Module must succeed? After its own failure, do subsequent modules continue? After its own success, do subsequent modules continue? Main use
required Yes Yes Yes Must be satisfied, but all modules still run to collect more information
requisite Yes No, returns failure immediately Yes Must be satisfied, and short-circuits on failure; suitable for fast-fail scenarios
sufficient No Yes No, returns success immediately Sufficient condition; short-circuits on success; common in "one login method is enough" scenarios
optional No Yes Yes Optional condition; authentication continues regardless of success or failure

# JNDI Realm

JNDIRealm is a Realm implementation that connects to an LDAP directory server (such as OpenLDAP or Microsoft Active Directory) for authentication and authorization. Its core task is to delegate the security verification of web applications to a centralized directory service.

image-20260626151521080

image-20260626151619734

image-20260626151647121

image-20260626151716363

Basic Information

SettingParameterDescription
NamenameUnique identifier of the security domain. Purpose: globally identifies the security domain; used for application binding and log identification. Valid values: string, ≤128 characters; only letters, digits, underscores, hyphens; globally unique; required. Default: empty.
TypetypeImplementation type of the security domain. Purpose: determines the authentication data source and method. Valid values: dropdown, DataSource Realm / UserDatabase Realm / JAAS Realm / JNDI Realm; required. Default: empty.
DescriptiondescDescription of the security domain. Purpose: notes the purpose of the security domain. Valid values: multi-line text, up to 500 characters. Default: empty.
Password HashpasswordHashHash comparison algorithm for user passwords. Purpose: declares the hash algorithm used by the stored password field; authentication compares with this algorithm; leaving it unselected means plaintext storage. Valid values: dropdown, None (plaintext) / MD5 / SHA1 / SHA-256 / SHA-512; hashed passwords can be generated with the application server's built-in encryption tool:
Windows: bin/digest.bat -a SHA-256 -s 0 -i 1 [YOUR_PASSWORD]
Linux/Mac: bin/digest.sh -a SHA-256 -s 0 -i 1 [YOUR_PASSWORD]. Default: None (plaintext).

Lock Mechanism

SettingParameterDescription
Enable LocklockEnabledWhether the authentication failure lock mechanism is enabled. Purpose: when on, the user is locked after consecutive authentication failures reach the specified count. Valid values: switch, On / Off. Default: Off.
Max Failed AttemptsmaxFailedAttemptsConsecutive authentication failure lock threshold, in times. Purpose: the user is locked after consecutive failures reach this count. Valid values: integer. Default: 5.
Lock TimeoutlockTimeoutTime before a locked user is unlocked automatically, in seconds. Purpose: after the user is locked, the lock is released automatically once this time passes. Valid values: integer, in seconds. Default: 300.
Cache SizecacheSizeSize of the authentication cache. Purpose: sets the number of cached authentication result entries. Valid values: integer. Default: 1000.
Cache Removal Warning TimecacheRemovalWarningTimeCache removal warning time, in seconds. Purpose: a warning is triggered when a cache entry is removed before this time is reached. Valid values: integer, in seconds. Default: 3600.

JNDI Realm Config

Connection Config

SettingParameterDescription
Context FactorycontextFactoryFully qualified name of the JNDI context factory class. Purpose: specifies the factory implementation that creates the JNDI context. Valid values: string, fully qualified class name, e.g. com.sun.jndi.ldap.LdapCtxFactory. Default: com.sun.jndi.ldap.LdapCtxFactory.
Connection URLconnectionUrlAddress of the LDAP server. Purpose: specifies the location of the directory service. Valid values: string, LDAP URL format, e.g. ldap://127.0.0.1:389; required. Default: empty.
Alternate URLalternateUrlAddress of the backup LDAP server. Purpose: switches automatically when the primary LDAP server is unavailable. Valid values: string, LDAP URL format, e.g. ldap://backup.example.com:389. Default: empty.
Connection UsernameconnectionUsernameAdministrator DN used to connect to the LDAP server. Purpose: the bind account used to query the directory; can be left empty when anonymous search is supported. Valid values: string, a valid DN format. Default: empty.
Connection PasswordconnectionPasswordPassword for connecting to the LDAP server. Purpose: binds to the directory service together with the connection username. Valid values: string, hidden on the page. Default: empty.
Connection TimeoutconnectionTimeoutTimeout for establishing a connection to the LDAP server, in milliseconds. Purpose: the connection fails if it is not established within this time. Valid values: integer, in milliseconds. Default: 5000.
Read TimeoutreadTimeoutTimeout for reading data from the LDAP server, in milliseconds. Purpose: the read fails if no data returns within this time. Valid values: integer, in milliseconds. Default: 5000.
Connection Pool SizeconnectionPoolSizeSize of the LDAP connection pool. Purpose: controls the number of reused connections; a value of 1 means no connection pool. Valid values: integer. Default: 1.

User Search Config

SettingParameterDescription
User Search BaseuserSearchBaseStarting DN for searching user entries in the LDAP directory. Purpose: limits the directory scope of user searches. Valid values: string, a valid DN format, e.g. ou=users,dc=mycompany,dc=com. Default: empty.
User Search FilteruserSearchFilterLDAP filter used when searching for users. Purpose: matches user entries by the filter; {0} is the placeholder for the username. Valid values: string, LDAP filter syntax, e.g. (uid={0}). Default: empty.
User Subtree SearchuserSubtreeWhether all subtrees under the user search base are searched. Purpose: when on, the search scope includes all child nodes under the base DN. Valid values: switch, On / Off. Default: Off.
User DN PatternuserPatternDN pattern that replaces user search. Purpose: binds and authenticates by directly assembling the user DN, without searching. Valid values: string, DN template with {0} as the placeholder, e.g. cn={0},ou=users,dc=example,dc=com. Default: empty.
Search as UseruserSearchAsUserWhether user searches are executed as the currently authenticated user. Purpose: when off, the connection username/password is used; when no connection username/password is configured, an anonymous connection is used. Valid values: switch, On / Off. Default: Off.
User Password AttributeuserPasswordAttrAttribute name from which the password is read for comparison. Purpose: specifies the LDAP attribute storing the password; when left empty, bind authentication is used. Valid values: string, an LDAP attribute name, e.g. userPassword. Default: empty (bind authentication).

Role Search Config

SettingParameterDescription
Role Search BaseroleSearchBaseStarting DN for searching role entries in the LDAP directory. Purpose: limits the directory scope of role searches. Valid values: string, a valid DN format, e.g. ou=groups,dc=mycompany,dc=com. Default: empty.
Role Search FilterroleSearchFilterLDAP filter used when searching for roles. Purpose: matches role entries by the filter; {0} is the placeholder for the user DN. Valid values: string, LDAP filter syntax, e.g. (member={0}). Default: empty.
Role Name AttributeroleNameAttributeAttribute name in role entries that stores the role name. Purpose: reads the role name from role entries. Valid values: string, an LDAP attribute name, e.g. cn or roleName. Default: cn.
Role Subtree SearchroleSubtreeWhether all subtrees under the role search base are searched. Purpose: when on, the search scope includes all child nodes under the base DN. Valid values: switch, On / Off. Default: Off.
Role Nested SearchroleNestedWhether nested role search is enabled. Purpose: when on, if a user's group is nested in other groups, the roles of all parent groups are found recursively. Valid values: switch, On / Off. Default: Off.
Search Roles as UserroleSearchAsUserWhether role searches are executed as the currently authenticated user. Purpose: when off, the connection username/password is used; when no connection username/password is configured, an anonymous connection is used. Valid values: switch, On / Off. Default: Off.
Common RolecommonRoleDefault role automatically assigned to all users who pass authentication. Purpose: uniformly attaches this role to authenticated users. Valid values: string, a role name, e.g. authenticated. Default: empty.
User Role AttributeuserRoleAttributeAttribute name in user entries that contains roles. Purpose: reads the role list directly from the user entry. Valid values: string, an LDAP attribute name, e.g. memberOf. Default: empty.

# UserDatabase Realm

UserDatabaseRealm is an out-of-the-box security realm (Realm) implementation based on a local XML file, well suited for development and testing or small user counts.

It accesses user data through a JNDI resource and by default reads the conf/aas-users.xml file to verify user identities and roles.

image-20260626152928660

image-20260626153239048

Basic Information

SettingParameterDescription
NamenameUnique identifier of the security domain. Purpose: globally identifies the security domain; used for application binding and log identification. Valid values: string, ≤128 characters; only letters, digits, underscores, hyphens; globally unique; required. Default: empty.
TypetypeImplementation type of the security domain. Purpose: determines the authentication data source and method. Valid values: dropdown, DataSource Realm / UserDatabase Realm / JAAS Realm / JNDI Realm; required. Default: empty.
DescriptiondescDescription of the security domain. Purpose: notes the purpose of the security domain. Valid values: multi-line text, up to 500 characters. Default: empty.
Password HashpasswordHashHash comparison algorithm for user passwords. Purpose: declares the hash algorithm used by the stored password field; authentication compares with this algorithm; leaving it unselected means plaintext storage. Valid values: dropdown, None (plaintext) / MD5 / SHA1 / SHA-256 / SHA-512; hashed passwords can be generated with the application server's built-in encryption tool:
Windows: bin/digest.bat -a SHA-256 -s 0 -i 1 [YOUR_PASSWORD]
Linux/Mac: bin/digest.sh -a SHA-256 -s 0 -i 1 [YOUR_PASSWORD]. Default: None (plaintext).

Lock Mechanism

SettingParameterDescription
Enable LocklockEnabledWhether the authentication failure lock mechanism is enabled. Purpose: when on, the user is locked after consecutive authentication failures reach the specified count. Valid values: switch, On / Off. Default: Off.
Max Failed AttemptsmaxFailedAttemptsConsecutive authentication failure lock threshold, in times. Purpose: the user is locked after consecutive failures reach this count. Valid values: integer. Default: 5.
Lock TimeoutlockTimeoutTime before a locked user is unlocked automatically, in seconds. Purpose: after the user is locked, the lock is released automatically once this time passes. Valid values: integer, in seconds. Default: 300.
Cache SizecacheSizeSize of the authentication cache. Purpose: sets the number of cached authentication result entries. Valid values: integer. Default: 1000.
Cache Removal Warning TimecacheRemovalWarningTimeCache removal warning time, in seconds. Purpose: a warning is triggered when a cache entry is removed before this time is reached. Valid values: integer, in seconds. Default: 3600.

UserDatabase Realm Config

SettingParameterDescription
Resource NameresourceNameJNDI resource name of the UserDatabase. Purpose: specifies the user database resource read by the security domain, corresponding to the conf/aas-users.xml file. Valid values: string; required. Default: UserDatabase.

You need to manually edit the conf/aas-users.xml file to add users and roles.

User data is stored in the conf/aas-users.xml file in a very intuitive format:

<aas-users>
  <role rolename="manager-gui"/>
  <role rolename="admin"/>
  <user username="aas" password="[YOUR_PASSWORD]" roles="manager-gui"/>
  <user username="admin" password="[YOUR_PASSWORD]" roles="admin,manager-gui"/>
</aas-users>
1
2
3
4
5
6
  • <role>: defines a role.
  • <user>: defines a user and assigns roles to it. A user can have multiple roles, separated by commas.

# Users

The Users module of the application server strictly follows the MLPS 2.0 requirements of separation of duties among three administrators, account security, and least privilege, implementing full-process control over platform user creation, status management, role assignment, access control, and permission configuration.

# User List

Click "Users" in the left menu:

image-20260625164238954

Query conditions:

Query Condition Description Example
Username Matches the username; the input hint is "Please enter username" admin
Status Filters by account status; the dropdown defaults to "All Statuses" Normal / Locked / Disabled
Role Type Filters by the user's assigned roles; the dropdown defaults to "All Roles" sysadmin
Built-in Filters by whether the account is built-in; the dropdown defaults to "All" Yes / No

After filling in the conditions, click "Query" to filter the list, or "Reset" to clear the query conditions; above the list are "Create", "Refresh", and "Batch Delete (n)" buttons — after rows are checked, the "Batch Delete" button shows the number of checked rows and becomes available.

List fields:

Field Description
Username The user's login account
Status Current account status: Normal / Locked / Disabled
Role Roles assigned to the user; empty when unassigned
Security Level The user's data security level: Top Secret / Confidential / Secret
Expiration Time Account validity period; shows "Permanent" when permanently valid
Built-in Whether the account is built-in: Yes / No
Actions Permissions / Reset Password / Delete

The built-in users admin, secure, and audit cannot be deleted or modified; their row checkboxes and "Delete" actions are disabled.

# Creating a User

The system administrator can create users:

  1. In the user list, click "Create" to enter the "Users / Create User" page;
  2. Fill in the username, password, status, role category, mobile number, email, and description;
  3. Click "Save" to finish creating, or "Cancel" to discard this configuration.

image-20260625164449731

Field descriptions:

SettingParameterDescription
UsernameusernameThe user's login account. Purpose: globally and uniquely identifies the user. Valid values: string, globally unique, forbidden special keywords, must pass character validation; required. Default: empty.
User StatusstatusThe user's account status. Purpose: controls whether the account can log in. Valid values: dropdown, Normal / Locked / Disabled; required. Default: Normal.
Role CategoryroleCategoryThe user's role category. Purpose: roles are assigned by the security administrator in "Permission Configuration"; fixed and not editable here. Valid values: fixed to "Unassigned", not editable. Default: Unassigned.
Login PasswordloginPasswordThe user's login password. Purpose: credential for account login. Valid values: string, must comply with the global password complexity policy, hidden on the page; required. Default: empty.
Confirm PasswordconfirmPasswordRe-enter the login password. Purpose: confirms the password was entered correctly. Valid values: string, must exactly match the login password; required. Default: empty.
Mobile NumbermobileThe user's mobile number. Purpose: used for account contact and notification. Valid values: digits, in mobile number format. Default: empty.
EmailemailThe user's email address. Purpose: used for email verification and notification. Valid values: string, must comply with email format rules. Default: empty.
DescriptiondescriptionThe user's purpose and affiliation. Purpose: notes about the account. Valid values: string. Default: empty.

# Permission Configuration

The security administrator also has user management permissions and can query user information and configure permissions.

Querying user information:

image-20260625164620044

Permission configuration: in the user list, click "Permissions" in the Actions column to assign the user roles, an access IP whitelist, an access time range, a data security level, and an account validity period.

image-20260625164822544

Field descriptions:

SettingParameterDescription
UsernameusernameThe user account being configured. Purpose: identifies the target user of the permission configuration. Valid values: read-only, not editable. Default: the currently selected user.
StatusstatusThe user's account status. Purpose: controls whether the account can log in. Valid values: dropdown, Normal / Locked / Disabled; required. Default: Normal.
Assigned RolerolesRoles assigned to the user. Purpose: the user inherits system resource permissions through roles; shows all roles in the "Roles" list. Valid values: multiple selection from the role list. Default: Unassigned.
Expiration TimeexpireDateExpiry time of the account. Purpose: the account becomes invalid after this time. Valid values: date and time; empty means permanently valid. Default: empty.
Allowed IPsipWhitelistClient IPs from which the user may log in. Purpose: limits the login sources of the account; empty means no restriction. Valid values: string, ≤255 characters, multiple IPs separated by commas, supports IP ranges and the * wildcard. Default: empty.
Start Access TimestartTimeStart of the allowed access window. Purpose: limits the beginning of the time window in which the account can log in. Valid values: date and time, format yyyy-MM-dd HH:mm:ss. Default: empty.
End Access TimeendTimeEnd of the allowed access window. Purpose: limits the end of the time window in which the account can log in. Valid values: date and time, must be later than the start time. Default: empty.
Data Security LevelclassLevelThe user's data security level. Purpose: controls the resource access scope, Top Secret > Confidential > Secret. Valid values: dropdown, Top Secret / Confidential / Secret; required. Default: Secret.
Mobile NumbermobileThe user's mobile number. Purpose: used for account contact and notification. Valid values: digits, in mobile number format. Default: empty.
EmailemailThe user's email address. Purpose: used for email verification and notification. Valid values: string, must comply with email format rules. Default: empty.
DescriptiondescriptionThe user's purpose and affiliation. Purpose: notes about the account. Valid values: string. Default: empty.

# Resetting a Password

In the user list, click "Reset Password" in the Actions column to set a new password for an existing account; the new password must comply with the global password complexity policy, and after the reset the user logs in with the new password.

image-20260625164856051

# Deleting a User

  • Single delete: in the user list, click "Delete" in the Actions column and click "Confirm" in the dialog to delete a regular user with no business associations;
  • Batch delete: check multiple regular users and click "Batch Delete (n)" above the list; after confirmation, the selected users are deleted at once.

The built-in users admin, secure, and audit provide no delete entry; deleting a user is irreversible — make sure the user has no pending business first.

# Roles

Role management is exclusive to the security administrator and supports the following:

  • Role lifecycle management: supports creating, viewing, editing, deleting, and refreshing roles, closing the loop of role CRUD management.
  • Built-in role protection: the system presets three built-in roles — sysadmin (system administrator), security (security administrator), and auditor (audit administrator) — which cannot be modified or deleted, safeguarding the compliance of the three-administrator separation of duties.
  • Role-permission binding: supports assigning system resource permissions (such as menus, function points, and interfaces) to roles, configuring the mapping between roles and permissions.
  • Role-user association: supports associating platform users with roles so that users inherit permissions through roles; multiple users can be bound to the same role.

# Role List

Click "Roles" in the left menu:

image-20260625170425905

Shows all roles with their role name, related users, built-in flag, and description; the page supports fuzzy search by role name and filtering by the "Default Role" dropdown (All / Yes / No), and provides "Create" and "Delete" actions.

# Creating a Role

To create a role, click the "Create" button to go to the create page:

image-20260625170329356

  1. Fill in the role name (globally unique, required) and description;
  2. In the permission list tree, check the menu / function point permissions the role has;
  3. Click "Save" to finish creating, or "Cancel" to discard this configuration.

Field descriptions:

SettingParameterDescription
Role NameroleNameUnique identifier of the role. Purpose: globally identifies the role; referenced by this name in permission configuration. Valid values: string, globally unique; required. Default: empty.
Permission ListpermListSystem resource permissions assigned to the role. Purpose: shows menus and function points as a tree; checking an item grants the role that resource permission. Valid values: tree multiple selection, checking the corresponding menus / function points; required. Default: empty.
DescriptiondescFunctional description of the role. Purpose: distinguishes role usage, e.g. "System administrator role". Valid values: string. Default: empty.

# Editing a Role

Click a role name to go to the edit page, which is similar to the create role page (except the role name cannot be changed):

image-20260625181439408

After modifying the permission list or description, click "Save" to apply; built-in roles provide no edit entry.

# Deleting a Role

In the role list, check a non-built-in role and click "Delete", then click "Confirm" in the dialog to delete it; after deletion, related users lose the permissions inherited from the role.

The built-in roles sysadmin, security, and auditor cannot be deleted; deleting a role is irreversible — make sure no user is associated first.

# Security Config

The Security Config module is exclusive to the security administrator and covers password policy configuration, audit log configuration, business configuration backup, email verification configuration, and dynamic code (OTP) verification configuration. Changes take effect in real time after being saved.

# Password Policy

The security administrator can configure password security rules for platform user accounts, covering password complexity, validity period, retry limits, and lockout policy, forcing users to follow secure password standards and reducing risks such as weak passwords and brute-force attacks.

image-20260625182208516

Field descriptions:

SettingParameterDescription
Password LengthpwdLengthMinimum length of the password. Purpose: forces user passwords to be no shorter than this. Valid values: integer, 8~32; required. Default: 8.
Password Valid DayspwdValidDaysMandatory password change cycle, in days. Purpose: the password must be changed after being used for this many days. Valid values: integer, 1~90; required. Default: 30.
Password Retry TimespwdRetryTimesMaximum password error attempts, in times. Purpose: the account is locked after consecutive errors reach this count. Valid values: integer, 1~5; required. Default: 5.
Password ComplexitypwdComplexityPassword complexity requirement. Purpose: Normal — must contain at least 2 of letters, digits, and special symbols; Complex — must contain letters, digits, and special symbols at the same time. Valid values: dropdown, Normal / Complex; required. Default: Normal.
Recent Password Reuse LimitpwdHistoryLimitNumber of historical passwords that cannot be reused, in times. Purpose: a new password must not duplicate any of the last N passwords. Valid values: integer, 1~10; required. Default: 5.
User Lock DurationpwdLockDurationAccount lock duration, in minutes. Purpose: after the account is locked due to excessive retries, it is unlocked automatically after this duration. Valid values: integer, 1~1440; required. Default: 15.
Weak PasswordsweakPasswordsCustom weak password blacklist. Purpose: passwords in the list are forbidden as user passwords. Valid values: string, ≤255 characters, multiple passwords separated by commas. Default: empty.

# Audit Log Config

Configures the storage limits, retention periods, and backup policy of audit logs and operation logs, achieving compliant log retention and automatic cleanup, preventing logs from overflowing system resources, and meeting audit traceability needs.

image-20260625182338702

Field descriptions:

SettingParameterDescription
Login Log Max CountloginLogMaxCountMaximum number of login audit logs stored in the database. Purpose: beyond this limit, the earliest records are overwritten first. Valid values: integer, 1000~100000; required. Default: 10000.
Login Log RetentionloginLogRetentionRetention period of login audit logs, in days. Purpose: cleaned automatically when expired. Valid values: integer, 30~365; required. Default: 180.
Operation Log Max CountoperationLogMaxCountMaximum number of operation audit logs stored in the database. Purpose: beyond this limit, the earliest records are overwritten first. Valid values: integer, 1000~100000; required. Default: 10000.
Operation Log RetentionoperationLogRetentionRetention period of operation audit logs, in days. Purpose: cleaned automatically when expired. Valid values: integer, 30~365; required. Default: 180.
Scheduled Backup PeriodauditBackupPeriodScheduled backup period of audit logs, in days. Purpose: backs up audit logs automatically by period. Valid values: integer, 1~365; required. Default: 30.
Backup RetentionauditBackupRetentionRetention period of backed-up audit logs, in days. Purpose: backup files are cleaned automatically when expired. Valid values: integer, -1 means retain forever; required. Default: -1.

# Business Configuration Backup

Configures the scheduled backup policy for the application server's business configuration files, supporting a custom backup directory and backup period; once enabled, configuration files are archived automatically to prevent configuration loss and facilitate fault recovery.

image-20260625182454343

Field descriptions:

SettingParameterDescription
Shared Backup DirectorybackupPathStorage path of backup files. Purpose: specifies the directory where business configuration backups are stored. Valid values: string, a valid directory path, supports system variables; required. Default: ${apusic.home}/store/config_bak.
Scheduled Backup PeriodbackupPeriodScheduled backup period of business configurations, in months. Purpose: archives configuration files automatically by period. Valid values: integer, 1~12; required. Default: 1.
Scheduled Backup SwitchbackupEnabledWhether scheduled backup is enabled. Purpose: when on, backups run automatically at the backup period; when off, only manual backup is supported. Valid values: switch, On / Off. Default: Off.
Save—Action button. Purpose: click to save the configured settings.
Back Up Now—Action button. Purpose: click to back up the configuration directory manually; the backed-up business configuration appears in the backup list.
Delete—Action button. Purpose: click the delete button in the backup list; a confirmation dialog appears, and after confirmation the backup file is deleted.
Restore—Action button. Purpose: click the restore button in the backup list; a confirmation dialog appears, and after confirmation that backup file is restored.

# Email Verification Config

Configures the email verification and notification service, supporting email verification code login and license expiration reminders; an SMTP server must be configured to enable email sending.

Note: before enabling email verification, the security administrator secure must first configure a usable email address.

image-20260625182823769

Field descriptions:

SettingParameterDescription
Email Verification SwitchmailVerifyEnabledWhether email verification is enabled. Purpose: when on, email verification code login and license expiration reminders are supported. Valid values: switch, On / Off. Default: Off.
SMTP ServersmtpHostSMTP server address. Purpose: specifies the server that sends emails. Valid values: string, format smtp.xxx.com, e.g. smtp.163.com; required when email verification is on. Default: empty.
Enable SSLsmtpSslWhether SSL-encrypted connection to the SMTP server is used. Purpose: when on, emails are sent over an encrypted connection, usually with port 465. Valid values: switch, On / Off. Default: Off.
PortsmtpPortSMTP server port. Purpose: fill in according to the email provider's actual configuration; SSL usually uses 465. Valid values: integer, 1~65535. Default: 25.
Sender EmailsmtpUserEmail account that sends the emails. Purpose: logs in to the SMTP server as the sender account. Valid values: string, a valid email format. Default: empty.
Sender Email PasswordsmtpPasswordPassword or client authorization code of the sender email. Purpose: SMTP login credential; for mailboxes with authorization codes enabled, the authorization code must be entered. Valid values: string, hidden on the page. Default: empty.
License Alert RecipientsmtpLicenseEmailEmail address that receives license expiration reminders. Purpose: the receiving address of license expiration reminder emails. Valid values: string, multiple mailboxes separated by semicolons. Default: empty.

# Dynamic Code (OTP) Config

Configures the dynamic verification code (OTP) login feature. Once enabled, users must enter both the password and the dynamic code generated by the mobile Authenticator app at login, achieving two-factor authentication and improving account security.

After OTP two-factor authentication is enabled, users must enter password + dynamic verification code at login.

image-20260625183325530

image-20260625183603270

Search for Authenticator in your mobile app store, download and install it, and scan the corresponding QR code:

image-20260625184110787

After scanning the QR code, the app displays the account information AAS-Console; tap AAS-Console.

image-20260625184149965

The verification code is displayed:

image-20260625184339710

Then enter the verification code on the login page to log in.

# Audit Logs

This module is the core MLPS-compliance audit module of the application server management console, exclusively for the security auditor, and consists of two core capabilities: operation logs and audit logs.

  • Operation logs: record the daily function operations of all administrators and business users, fully retaining every operation element;
  • Audit logs: specifically record account access behaviors such as user login, logout, identity verification, and session exceptions;

The module strictly follows the MLPS security audit requirements, achieving complete log collection, centralized storage, conditional query, export and traceability, and tamper resistance; only the authorized security auditor can access it, and other roles have no permission to enter, meeting the management needs of security incident tracing, responsibility determination, and compliance self-inspection.

# Login Audit

Login audit specifically records all users' account access behaviors on the platform, including identity security events such as successful login, failed login, logout, and account lockout; it standardizes the recording of event time, event type, subject and object identifiers, behavior description, and access result, supporting account risk investigation, brute-force attack tracing, and abnormal login analysis — an essential capability of MLPS identity auditing.

# Querying Login Audit Logs

image-20260625185935090

Query conditions:

Query Condition Description Example
Start Time Start of the time window of login audit records 2026-06-01 00:00:00
End Time End of the time window of login audit records 2026-06-25 23:59:59
Event Type Filters by event type: Login Success / Login Failed / Logout / Account Lockout Login Failed
Account Matches the login account admin
Operation IP Matches the client IP 172.20.140.56

After filling in the conditions, click "Query" to filter the list, or "Reset" to clear the query conditions.

List fields:

Field Description
Event Time Time when the login event occurred
Login Account The account that initiated the login
Event Type Login Success / Login Failed / Logout / Account Lockout
Operation IP Client IP that initiated the login
Event Description Detailed description of the login event
Access Result Final result of the login access: Normal / Failed

# Refreshing Login Audit Data

Click "Refresh" above the list to reload the latest login audit records; the current version provides no export entry on the login audit page.

# Operation Audit

The operation audit module records the business function operations of platform users, covering all backend operations such as user creation, editing, deletion, role configuration, permission changes, enabling/disabling, and policy changes; each log standardizes the collection of time, event type, subject and object identifiers, event description, and operation result, and supports conditional query, details viewing, and log export, providing the original basis for tracing unauthorized operations, abnormal changes, and security incidents and meeting the MLPS operation audit requirements.

# Querying Operation Audit Logs

image-20260625190437660

Query conditions:

Query Condition Description Example
Start Time Start of the time window of operation audit records 2026-09-01 00:00:00
End Time End of the time window of operation audit records 2026-09-22 23:59:59
Event Type Filters by operation event type Create
Account Matches the operator account admin
Operation Target Matches the target object of the operation demorole
Operation Result Filters by the operation result Success

After filling in the conditions, click "Query" to filter the list, or "Reset" to clear the query conditions.

The log list shows operation logs with pagination. List fields:

Field Description
Operation Time Time when the operation occurred
Event Type Type of the operation, such as Create / Update / Delete / EXECUTE
Operator The user who initiated the operation (subject)
Operator Role The role of the operator: System Administrator / Security Administrator / Audit Administrator
Operation Target The target object of the operation, e.g. a role name or user name; shows "-" when none
Event Description Detailed description of the operation event
Operation Result Final result of the operation: Success / Failure
Operation IP Client IP that initiated the operation
Actions Details

# Viewing Log Details

In the operation audit list, click "Details" in the Actions column; the "Operation Details" dialog shows the complete fields of the log, including Operation Time, Event Type, Operator, Operator Role, Operation Target, Operation Result, Operation IP, Event Description, and Operation Parameters (the raw JSON parameters of the operation). Click "Close" to close the dialog.

image-20260625190642799

# Exporting Operation Audit Logs

Click "Export" above the list to export the condition-filtered operation logs, retaining the original fields, packaged and exported in .zip format.


# FAQ

# Q1: What should I do if "Incorrect captcha" appears at login?

A: Click the captcha image to refresh it and enter the code again; if it remains unreadable for a long time, contact the administrator to confirm whether the captcha feature is enabled.

# Q2: Why can't I enter the home page after the first login?

A: The password must be changed on the first login. Complete the password change as prompted; the new password must comply with the system password policy.

# Q3: Can an application be recovered after being uninstalled?

A: If the app recycle bin is enabled, it can be restored in "App Recycle Bin"; if it has been physically deleted, it must be redeployed.

# Q4: Why don't the application configuration changes take effect?

A: For a running application, you must perform "Reload" or restart the application for the changes to take effect.

# Q5: How do I find out who performed a sensitive operation?

A: Go to "Audit Logs → Operation Audit" and query by username, operation type, and time range.

# Q6: What should I do if the license expires?

A: Click the license icon at the top, select "Update License", upload a new license file or enter the license content; restart the server after updating for it to take effect.

# Q7: Why don't the HTTP channel configuration changes take effect after being saved?

A: Changes to HTTP channels, virtual hosts, thread pools, JVM, JMX, and other configurations all require a server restart to take effect.


编辑页面 (opens new window)

← User Manual Command Line Operation Guide→

  • 浅色模式