Foreword
Some time ago we wrote a simple background template SpringBoot series --Security + Layui implement a rights management background templates , and today we put it into a perfect simple common back office systems, I call it: Base Admin
This Base Admin is a simple common background management system, the main features include: rights management, menu management, user management, system settings, real-time log, API encryption, user login and change the password, configure personalized menus, etc.
Technology stack
Front-end: layui
java后端:SpringBoot + Thymeleaf + WebSocket + Spring Security + SpringData-Jpa + MySql
Project Structure Description
Portions are big part of the directory java, html, js, css table by a single subdirectory store
Demo
log in
(To facilitate the presentation, type the password input box into text)
Profiles branch selection, dev environment do not need to enter a verification code
Supports multiple login restrictions
Enable / disable multiplayer online account
Soft delete
Login IP address restrictions
Account expiration
More login restrictions, we can continue to expand
System Settings
Some simple system property, want to support more configurable and extensible own (for example here: the initial user management, password reset)
Menu Manager
Menu Manager is a layui of Tree
CRUD
authority management
CRUD
Dynamic load permissions
Load rights is not hard-coded in the code, but a dynamic read from the database, permissions set update method is called each time you save
1, Daji is ROLE_USER right, it is empty, no access to / sys / following path (http: // localhost: 8888 / sys / sysUser / get / 1)
2, sa super administrator privileges managing editor, to the rights of content ROLE_USER add / sys / **, Daji immediately have access to (http: // localhost: 8888 / sys / sysUser / get / 1)
User Management
Including user information, log on to limit the maintenance menu, assign permissions, etc.
Modify user permissions to take effect the next time you log
Modify the user menu is refreshing system to take effect
Login user information
Basic Information
Login user can only edit certain information, such as name, change passwords
change Password
MD5 password is encrypted and converted to a hexadecimal string storage, in addition to the active user to change the password, but also can call the administrator to reset the password
Personalized menu
Users can configure their own personalized shortcut menu
Real-time log
For more details, please see my previous blog: SpringBoot series --Logback log output to a file as well as real-time output to a web page
API Encryption
For more details, please see my previous blog: front and rear side API to interact with RSA data encryption --AES hybrid encryption complete example
Encrypted request parameter
Response Data Encryption
The key point to explain
1, custom url access, dynamic permissions to read, you need to customize the configuration data origin authentication, authentication manager, interceptors details, please refer to the steps: https://www.jianshu.com/p/0a06496e75ea ;
2, API encryption, because the login verification is Spring Security to do, so we have to get an account in UsernamePasswordAuthenticationFilter, before the completion of decryption password, just check our code before it is operational, but do respond to encrypted data operation, so the API encrypted login section of the light in accordance with our previous blog to is not enough, you need to decrypt operations CaptchaFilterConfig, decrypted a new custom RequestWrapper settings Parameter, and spread to the new object doFilter referred for further processing
postscript
This is just a simple common back-office systems, if added to a workflow, you can upgrade to the basic platform, to simplify business development, the finishing part of the general system functions into separate projects, specific business functions by embedding iframe
Open Source Code
Note: The database files in the resources / static / sql directory
Open source code has been hosting to my GitHub, the code says:
GitHub:https://github.com/huanzi-qch/base-admin
Cloud code: https://gitee.com/huanzi-qch/base-admin