120 lines
4.0 KiB
Markdown
120 lines
4.0 KiB
Markdown
# PKI Management (JavaFX)
|
||
|
||
Современное настольное приложение на JavaFX для управления PKI-ресурсами с модульной архитектурой, настраиваемой навигацией и системой прав доступа.
|
||
|
||
## Особенности
|
||
|
||
- Компонентная навигация:
|
||
- `MenuItem` — визуальные блоки-оглавления
|
||
- `SubMenuItem` — кликабельные пункты подменю
|
||
- Управление видимостью пунктов (вкл/выкл), автоматическое скрытие пустых блоков
|
||
- Модульная архитектура:
|
||
- Пример модуля: `Test 1`
|
||
- Настройки с пользовательским и админским режимами
|
||
- Админский доступ:
|
||
- Диалог ввода пароля с автофокусом
|
||
- Переключение интерфейса настроек (User/Admin)
|
||
- Конфигурация:
|
||
- Хранится в скрытой папке пользователя `pki_management` (Windows: `C:\\Users\\{user}\\pki_management\\config.properties`)
|
||
- Доступ через `ConfigManager` (singleton)
|
||
|
||
## Стек
|
||
|
||
- Java 21, JavaFX 21 (Controls + FXML)
|
||
- Maven
|
||
|
||
## Структура проекта
|
||
|
||
```
|
||
src/main/java/com/dsol/pki_management/
|
||
├─ app/ # Запуск приложения
|
||
│ ├─ PKIApplication.java
|
||
│ └─ Launcher.java
|
||
├─ controllers/ # Контроллеры экранов
|
||
│ ├─ MainController.java
|
||
│ └─ SettingsController.java
|
||
├─ components/ # Переиспользуемые UI-компоненты
|
||
│ ├─ MenuItem.java
|
||
│ └─ SubMenuItem.java
|
||
├─ modules/ # Функциональные модули
|
||
│ └─ test1/
|
||
│ └─ Test1Controller.java
|
||
└─ config/ # Конфигурация приложения
|
||
├─ ConfigManager.java
|
||
└─ AppConfig.java
|
||
|
||
src/main/resources/com/dsol/pki_management/
|
||
├─ views/
|
||
│ └─ main.fxml
|
||
├─ components/
|
||
│ ├─ menu-item.fxml
|
||
│ └─ sub-menu-item.fxml
|
||
└─ modules/
|
||
├─ settings/
|
||
│ └─ settings-view.fxml
|
||
└─ test1/
|
||
└─ test1-view.fxml
|
||
```
|
||
|
||
## Быстрый старт
|
||
|
||
1) Установите JDK 21 и Maven
|
||
|
||
2) Сборка и запуск
|
||
|
||
```bash
|
||
# Windows / Linux / macOS
|
||
mvn clean javafx:run
|
||
```
|
||
|
||
Либо через главный класс:
|
||
|
||
```bash
|
||
mvn -q -Dexec.mainClass="com.dsol.pki_management.app.Launcher" exec:java
|
||
```
|
||
|
||
## Конфигурация
|
||
|
||
- Путь: `C:\\Users\\{user}\\pki_management\\config.properties` (Windows)
|
||
- Создается автоматически при первом запуске
|
||
- Пример ключей:
|
||
- `admin.password` — пароль администратора (по умолчанию `admin123`)
|
||
- `app.language`, `app.theme` — пользовательские настройки
|
||
|
||
Использование в коде:
|
||
|
||
```java
|
||
var config = ConfigManager.getInstance();
|
||
String pwd = config.getProperty(AppConfig.KEY_ADMIN_PASSWORD, AppConfig.DEFAULT_ADMIN_PASSWORD);
|
||
config.setProperty(AppConfig.KEY_THEME, "light");
|
||
config.saveConfig();
|
||
```
|
||
|
||
## UX-функции
|
||
|
||
- Гамбургер-меню слева
|
||
- Отображение навигации как дерева
|
||
- Зачеркивание скрытых SubMenu пунктов
|
||
- Скрытие `MenuItem`, если все дочерние скрыты
|
||
|
||
## Дорожная карта
|
||
|
||
- Локализация интерфейса (i18n)
|
||
- Темы (light/dark)
|
||
- Новые модули (например, управление сертификатами, аудит)
|
||
- Экспорт/импорт настроек
|
||
|
||
## Разработка
|
||
|
||
```bash
|
||
# Сборка
|
||
mvn clean package
|
||
|
||
# Запуск с логами
|
||
mvn -Dprism.verbose=true javafx:run
|
||
```
|
||
|
||
## Лицензия
|
||
|
||
Проект распространяется на условиях лицензии Apache-2.0.
|