1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/362330721-jeeplatform

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
README.md 15 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
gitlife-traslator Отправлено 30.11.2024 20:27 c9345c6

Проект JeePlatform

JeePlatform — это универсальная базовая платформа, созданная на основе SpringBoot с использованием ORM-фреймворка Mybatis, веб-слоя SpringMVC и различных открытых компонентов. Код проекта передан сообществу Open Source China: https://www.oschina.net/p/jeeplatform.

Структура кода

├─jeeplatform---------------------------- родительский проект, общие зависимости
│  │
│  ├─jeeplatform-admin-------------------------- базовая система управления
│  │
│  ├─jeeplatform-cms----------------------- система управления контентом
│  │
│  ├─jeeplatform-common-------------------------- общий модуль
│  │
│  ├─jeeplatform-oa-------------------------- система координации работы
|  |
|  |─jeeplatform-provider----------------------- центр услуг платформы
│  │
│  ├─jeeplatform-provider-api----------------------- API центра услуг платформы
|  |
│  ├─jeeplatform-sso-cas----------------------- сервер CAS для единого входа
│  │
│  └─jeeplatform--sso-oauth2--------------- сервер OAuth2.0 для единого входа

Система управления (модуль jeeplatform-admin)

Image text

  • Главная страница системы управления адаптирована для мобильных устройств.

Image text

  • На главной странице системы управления используется открытый шаблон переднего плана с функцией смены темы.

  • Тема «Тёмно-зелёная страница»:

Image text

  • Чистая тема:

Image text

  • На главной странице системы управления отображается список ролей пользователя и меню.

Image text

  • Конфигурация ролей позволяет изучить RBAC (контроль доступа на основе ролей).

Image text

  • Роль авторизации: только суперадминистратор имеет право доступа.

  • Отправка электронной почты с помощью JavaEmail. Не забудьте включить SSL-проверку.

Image text

OA-система управления (в разработке)

Планируется интеграция с сервером CAS для реализации единого входа.

CMS-система управления (в разработке)

В настоящее время планируется интеграция с системой OAuth2.0 для реализации единого входа.

Три. Ключевые технологии

CAS-сервер для единого входа (модуль jeeplatform-sso-cas) (в процессе доработки)

В проекте используется CAS для обеспечения единого входа, а кластерная установка может быть выполнена в соответствии с руководством: http://blog.csdn.net/u014427391/article/details/78653482 Проект реализует единый вход с использованием nginx в качестве балансировщика нагрузки, Redis для хранения сеансов Tomcat и обеспечения совместного использования сеансов в кластере, а также Redis в качестве хранилища билетов CAS для обеспечения согласованности билетов в кластере. OA уже интегрирован с CAS, но модуль admin пока не использует CAS.

На диаграмме показан пример использования CAS. Диаграмма показывает, что CAS поддерживает различные методы аутентификации, такие как LDAP, базы данных JDBC и Active Directory. Поддерживаемые протоколы включают Custom Protocol, CAS, OAuth, OpenID, RESTful API, SAML1.1 и SAML2.0.

Схема кластера CAS:

Image text

Схема кластера:

Image text

OAuth2.0-сервер для единого входа (модуль jeeplatform-sso-oauth2) (в процессе доработки)

Интеграция SpringBoot и Redis для кэширования (реализовано с использованием Spring AOP)

Сначала выполняется поиск в кэше Redis, если поиск не удался, выполняется запрос к базе данных MySQL, затем результат сохраняется в кэше Redis. Подробнее см. в блоге: ссылка.

Можно увидеть, что кэш был сохранён в Redis:

здесь написать описание изображения

Четыре. Бизнес-план

Общие функции системы управления

  • Единый вход: OAuth2.0+JWT единый вход / CAS единый вход
  • Управление пользователями: системные пользователи
  • Ролевое управление: роли распределяются в соответствии с бизнес-функциями предприятия, каждая роль имеет разные права доступа к системе
  • Контроль доступа: контроль доступа детализирован до уровня системных меню
  • Онлайн-управление: управление онлайн-пользователями, возможность принудительного отключения
  • Меню управления: система может настраивать системные меню и назначать разные разрешения
  • Отчётность: данные отчётов, анализ пользователей
  • Мониторинг системы: мониторинг базы данных (предоставляется Druid)
  • Онлайн-документация: онлайн-документация SwaggerUI API
  • Общие интерфейсы: функции отправки электронных писем системы, функции экспорта Excel

Функции OA-системы управления (в разработке)

  • Единый вход: CAS единый вход
  • Управление посещаемостью: процесс отпуска
  • Кадровое управление: управление организацией, управление отделом, управление персоналом

Функции CMS-системы управления (в разработке)

  • Единый вход: единый вход OAuth2.0 + JWT
  • Управление информацией: управление статьями, проверка статей ...

Пять. Технические решения

Бэкенд-технологии

  • Механизм рабочего процесса: Activiti5 (ожидается решение) ORM框架: Mybatis. Web-фреймворк: Spring MVC. Основной фреймворк: Spring Boot. Задача диспетчеризации: Spring Task (ожидает решения). Безопасность: Apache Shiro, Spring Security. Полнотекстовый поисковый движок: Lucene (ожидает решения). Шаблонизатор: JSP (Thymeleaf ещё не используется, требуется перестройка фронтенда). Технология SSI на сервере: ожидает решения. Веб-сокеты: WebSocket. Пул соединений: Druid (с открытым исходным кодом от Alibaba). Обработка журналов: SLF4J (фреймворк для логирования), Logback. Кэширование: Redis. Работа с таблицами Excel: POI.

Фронтенд-технологии

  • Загрузка файлов: JQuery Uploadify.
  • Древовидная структура: EasyUI Tree.
  • Плагин для работы с датами: JQuery Date.
  • Диалоговое окно: zDialog.
  • Сохранение cookie: JQuery Cookie.
  • Редактор форматированного текста: Baidu UEDitor.
  • Фронтенд-фреймворк: Twitter Bootstrap.

6. Часто задаваемые вопросы

Если при запуске jeeplatform открывается страница 404, то в случае использования idea можно настроить конфигурацию, выбрав Edit configurations > Configuration > Edit working directory и установив значение $MODULE_DIR$.

7. Версии

  • master: основная версия, реализует простое управление правами доступа и однократную регистрацию. Доступны два варианта: CAS и OAuth2.0 + JWT. Администратор временно не использует однократную регистрацию, проект OA подключён к CAS, а CMS — к OAuth2.0. Микросервисы используются только для демонстрации и не выполняют обработку проекта, поэтому код не объединён.
  • dev: код этой версии аналогичен коду master.
  • 1.0.0: базовая версия с базовым управлением правами доступа. Функциональность требует улучшения, а контроль прав доступа — более детальной настройки.
  • 1.1.0: версия для экспериментов с однократной регистрацией. Предлагаются два варианта: CAS для однократной регистрации и OAuth2.0 + JWT для однократной регистрации. Администратор пока не подключён, проект OA подключен к CAS, а проект CMS — к OAuth2.0.

8. Блог о проекте

Для лучшего понимания кода приведены ссылки на некоторые мои блоги.

Java-фреймворки

SpringBoot

Мои блоги о SpringBoot можно найти в моей колонке: Серия блогов SpringBoot.

RPC-фреймворк

Однократная регистрация

Docker

1
https://api.gitlife.ru/oschina-mirror/362330721-jeeplatform.git
git@api.gitlife.ru:oschina-mirror/362330721-jeeplatform.git
oschina-mirror
362330721-jeeplatform
362330721-jeeplatform
master