| Item | Value |
|---|---|
| Project Name | LSCable CMS |
| Version | 2.0 |
| Package | com.i52soft.lscable.cms |
| Type | Spring Boot Web Application |
LSCable CMS V2 is a cable management system for network infrastructure management. It provides web-based UI for managing cable connections, network devices, IP addresses, and data center infrastructure.
| Category | Technology |
|---|---|
| Framework | Spring Boot 1.4.4.RELEASE |
| Template Engine | Thymeleaf |
| Database | PostgreSQL 42.2.2.jre7 |
| ORM | MyBatis (mybatis-spring-boot-starter 1.1.1) |
| Security | Spring Security + BCrypt |
| WebSocket | Spring WebSocket |
| Logging | SLF4J + Logback |
| Connection Pool | HikariCP |
| Frontend | Bootstrap 3.3.4, jQuery 1.11.3 |
| Crypto | BouncyCastle (bcprov-jdk15on, bcpkix-jdk15on) |
| Build Tool | Maven |
| Java Version | 1.7 |
LSCable CMS V2/
βββ src/
β βββ main/
β β βββ java/com/i52soft/lscable/cms/
β β β βββ App.java # Main Application
β β β βββ config/ # Configuration
β β β β βββ SecurityConfig.java
β β β β βββ WebConfig.java
β β β β βββ WebSocketConfig.java
β β β β βββ ThymeleafConfig.java
β β β β βββ MyTomcatEmbeddedServletContainerFactory.java
β β β βββ controller/ # Controllers
β β β β βββ AdminController.java
β β β β βββ DefaultController.java
β β β β βββ HTBackendRestController.java
β β β β βββ WebSocketController.java
β β β β βββ WidgetDataProviderRestController.java
β β β βββ service/ # Service Interfaces
β β β β βββ HTBackendService.java
β β β β βββ WidgetDataProviderService.java
β β β β βββ impl/
β β β β βββ HTBackendServiceImpl.java
β β β β βββ LogInServiceImpl.java
β β β β βββ WidgetDataProviderServiceImpl.java
β β β βββ dao/ # Data Access
β β β β βββ HTBackendDao.java
β β β β βββ LogInDao.java
β β β β βββ WidgetDataProviderDao.java
β β β βββ domain/ # Domain Objects
β β β β βββ UserVO.java
β β β β βββ SystemUserVO.java
β β β β βββ EndUserVO.java
β β β β βββ ProductVO.java
β β β β βββ NetworkVO.java
β β β β βββ IPAddressVO.java
β β β β βββ CMSSiteVO.java
β β β β βββ RegionVO.java
β β β β βββ EntityVO.java
β β β β βββ InterfaceVO.java
β β β β βββ SiteTreeVO.java
β β β β βββ SiteTreeNodeVO.java
β β β β βββ LinkageConnectionVO.java
β β β β βββ ConnectorVO.java
β β β β βββ ConnectionVO.java
β β β β βββ MainPageLayoutVO.java
β β β β βββ MainPageWidgetVO.java
β β β β βββ MapWidgetVO.java
β β β β βββ ChartWidgetVO.java
β β β β βββ WidgetParam.java
β β β β βββ MapParam.java
β β β β βββ DeviceParam.java
β β β β βββ NetworkSwitchVO.java
β β β β βββ PPInvalidVO.java
β β β β βββ SampleWidgetVO.java
β β β β βββ SampleWidgetVO2.java
β β β β βββ SiteTreePlacementVO.java
β β β β βββ SiteTreeRackspacePositionVO.java
β β β β βββ device.java
β β β β βββ deviceInfo.java
β β β β βββ regions.java
β β β β βββ regionInfo.java
β β β βββ common/ # Common Utilities
β β β βββ CmsAuthenticationProvider.java
β β β βββ KeyUtil.java
β β β βββ PemFile.java
β β β βββ IPAddress.java
β β β βββ SimpleCORSFilter.java
β β β βββ CmsACLHandler.java
β β βββ resources/
β β βββ application.properties
β β βββ application.yml
β β βββ database.properties
β β βββ data.sql
β β βββ db_reset_sql.txt
β β βββ LicensedMac
β β βββ logback-spring.xml
β β βββ templates/ # Thymeleaf Templates
β β β βββ login.html
β β β βββ layout/
β β β β βββ default.html
β β β β βββ default2.html
β β β β βββ default3.html
β β β β βββ default4.html
β β β β βββ default5.html
β β β β βββ default6.html
β β β β βββ default7.html
β β β β βββ default8.html
β β β β βββ public.html
β β β βββ cms/
β β β β βββ index.html
β β β β βββ view.html
β β β β βββ new.html
β β β β βββ modifySite.html
β β β β βββ setting.html
β β β β βββ siteset.html
β β β β βββ adminAuth.html
β β β β βββ adminList.html
β β β β βββ adminSearch.html
β β β β βββ adminPortUsage.html
β β β β βββ catalog.html
β β β β βββ regions.html
β β β β βββ manufacturer.html
β β β β βββ linkage.html
β β β βββ cms2/ # CMS v2 Theme
β β β βββ setting/
β β β β βββ main.html
β β β β βββ view.html
β β β β βββ new.html
β β β β βββ modify.html
β β β β βββ system.html
β β β β βββ adminsysuser.html
β β β β βββ map-list.html
β β β β βββ manage-widget-*.html # Widget Management
β β β βββ setting2/ # Setting v2 Theme
β β β βββ ipam/
β β β β βββ user.html
β β β β βββ setting.html
β β β βββ ipam2/
β β β β βββ index.html
β β β β βββ user.html
β β β β βββ setting.html
β β β β βββ terminalUser.html
β β β β βββ terminalList.html
β β β β βββ adminNetwork.html
β β β βββ main-widgetMap.html
β β β βββ pace.html
β β βββ themes/
β β βββ bright.properties
β β βββ dark.properties
β βββ test/
β βββ java/
β βββ com/mysample/
β βββ AppTest.java
βββ target/
β βββ LSCableCMS-2.0.jar
β βββ config.properties
β βββ startCMS.bat / startCMS.sh
β βββ stopCMS.bat / stopCMS.sh
βββ doc/ # Javadoc
βββ pom.xml
βββ .classpath
βββ .project
Main administrative controller handling:
/admin/setting/*- Dashboard layout and widget management/admin/cms/*- CMS site management/admin/ipam/*- IP Address Management- Theme-based routing (setting/ vs setting2/)
REST API controller for backend operations
REST API for widget data provisioning
Real-time communication support
Default routing and main page handling
Core business logic for:
- Widget management
- Layout management
- Site tree management
- Product/Manufacturer management
- User management
- Network/IPAM management
- Connection diagram
- Alarm monitoring
Widget data provider service
| Domain Class | Description |
|---|---|
| UserVO | General user |
| SystemUserVO | System administrator |
| EndUserVO | End user/terminal user |
| CMSSiteVO | CMS site information |
| NetworkVO | Network segment |
| IPAddressVO | IP address |
| EntityVO | Physical entity (device, rack, etc.) |
| InterfaceVO | Network interface |
| SiteTreeVO | Site tree structure |
| MainPageLayoutVO | Dashboard layout |
| MainPageWidgetVO | Dashboard widget |
| MapWidgetVO | Map widget |
| WidgetParam | Widget parameters |
- Authentication: Spring Security with BCrypt password encoding
- Authorization: Role-based access control
- Session: Remember-me functionality
- Public Resources: CSS, JS, images, static resources (permitAll)
- Protected Resources:
/admin/**requires Administrator role
| Method | Path | Description |
|---|---|---|
| GET | /login | Login page |
| POST | /login-process | Login processing |
| GET | /logout | Logout |
| Method | Path | Description |
|---|---|---|
| GET | /admin/setting/adminsysuser | System user management |
| GET | /admin/setting/new | Create new layout |
| GET | /admin/setting/modify | Modify layout |
| GET | /admin/setting/map-list | Map widget list |
| GET | /admin/setting/manage-layout | Manage layout |
| GET | /admin/setting/manage-widget | Manage widget |
| GET | /admin/setting/preview-layout | Preview layout |
| Method | Path | Description |
|---|---|---|
| GET | /admin/cms/setting | CMS settings |
| GET | /admin/cms/siteset | Site settings |
| GET | /admin/cms/view | View site |
| GET | /admin/cms/new | Create new site |
| GET | /admin/cms/modifySite | Modify site |
| GET | /admin/cms/catalog | Product catalog |
| GET | /admin/cms/regions | Region management |
| GET | /admin/cms/manufacturer | Manufacturer management |
| GET | /admin/cms/adminAuth | Authorization management |
| GET | /admin/cms/linkage | Connection management |
| Method | Path | Description |
|---|---|---|
| GET | /admin/ipam/setting | IPAM settings |
| GET | /admin/ipam/user | User IP management |
| GET | /admin/ipam/adminNetwork | Network administration |
- Type: HikariCP
- Driver: PostgreSQL 42.2.2.jre7
- Configuration: database.properties (externalized)
- Type: MyBatis
- Mapper: XML-based SQL mapping
mvn clean package# Windows
target\startCMS.bat
# Linux
sh target/startCMS.sh# Windows
target\stopCMS.bat
# Linux
sh target/stopCMS.sh-
Cable Management System (CMS)
- Site management
- Building/Floor/Room hierarchy
- Patch panel management
- Connection tracking
-
Dashboard & Widgets
- Customizable dashboard layouts
- Line Chart, Pie Chart, Gauge Chart
- Alarm Grid Table
- Availability Grid Table
- Map Widget
- 3D Rack View (DCIM)
-
IP Address Management (IPAM)
- IP address allocation
- Network segment management
- L2/L3 switch management
- Gateway configuration
-
Real-time Monitoring
- WebSocket-based updates
- Alarm status monitoring
- Port status monitoring
-
User Management
- System user administration
- End user management
- Role-based access control (RBAC)
-
Theme Support
- Bright theme
- Dark theme
Spring Boot main configuration
Database connection configuration (externalized)
Application runtime configuration (in target/)
License MAC address for hardware binding
| Group | Artifact | Version |
|---|---|---|
| org.springframework.boot | spring-boot-starter-web | 1.4.4.RELEASE |
| org.springframework.boot | spring-boot-starter-security | 1.4.4.RELEASE |
| org.springframework.boot | spring-boot-starter-websocket | 1.4.4.RELEASE |
| org.springframework.boot | spring-boot-starter-thymeleaf | 1.4.4.RELEASE |
| org.mybatis.spring.boot | mybatis-spring-boot-starter | 1.1.1 |
| org.postgresql | postgresql | 42.2.2.jre7 |
| org.projectlombok | lombok | 1.16.8 |
| com.zaxxer | HikariCP | (from parent) |
| org.bouncycastle | bcprov-jdk15on | 1.56 |
| org.bouncycastle | bcpkix-jdk15on | 1.56 |
| org.webjars | bootstrap | 3.3.4 |
| org.webjars | jquery | 1.11.3 |
- This is a legacy Spring Boot 1.4.x application (Java 7)
- Uses Thymeleaf for server-side rendering
- Two theme versions exist: original (setting/) and v2 (setting2/)
- CMS and IPAM modules with separate UI paths
- Hardware license binding is implemented but currently disabled
- Javadoc documentation available in /doc folder