Base Admin: A Simple Generic Backend Management System Overview
The article introduces Base Admin, a lightweight backend management platform built with SpringBoot, Thymeleaf, WebSocket and Spring Security, detailing its technology stack, project structure, core features such as permission and menu management, real‑time logging, monitoring, API encryption, and recent updates.
Introduction
This Base Admin is a simple, generic backend management system that provides permission management, menu management, user management, system settings, real‑time logs, real‑time monitoring, API encryption, as well as login‑user password changes and personalized menus.
Technology Stack
Frontend: layui.
Backend: SpringBoot + Thymeleaf + WebSocket + Spring Security + Spring Data JPA + MySQL.
Project Structure
The Java code, HTML, JavaScript and CSS files are organized under a main directory with a sub‑directory for each database table.
Feature Demonstrations
Login
The login page shows a text‑type password field for demonstration, supports environment‑specific configuration (dev environment skips captcha), and multiple login restrictions.
Account Online Control
Supports allowing or forbidding multiple simultaneous logins for the same account and implements soft deletion.
IP Restriction
Login can be limited to specific IP addresses.
Account Expiration
Accounts can be set to expire, with additional login restrictions extensible.
System Settings
Provides simple system property settings that can be extended (e.g., initial user management, password reset).
Menu Management
Menus are displayed as a layui Tree, supporting add, delete, and edit operations.
Permission Management
Supports CRUD operations for permissions and dynamic permission loading from the database rather than hard‑coded values.
User Management
Manages user information, login restrictions, menu and permission assignments, and includes a "current online users" feature.
Login User Information
Users can modify basic profile information and change passwords (stored as MD5‑hashed hexadecimal strings). They can also configure personalized shortcut menus.
Real‑time Log
Logs are pushed to the web page via WebSocket and refreshed every second. (Note: logging is configured only for the dev environment; production configuration is required before deployment.)
Real‑time Monitoring
Monitors system hardware and JVM memory usage, updating the web page every second via WebSocket.
API Encryption
Both request parameters and response data can be encrypted. The system settings include a toggle to enable or disable API encryption.
Key Points Explanation
1. Custom URL access permissions are loaded dynamically from the database, requiring custom authentication data sources, authentication managers, and interceptors.
2. API encryption is performed before Spring Security's UsernamePasswordAuthenticationFilter processes credentials, using a custom CaptchaFilterConfig to decrypt requests and wrap parameters.
3. RSA key pairs are generated at application startup; during hot‑deployment the front‑end must fetch the latest public key to avoid decryption failures.
Updates
1. Added Baidu UEditor integration (field type in MySQL changed to LONGTEXT).
2. Implemented "remember me" functionality; see referenced blog for details.
3. Added system color customization for header and sidebar.
4. Added management of currently online users with the ability to force logout.
Code Repository
GitHub: https://github.com/huanzi-qch/base-admin
Gitee: https://gitee.com/huanzi-qch/base-admin
Java Captain
Focused on Java technologies: SSM, the Spring ecosystem, microservices, MySQL, MyCat, clustering, distributed systems, middleware, Linux, networking, multithreading; occasionally covers DevOps tools like Jenkins, Nexus, Docker, ELK; shares practical tech insights and is dedicated to full‑stack Java development.
How this landed with the community
Was this worth your time?
0 Comments
Thoughtful readers leave field notes, pushback, and hard-won operational detail here.