elunez/eladmin
41.5
Weak · 24 September 2026
22.4k
lines of production code
Java
primary language
5
measurements over time
What this system is
This system is an enterprise administration platform that provides user, role, and menu management alongside a code generation engine for scaffolding backend and frontend modules. It features a scheduled task scheduler for automated jobs and a maintenance module for managing servers, databases, and deployments. The platform also integrates payment processing, email services, and file storage (local and S3) with robust security controls including rate limiting and data permissions.
How it got here
2018–2019 — Architecture modernization and feature expansion
53 changes.
This period was defined by a comprehensive architectural overhaul, including the migration to Spring Boot 2.7.18, the adoption of Fastjson2, and the restructuring of the codebase into a multi-module Maven project. Significant new features were introduced, such as a code generation module, a Quartz-based job scheduler, and integrations for Alipay, email, and Amazon S3 storage. The refactoring also involved replacing legacy authentication and security components with a modernized, annotation-driven approach to system management and logging.
2020–2025 — System maintenance and security hardening
16 changes.
This period focused on modernizing the codebase by migrating to Fastjson2 and MapStruct, while introducing a new maintenance module for managing applications and servers. Security was strengthened through sensitive data masking, DTO refactoring, and the addition of anonymous access annotations for public endpoints.
Features
Add LoginCodeEnum for login verification code types
A new enum, LoginCodeEnum, has been added to define the supported types of login verification codes, including arithmetic, Chinese, Chinese GIF, GIF, and static options.
eladmin-system/src/main/java/me/zhengjie/modules/security/config/enums · high confidence
Add QuartzJobServiceImpl for scheduled job management
Introduced QuartzJobServiceImpl, a new service implementation for managing scheduled jobs and their logs. This adds the ability to create, update, pause, resume, and delete scheduled tasks, as well as execute them immediately or run sub-tasks sequentially with status checks via Redis. It also provides functionality to download job and log data as Excel files.
eladmin-system/src/main/java/me/zhengjie/modules/quartz/service/impl · high confidence
Add TableInfo value object for table metadata
A new TableInfo value object has been introduced in the generator module to represent table metadata, including fields for table name, creation time, database engine, coding set, and remarks. This addition supports the code generation feature by providing a structured representation of database table information.
eladmin-generator/src/main/java/me/zhengjie/domain/vo · high confidence
Add anonymous access annotations for REST endpoints
Developers can now mark controller methods with new annotations—AnonymousAccess, AnonymousGetMapping, AnonymousPostMapping, AnonymousPutMapping, AnonymousPatchMapping, and AnonymousDeleteMapping—to allow unauthenticated access to specific REST endpoints. These annotations wrap standard Spring MVC mappings and carry the @AnonymousAccess marker, enabling the system to identify and exclude these routes from authentication requirements.
eladmin-common/src/main/java/me/zhengjie/annotation/rest · high confidence
Add code generation API endpoints for table and field management
New REST controllers for the code generator have been introduced to manage database table and field configurations. The /api/generator endpoints allow users to query and save table and column metadata, synchronize field data, and trigger code generation, preview, or download operations. Additionally, a new /api/genConfig endpoint provides a dedicated interface for managing code generation configuration settings.
eladmin-generator/src/main/java/me/zhengjie/rest · high confidence
Add rate-limiting aspect for request throttling
The system now enforces request rate limits using a new \LimitAspect\ that leverages Lua scripts in Redis to count and restrict access. This aspect intercepts methods annotated with \@Limit\, checking against either a custom key or the client's IP address (as defined in the new \LimitType\ enum) to prevent excessive usage.
eladmin-common/src/main/java/me/zhengjie/aspect · high confidence
Add scheduled job management API
Introduces a new REST controller for managing scheduled jobs, providing endpoints to query, create, update, delete, and execute jobs, as well as export job and log data. The implementation includes a validation check that restricts job bean names to registered service beans, preventing arbitrary method invocation and potential SQL injection vulnerabilities.
eladmin-system/src/main/java/me/zhengjie/modules/quartz/rest · high confidence
Add support for Amazon S3 and Alipay email configurations
The application now supports Amazon S3 cloud storage and Alipay email integration. New domain entities (S3Storage, AlipayConfig, EmailConfig) and their corresponding JPA repositories have been introduced to manage storage and configuration data. Additionally, a configuration class (AmzS3Config) was added to handle AWS S3 client setup, enabling users to store files in S3 buckets.
eladmin-tools/src/main/java/me/zhengjie/domain · high confidence
Added Alipay integration utility
A new AlipayUtils class has been added to the project, providing methods for generating order codes and verifying Alipay payment signatures via the Alipay SDK.
eladmin-tools/src/main/java/me/zhengjie/utils · high confidence
Added LogRepository for managing system logs
A new LogRepository interface has been introduced in the logging module, extending Spring Data JPA's JpaRepository and JpaSpecificationExecutor for the SysLog domain. This adds the ability to delete system log entries by their type via a native SQL query, providing a dedicated data access layer for log management operations.
eladmin-logging/src/main/java/me/zhengjie/repository · high confidence
Added a test task for scheduled job execution
A new test task class (TestTask) was added to the scheduled task module, providing example methods for executing scheduled jobs. This change introduces a new component for testing and demonstrating scheduled task functionality within the application.
eladmin-system/src/main/java/me/zhengjie/modules/quartz/task · high confidence
Added data transfer objects for local and S3 storage management
New DTOs and query criteria classes have been introduced to support file storage operations. LocalStorageDto and LocalStorageQueryCriteria provide the data structure and search filters for local file storage, while S3StorageQueryCriteria enables querying for S3-based cloud storage. These additions allow users to manage and filter stored files by name, type, size, and creation time.
eladmin-tools/src/main/java/me/zhengjie/service/dto · high confidence
Added email and task alarm notification templates
New FreeMarker templates were added for email verification and task alarm notifications. Users will now receive styled HTML emails containing verification codes, as well as detailed HTML reports for task execution failures, including task metadata and exception stack traces.
eladmin-system/src/main/resources/template · high confidence
Added maintenance module for managing applications, databases, servers, and deployments
Introduced a new maintenance module in the system, providing full CRUD and operational capabilities for managing applications, databases, servers, and deployment configurations. This includes domain models, repositories, services, and REST controllers for each entity, enabling users to create, update, delete, and export data for apps, databases, servers, and deployment records. The module also supports testing database and server connections, executing SQL scripts, and managing deployment history and status.
eladmin-system/src/main/java/me/zhengjie/modules/maint · high confidence
Application startup logging and PID file support
The application now logs the local URL and Swagger documentation URL upon startup, and supports writing the process ID (PID) to a file for easier management. The main application class (AppRun) was updated to include @EnableAsync, @EnableTransactionManagement, and @EnableJpaAuditing annotations, and a new SystemRunner component was added to handle post-startup processing.
eladmin-system/src/main/java · high confidence
Code generator now supports previewing and downloading generated code
The code generator utility has been updated to support previewing and downloading generated code. Users can now preview the generated backend and frontend code before saving it, and download the generated code as a package. This enhancement improves the workflow by allowing users to review the generated code structure and content, ensuring it meets their requirements before applying it to their project.
eladmin-generator/src/main/java/me/zhengjie/utils · high confidence
Introduce code generation service implementations
Added new service implementations for the code generator: GenConfigServiceImpl handles configuration retrieval and path normalization, while GeneratorServiceImpl provides methods to list and paginate database tables, query and sync table/column metadata, preview generated code, and download the generated code as a zip archive.
eladmin-generator/src/main/java/me/zhengjie/service/impl · high confidence
Introduce domain and repository models for code generation configuration
Added new JPA entity classes, \ColumnInfo\ and \GenConfig\, along with their corresponding Spring Data JPA repositories (\ColumnInfoRepository\ and \GenConfigRepository\) to support the code generator's configuration and column metadata storage. \GenConfig\ stores template settings such as package paths, module names, and author details, while \ColumnInfo\ persists database column details like types, nullability, and display preferences. These changes enable the application to manage and retrieve code generation templates and column definitions from the database.
eladmin-generator/src/main/java/me/zhengjie/domain · high confidence
Introduces base entity and DTO classes with JPA auditing support
A new base class hierarchy has been added to the application's common module. BaseEntity now provides JPA auditing for creation and modification timestamps and user identifiers, while BaseDTO offers a parallel structure for data transfer objects. Additionally, the generic mapper interface has been renamed from EntityMapper to BaseMapper and moved to the base package, standardizing the foundation for entity and DTO conversion across the codebase.
eladmin-common/src/main/java/me/zhengjie/base · high confidence
New DTOs for email and trade details
Added EmailVo and TradeVo value objects to the domain layer. EmailVo captures email sending parameters (recipients, subject, content), while TradeVo models transaction details including product info, order numbers, amounts, and timestamps.
eladmin-tools/src/main/java/me/zhengjie/domain/vo · high confidence
New Quartz job and log domain models
The system introduces new domain models for the Quartz scheduler: QuartzJob, which defines the configuration for scheduled tasks (including cron expressions, bean/method names, and sub-task identifiers), and QuartzLog, which records execution details such as success status, execution time, and exception information.
eladmin-system/src/main/java/me/zhengjie/modules/quartz/domain · high confidence
New QuartzJobService interface for scheduled task management
A new service interface, QuartzJobService, has been introduced to manage scheduled tasks. This interface defines the contract for creating, updating, deleting, and executing scheduled jobs, as well as querying and exporting job logs. Notably, it includes a method for executing sub-tasks, which aligns with the commit message about optimizing sub-task execution. This change provides a cleaner, more structured way to interact with the Quartz job scheduling system.
eladmin-system/src/main/java/me/zhengjie/modules/quartz/service · high confidence
New REST controllers for Alipay, Email, Local Storage, and S3 Storage
Added four new REST controllers in the tools module: AliPayController for Alipay payment configuration and processing, EmailController for email configuration and sending, LocalStorageController for local file management, and S3StorageController for Amazon S3-compatible cloud storage operations. These controllers expose API endpoints for managing payment gateways, email services, and file storage systems.
eladmin-tools/src/main/java/me/zhengjie/rest · high confidence
New REST controllers for system management modules
The system now exposes dedicated REST endpoints for managing departments, menus, roles, users, dictionaries, jobs, and monitoring. These controllers handle standard CRUD operations, data export, and specific business logic such as hierarchical menu/department tree building, role-based access control checks, and user profile updates. This change introduces the primary API layer for the system's core administrative features.
eladmin-system/src/main/java/me/zhengjie/modules/system/rest · high confidence
New annotations for data permission, query filtering, and rate limiting
The eladmin-common module introduces three new Java annotations to enhance application functionality. The @DataPermission annotation allows developers to control data access scopes by specifying entity fields and join conditions. The @Query annotation expands search capabilities by supporting additional filter types (such as NOT\_EQUAL, NOT\_NULL, and FIND\_IN\_SET) and join strategies (LEFT, RIGHT, INNER) for building dynamic queries. The @Limit annotation provides a mechanism to enforce rate limiting on methods, allowing configuration of request counts and time periods. These changes enable more granular control over data visibility, query generation, and API security.
eladmin-common/src/main/java/me/zhengjie/annotation · high confidence
New authentication and online user management endpoints
The system introduces new REST endpoints for authentication and online user management. The AuthController now handles login, logout, and captcha retrieval, with login requests requiring a decrypted password and a valid captcha code. The OnlineController provides endpoints to query, export, and forcibly log out (kick out) currently online users, with the ability to target specific users by username or token.
eladmin-system/src/main/java/me/zhengjie/modules/security/rest · high confidence
New code generation service interfaces for table and column metadata
The code generator now exposes two new service interfaces, GenConfigService and GeneratorService, to manage table configurations and perform code generation tasks. GenConfigService handles finding and updating table configurations, while GeneratorService provides methods to query database metadata (tables and columns), synchronize data, save column information, generate code, preview the output, and package the generated files for download.
eladmin-generator/src/main/java/me/zhengjie/service · medium confidence
New configuration and enum types for file paths, RSA keys, and Alipay status
The application now includes new configuration classes for file storage paths and RSA private keys, alongside a new enum for Alipay transaction statuses. Specifically, \FileProperties\ is introduced to manage file size limits and OS-specific storage paths, while \RsaProperties\ loads the RSA private key from the \rsa.private\_key\ configuration property. Additionally, \AliPayStatusEnum\ is added to represent Alipay payment states such as TRADE\_FINISHED, TRADE\_SUCCESS, WAIT\_BUYER\_PAY, and TRADE\_CLOSED.
eladmin-common/src/main/java/me/zhengjie/config/properties, eladmin-tools/src/main/java/me/zhengjie/domain/enums · medium confidence
New configuration classes for async tasks, auditing, permissions, P6Spy logging, and Redis
Added several new configuration classes in the eladmin-common module: AsyncExecutor for custom thread pool management, AuditorConfig for setting the current user in audit logs, AuthorityConfig for checking user permissions, CustomP6SpyLogger for formatted SQL logging, RedisConfiguration for Redis caching and serialization, RedissonConfiguration for Redisson client setup, and RemoveDruidAdConfig to filter out advertisements from the Druid monitoring interface.
eladmin-common/src/main/java/me/zhengjie/config · high confidence
New enum types for code business scenarios, Redis keys, data scope, and request methods
Added four new Java enums in the common utilities package: CodeBiEnum for captcha business scenarios, CodeEnum for associated Redis keys, DataScopeEnum for data permission levels, and RequestMethodEnum for HTTP method types. These enums provide structured, centralized definitions for these concepts across the application.
eladmin-common/src/main/java/me/zhengjie/utils/enums · high confidence
New online user management and user cache service
The security module now includes three new service classes: OnlineUserService, UserCacheManager, and UserDetailsServiceImpl. OnlineUserService handles online user tracking, logout, and export functionality using Redis. UserCacheManager provides asynchronous caching of user data in Redis to improve login performance. UserDetailsServiceImpl implements Spring Security's UserDetailsService interface, integrating the new cache manager to store and retrieve user details, with specific handling for non-existent or disabled accounts.
eladmin-system/src/main/java/me/zhengjie/modules/security/service · high confidence
New repository interfaces for system modules
Added new Spring Data JPA repository interfaces for the system module, including DeptRepository, DictRepository, DictDetailRepository, JobRepository, MenuRepository, RoleRepository, and UserRepository. These interfaces define the data access layer for managing departments, dictionaries, jobs, menus, roles, and users, enabling the application to interact with the database for these core entities.
eladmin-system/src/main/java/me/zhengjie/modules/system/repository, eladmin-system/src/main/java/me/zhengjie/modules/system/service · high confidence
New service interfaces for payment, email, and storage
The system introduces new service interfaces to support Alipay integration, email configuration and sending, local file storage, and Amazon S3 cloud storage. Users can now configure and manage payment gateways, send emails, and store files locally or via S3-compatible cloud storage.
eladmin-tools/src/main/java/me/zhengjie/service · high confidence
New storage and payment service implementations
Added new service implementations for Alipay integration (AliPayServiceImpl), email sending (EmailServiceImpl), local file storage (LocalStorageServiceImpl), and Amazon S3 cloud storage (S3StorageServiceImpl). The local storage service now utilizes a MapStruct mapper (LocalStorageMapper) for DTO conversion, and the email service includes explicit TLS protocol configuration to resolve JDK 8+ compatibility issues.
eladmin-tools/src/main/java/me/zhengjie/service/impl · high confidence
New system log management endpoints
Added a new REST controller and service interface for managing system logs. Users can now query, export, and delete system logs (including error and info logs) via new API endpoints, enabling better visibility and maintenance of system activity records.
eladmin-logging/src/main/java/me/zhengjie/rest, eladmin-logging/src/main/java/me/zhengjie/service · high confidence
New utility classes for anonymous access, BigDecimal math, and cache keys
Added AnonTagUtils to extract and manage URLs marked with @AnonymousAccess for unauthenticated access, introducing a centralized way to identify public endpoints. Introduced BigDecimalUtils to perform arithmetic operations (add, subtract, multiply, divide) on monetary values with two decimal places, including conversion between yuan and cents. Added CacheKey interface to standardize Redis cache key prefixes for users, menus, roles, and departments. These utilities support the application's security, data processing, and caching layers.
eladmin-common/src/main/java/me/zhengjie/utils · high confidence
New view objects for menu metadata, menu structure, and password updates
Added three new value objects in the system domain layer: MenuMetaVo for menu metadata (title, icon, cache flag), MenuVo for building frontend routes (name, path, hidden state, redirect, component, alwaysShow, children), and UserPassVo for user password changes (old and new password). These classes support the menu management feature by providing structured data for menu configuration and user authentication updates.
eladmin-system/src/main/java/me/zhengjie/modules/system/domain/vo · high confidence
Removals
Removal of legacy common utility and configuration classes
The \me.zhengjie.common\ package has been removed, deleting all associated files including exception classes (BadRequestException, EntityExistException, EntityNotFoundException), the global exception handler (GlobalExceptionHandler, ApiError), Redis configuration and serializers (FastJsonRedisSerializer, RedisConfig, StringRedisSerializer), Swagger2 configuration (SwaggerConfig), and utility classes (IpUtil, PageUtil, RequestHolder, TimeUtil, ValidationUtil). This eliminates the previous implementation of error handling, Redis caching, API documentation, and various helper methods.
src/main/java/me/zhengjie/common · high confidence
Removal of legacy system domain and service layer
The legacy domain entities (Menu, Permission, Role, User), their corresponding DTOs, service interfaces and implementations, mappers, and query services have been removed from the system package. This cleanup eliminates the old data access and business logic layer for these core entities, likely as part of a broader refactoring or migration to a new architecture.
src/main/java/me/zhengjie/system/service · high confidence
Removed Maven wrapper and updated project documentation
The project has removed the Maven wrapper scripts (mvnw and mvnw.cmd), meaning developers must now have Maven installed locally to build the project. The README has been significantly updated to reflect the new project structure, including the addition of the \eladmin-generator\ module (which was previously part of the core), updated technology stack (Spring Boot 2.7.18, JWT), and new feature highlights like server monitoring and admin tools.
(repo-wide) · high confidence
Removed legacy monitoring REST controllers
The legacy REST controllers for logging, Redis, and visit tracking have been removed from the application. Users will no longer be able to access the previous API endpoints for viewing system logs, managing Redis cache data, or retrieving visit statistics through these specific controllers.
src/main/java/me/zhengjie/monitor/rest · high confidence
Removed legacy monitoring and logging services
The monitoring module's domain models (Logging, Visits, RedisVo) and their corresponding service interfaces and implementations (LoggingService, RedisService, VisitsService, LoggingQueryService) have been removed. This eliminates the previous system for tracking user operations, site visits, and Redis cache management.
src/main/java/me/zhengjie/monitor/service · high confidence
Behavioural changes
Centralized service implementations for system modules
The system service layer for modules including data, department, dictionary, job, menu, monitor, role, and user management has been refactored into new, distinct implementation classes (e.g., DataServiceImpl, DeptServiceImpl, DictServiceImpl, etc.). These services now explicitly manage Redis caching for their respective entities and handle cache invalidation on updates or deletions, ensuring that data permissions, menu access, and user role information are kept consistent.
eladmin-system/src/main/java/me/zhengjie/modules/system/service/impl · high confidence
Improved Quartz job initialization and dependency injection
The system now automatically reactivates all enabled scheduled tasks upon startup, ensuring that previously paused jobs are restored to their scheduled state. Additionally, the Quartz job factory has been updated to properly inject Spring beans into job instances, resolving issues where dependencies were null.
eladmin-system/src/main/java/me/zhengjie/modules/quartz/config · high confidence
Introduces new domain and DTO classes for system logging
The logging module adds four new classes: the JPA entity SysLog for the sys\_log table, and three DTOs (SysLogErrorDto, SysLogSmallDto, SysLogQueryCriteria) that define the data structure for error logs, simplified log views, and query filters respectively. This change restructures how log data is modeled and transferred within the application.
eladmin-logging/src/main/java/me/zhengjie/domain, eladmin-logging/src/main/java/me/zhengjie/service/dto · medium confidence
Log annotation parameter renamed from 'description' to 'value'
The @Log annotation's string parameter has been renamed from 'description' to 'value'. This change affects how the logging annotation is applied in the codebase, requiring any existing uses of 'description' to be updated to 'value' to maintain functionality.
eladmin-logging/src/main/java/me/zhengjie/annotation · high confidence
Logging module adopts MapStruct for DTO mapping
The logging module now uses MapStruct interfaces to map between domain objects and DTOs. New mappers, LogErrorMapper and LogSmallMapper, have been added to handle conversions for SysLogErrorDto and SysLogSmallDto respectively, replacing the previous mapper-based approach.
eladmin-logging/src/main/java/me/zhengjie/service/mapstruct · high confidence
Migrate system domain entities to Fastjson2 serialization
The system domain entities (User, Role, Menu, Dept, Job, Dict, and DictDetail) have been updated to use Fastjson2 annotations (e.g., @JSONField) for serialization control. This change ensures compatibility with the Fastjson2 library, which is no longer backward compatible with the older Fastjson1 library. Users should be aware that the underlying serialization behavior for these core system entities has changed to align with the new library.
eladmin-system/src/main/java/me/zhengjie/modules/system/domain · high confidence
New global exception handling for API errors
The application now uses a centralized exception handling mechanism via GlobalExceptionHandler, which maps custom exceptions (BadRequestException, EntityExistException, EntityNotFoundException) and validation errors to a consistent ApiError response format. This ensures that API errors return standardized JSON payloads with status codes and messages, improving error visibility and consistency for API consumers.
eladmin-common/src/main/java/me/zhengjie/exception · high confidence
New web configuration classes for MVC, file serving, and Swagger documentation
The application now introduces a set of new configuration classes in the \eladmin-common\ module to manage web-level settings. \ConfigurerAdapter\ registers a CORS filter, configures resource handlers for avatars and files, and sets up Fastjson2 for JSON serialization. \MultipartConfig\ defines the temporary directory for file uploads. \QueryCustomizer\ relaxes Tomcat's query character restrictions. \SwaggerConfig\ and \SwaggerDataConfig\ configure the Swagger 2 API documentation, including security context handling and pagination display. \WebSocketConfig\ enables WebSocket support via a server endpoint exporter.
eladmin-common/src/main/java/me/zhengjie/config/webConfig · high confidence
Quartz job query criteria refactored to use annotations
The JobQueryCriteria class has been introduced to replace the previous approach for querying job data, utilizing the @Query annotation to define search conditions for job name, success status, and creation time. This change shifts the query mechanism from the previous implementation to an annotation-based approach, simplifying how users filter and search for scheduled jobs.
eladmin-system/src/main/java/me/zhengjie/modules/quartz/service/dto · medium confidence
Refactor system DTOs and query criteria
The system's data transfer objects and query criteria for core modules (User, Role, Menu, Dept, Job, Dict) have been refactored. This includes adding missing DTOs (e.g., SmallDto variants), standardizing query criteria with the \@Query\ annotation, and updating serialization annotations (e.g., \@JSONField(serialize = false)\ for the \isAdmin\ field in \UserDto\).
eladmin-system/src/main/java/me/zhengjie/modules/system/service/dto · high confidence
Refactor system log service to use Fastjson2 and sanitize sensitive data
The system log service implementation has been updated to use Fastjson2 for JSON operations, replacing the previous JSON handling. The \getParameter\ method now explicitly handles \JSONArray\ and \JSONObject\ types from Fastjson2, ensuring correct serialization of request bodies. Additionally, the service now masks sensitive fields (such as 'password') in log parameters by replacing their values with '\\\\\\' before storage, improving security for logged data.
eladmin-logging/src/main/java/me/zhengjie/service/impl · high confidence
Refactored JWT token handling and security components
The security module has been refactored to improve token management and error handling. A new TokenProvider component now generates unique tokens using a UUID claim and manages token renewal via Redis expiration checks. The TokenFilter has been updated to handle token validation and renewal, while the TokenConfigurer integrates the new filter. Additionally, new JwtAccessDeniedHandler and JwtAuthenticationEntryPoint components provide structured JSON 403 and 401 responses for unauthorized and forbidden access respectively.
eladmin-system/src/main/java/me/zhengjie/modules/security/security · high confidence
Refactored Quartz job execution to use a custom thread pool
The scheduled task execution logic has been refactored to run tasks in a custom Spring-managed thread pool (taskAsync) instead of the default Quartz thread. This change, implemented in ExecutionJob, QuartzManage, and QuartzRunnable, ensures that long-running or heavy tasks do not exhaust the default thread pool, thereby preventing potential OutOfMemoryError (OOM) issues. Users will see improved stability for scheduled tasks, with execution results and error states properly logged and persisted.
eladmin-system/src/main/java/me/zhengjie/modules/quartz/utils · high confidence
Refactored logging aspect to use new domain and service models
The \LogAspect\ in the \eladmin-logging\ module has been refactored to use the new \SysLog\ domain and \SysLogService\ instead of the previous \Logging\ and \LoggingService\. This change includes moving the aspect class to a new package structure (\me.zhengjie.aspect\), switching from field-based injection to constructor-based injection for the service, and updating the logging logic to capture the username, browser, and IP address from the HTTP request. The aspect now also properly handles exceptions by capturing the full stack trace using \ThrowableUtil\.
eladmin-logging/src/main/java/me/zhengjie/aspect · high confidence
Removal of legacy JWT authentication and security configuration
The legacy JWT-based authentication system has been removed from the application. This includes the deletion of the \CorsConfig\ and \WebSecurityConfig\ classes that previously handled cross-origin requests and Spring Security rules. Additionally, all components related to the old authentication flow have been removed: the \AuthenticationController\ and \JwtUserDetailsService\ are gone, along with supporting classes such as \JwtTokenUtil\, \JwtAuthorizationTokenFilter\, and various security models like \JwtUser\ and \AuthorizationUser\. As a result, the application no longer supports the previous token-based login and user detail retrieval endpoints.
src/main/java/me/zhengjie/core · high confidence
Removed legacy configuration and logging files
The application configuration file (application.yml), the log4jdbc properties file, and the logback XML configuration have been removed from the resources directory. This eliminates the previous hardcoded database, Redis, and JWT settings, as well as the associated SQL logging and console output configurations.
src/main/resources · high confidence
Removed legacy system management REST controllers and repository interfaces
The legacy REST controllers for managing menus, permissions, roles, and users have been removed, along with their corresponding JPA repository interfaces. This eliminates the old API endpoints for these entities, requiring users to rely on the updated system management interfaces.
src/main/java/me/zhengjie/system/repository · high confidence
Replaces log4jdbc with P6Spy for SQL logging and updates logging configuration
The application now uses P6Spy to handle SQL logging, replacing the previous log4jdbc implementation. A new spy.properties file configures P6Spy to log SQL statements to the console via Slf4J, with a 2-second threshold for slow queries. Additionally, the logback.xml configuration has been updated to set the Spring Framework log level to 'warn' and suppress noisy logs from Netty and Tomcat, while the Spring Boot banner is updated to reflect version 2.6.4.
eladmin-system/src/main/resources · high confidence
Restructured security configuration with externalized properties and BCrypt password encoding
The security configuration in the eladmin-system module has been refactored to externalize settings into dedicated property classes (CaptchaConfig, LoginProperties, SecurityProperties) and switch the password encoder to BCrypt. Users will see login captcha options (arithmetic, Chinese, GIF, etc.) and JWT token settings (header, expiration, online user keys) now managed via application configuration rather than hardcoded values. Additionally, the SpringSecurityConfig bean now explicitly defines a BCryptPasswordEncoder for password hashing, replacing previous SHA-256-based encryption, and uses AnonTagUtils to dynamically permit anonymous access to specific URLs. This change simplifies configuration management and improves security by using a more robust password encoding algorithm.
eladmin-system/src/main/java/me/zhengjie/modules/security/config · medium confidence
Security DTOs refactored to prevent sensitive data exposure and serialization errors
The security module's data transfer objects have been restructured to improve security and compatibility with the new Fastjson2 serialization library. New DTOs—AuthUserDto, AuthorityDto, and OnlineUserDto—have been introduced to handle authentication, authority, and online user data. Specifically, JwtUserDto now uses Fastjson2's @JSONField(serialize = false) annotations to ensure that sensitive fields like passwords and account status flags are not serialized into JSON responses, addressing a breaking change where the previous @JsonIgnore annotation no longer functions with Fastjson2. Additionally, AuthorityDto was added to prevent serialization errors when handling Spring Security's GrantedAuthority objects.
eladmin-system/src/main/java/me/zhengjie/modules/security/service/dto · high confidence
System domain mappers migrated to MapStruct
The system module's data mapping layer has been refactored to use MapStruct. New MapStruct mapper interfaces have been introduced for the following domain entities: Dept, Dict, Job, Menu, Role, and User. These mappers handle the conversion between domain objects and their corresponding DTOs, replacing the previous implementation in the mapper package.
eladmin-system/src/main/java/me/zhengjie/modules/system/service/mapstruct · high confidence
Updated code generation templates for admin and frontend modules
The code generator templates in eladmin-generator have been updated to produce modernized backend and frontend code. Backend templates (Controller, Service, Entity, etc.) now use Java 8+ features, Lombok, Swagger 2 annotations, and MapStruct for DTO mapping. Frontend templates (Vue/Element UI) have been refreshed to use the CRUD mixin pattern, improving how generated admin pages handle data, search, and pagination.
eladmin-generator/src/main/resources · high confidence
Updated database schema and added Quartz scheduler SQL
The \eladmin.sql\ file has been updated to reflect the latest database schema changes, including new tables for code generation configuration (\code\_config\), application management (\mnt\_app\), database management (\mnt\_database\), and deployment tracking (\mnt\_deploy\, \mnt\_deploy\_history\, \mnt\_deploy\_server\, \mnt\_server\). Additionally, a new \quartz.sql\ file has been added, containing the standard Quartz scheduler tables and indexes required for distributed task scheduling.
sql · high confidence
Test coverage
Added initial Spring Boot application test; Added unit tests for utility classes; Removed obsolete application test.
Dependencies
Upgrade to Spring Boot 2.7.18 and modernize core dependencies
The project has been upgraded to Spring Boot 2.7.18, which may require updates to existing code to remain compatible with the new framework version. Additionally, the JSON processing library has been switched to Fastjson2 (version 2.0.54), and the Redis client has been migrated from Jedis to Redisson (version 3.17.1) to enhance caching capabilities. The project structure has also been refactored into a multi-module Maven build, separating common utilities, logging, system core, tools, and code generation into distinct modules (eladmin-common, eladmin-logging, eladmin-system, eladmin-tools, eladmin-generator).
(dependencies) · high confidence
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
How this codebase got here
This is the PUBLIC form of this artifact. Findings are listed in full, but the details of SECURITY findings — which rule fired, in which file, on which line, and how to fix it — are deliberately withheld, and any secret-scanner results are excluded entirely. Where detail is absent here it was REMOVED FOR PUBLICATION; it is not missing from the analysis. The complete artifact is available from the repository owner.
Score
- CAI 47 → 42 (-5.5)
- Rubric changed (rubric-2026.08.19 → rubric-2026.09.15) — scores are not directly comparable.
Lenses
- Code Health 90 → 94 (+3.9)
- Architecture 99 → 93 (-5.5)
- Maturity 56 → 56 (-0.1)
- Readiness 26 → 24 (-1.4)
- Security 66 → 41 (-25.0)
- Domain Modelling 70 → 76 (+5.9)
Resolved (20)
- Coverage not included — suite not readable by the collector
- Dependency hygiene not measured — dependency manifest found but not parsed for hygiene
- Duplicated block (10 lines × 2) (eladmin-tools/src/main/java/me/zhengjie/service/impl/AliPayServiceImpl.java)
- Duplicated block (12 lines × 2) (eladmin-generator/src/main/java/me/zhengjie/utils/GenUtil.java)
- Duplicated block (5 lines × 2) (eladmin-common/src/main/java/me/zhengjie/utils/RedisUtils.java)
- Duplicated block (5 lines × 2) (eladmin-system/src/main/java/me/zhengjie/modules/quartz/service/impl/QuartzJobServiceImpl.java)
- Duplicated block (5 lines × 2) (eladmin-tools/src/main/java/me/zhengjie/rest/AliPayController.java)
- Duplicated block (6 lines × 2) (eladmin-generator/src/main/java/me/zhengjie/utils/GenUtil.java)
- Duplicated block (6 lines × 2) (eladmin-system/src/main/java/me/zhengjie/modules/maint/service/impl/DeployServiceImpl.java)
- Duplicated block (6 lines × 2) (eladmin-system/src/main/java/me/zhengjie/modules/system/service/impl/DeptServiceImpl.java)
- Duplicated block (8 lines × 2) (eladmin-common/src/main/java/me/zhengjie/utils/RsaUtils.java)
- Duplicated block (9 lines × 2) (eladmin-common/src/main/java/me/zhengjie/base/BaseDTO.java)
- Medium: security finding (details withheld)
- Medium: security finding (details withheld)
- Medium: security finding (details withheld)
- Medium: security finding (details withheld)
- No exposed public API
- Off-boarding risk: anonymized user #1
- Scanner failed to run — not a clean result
- Test reliability not included
New (38)
- Dependency hygiene PARTLY measured — Maven/Gradle declarations read, no dependency graph resolved
- Documentation: no contributor guidance (README.md)
- Documentation: no installation or build instructions (README.md)
- Documentation: no licence statement (README.md)
- Documentation: no usage examples (README.md)
- Duplicated block (10 lines × 2) (eladmin-common/src/main/java/me/zhengjie/utils/RsaUtils.java)
- Duplicated block (10 lines × 3) (eladmin-system/src/main/java/me/zhengjie/modules/maint/service/dto/DeployDto.java)
- Duplicated block (12 lines × 2) (eladmin-common/src/main/java/me/zhengjie/base/BaseDTO.java)
- Duplicated block (13–15 lines × 2) (eladmin-generator/src/main/java/me/zhengjie/utils/GenUtil.java)
- Duplicated block (14–17 lines × 2) (eladmin-tools/src/main/java/me/zhengjie/service/impl/AliPayServiceImpl.java)
- Duplicated block (5 lines × 2) (eladmin-system/src/main/java/me/zhengjie/modules/maint/service/impl/DeployServiceImpl.java)
- Duplicated block (5 lines × 2) (eladmin-system/src/main/java/me/zhengjie/modules/quartz/service/impl/QuartzJobServiceImpl.java)
- Duplicated block (5 lines × 2) (eladmin-tools/src/main/java/me/zhengjie/rest/AliPayController.java)
- Duplicated block (6 lines × 2) (eladmin-generator/src/main/java/me/zhengjie/utils/GenUtil.java)
- Duplicated block (6 lines × 2) (eladmin-system/src/main/java/me/zhengjie/modules/quartz/service/impl/QuartzJobServiceImpl.java)
- Duplicated block (6 lines × 2) (eladmin-system/src/main/java/me/zhengjie/modules/system/service/impl/DeptServiceImpl.java)
- Duplicated block (7 lines × 2) (eladmin-system/src/main/java/me/zhengjie/modules/system/service/impl/DeptServiceImpl.java)
- Duplicated block (7 lines × 5) (eladmin-system/src/main/java/me/zhengjie/modules/system/rest/DeptController.java)
- Duplicated block (8 lines × 2) (eladmin-system/src/main/java/me/zhengjie/modules/quartz/rest/QuartzJobController.java)
- Leaked secret: password-hash-credential (sql/eladmin.sql)
- …and 18 more
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
Survey your own repository
elunez/eladmin was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.
About this page
- The score is its most recent published measurement, taken on 24 September 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
- Measured at commit 55fbf705956949697dbd68bf9003776609d3d029 — the exact code this score is about.
- Scored under rubric-2026.09.15 — the same rubric and the same method as every other entry in this index.
- Measured by watchdog.canine.dev using codehealth-analyzer preprod-ae95d6cad036.