29b5c8fcae03550b83b9d44402af307a24646b15
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
Быстрый старт
-
Установите JDK 21 и Maven
-
Сборка и запуск
# Windows / Linux / macOS
mvn clean javafx:run
Либо через главный класс:
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— пользовательские настройки
Использование в коде:
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)
- Новые модули (например, управление сертификатами, аудит)
- Экспорт/импорт настроек
Разработка
# Сборка
mvn clean package
# Запуск с логами
mvn -Dprism.verbose=true javafx:run
Лицензия
Проект распространяется на условиях лицензии Apache-2.0.
Description
Languages
Java
100%