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

OSCHINA-MIRROR/qsyout-web-rbac0

Клонировать/Скачать
README.md 15 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
gitlife-traslator Отправлено 01.12.2024 08:36 01db0a5

Введение

Основанная на RBAC0 система управления бэкендом включает в себя функции входа, забытого пароля, рабочего стола (приветственная страница и мониторинг сервера), управления организацией, управления пользователями, управления ролями, управления меню, словаря данных, сообщений об ошибках, ведения журнала, инструментов базы данных и личных данных. Также она содержит центр безопасности.

Быстрое создание базовой системы управления бэкендом возможно через введение компонентов в pom.xml.

Система интегрирует компоненты для быстрого создания API JSON и компоненты проверки интерфейса XML, что упрощает разработку уровня персистентности и предоставляет набор инструментов, удовлетворяющих повседневные потребности веб-разработки.

Архитектура программного обеспечения

Основным компонентом системы является web-system-rbac0 1.0.2.RELEASE, который включает следующие сторонние зависимости: spring-boot 2.0.0.RELEASE, mybatis-starter 2.0.0, beetl 2.9.3, fastjson 1.2.31 и kaptcha 0.0.9.

Во фронтенде преимущественно используется Vue 2.6* + element-ui 2.13*.

В качестве базы данных применяется MySQL 5.7.

Инструкция по установке

Требуется выполнить всего три шага:

  1. Внести ссылку в pom.xml:
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.0.0.RELEASE</version>
    </parent>
……
    <dependency>
        <groupId>com.qsyout</groupId>
        <artifactId>web-system-rbac0</artifactId>
        <version>1.0.7.RELEASE</version>
    </dependency>
  1. Выполнить инициализацию базы данных в методе main: PlatformBuilder.build(...).execute();

  2. После настройки соединения с базой данных можно запускать и развёртывать проект, следуя инструкциям для spring-boot 2.0.0.RELEASE.

Руководство по использованию

  1. Использование конфигурационных файлов:

    • com.qsyout.sdk.log.path — путь к файлу журнала logback;
    • com.qsyout.sdk.mail.host — адрес почтового сервера, рекомендуется использовать smtp.163.com;
    • com.qsyout.sdk.mail.userName — имя пользователя;
    • com.qsyout.sdk.mail.password — пароль пользователя;
    • com.qsyout.sdk.mail.encoding — кодировка UTF-8;
    • com.qsyout.sdk.mail.alias — псевдоним электронной почты;
    • com.qsyout.sdk.mail.admin — адрес электронной почты администратора. При возникновении системной ошибки информация о стеке исключений отправляется на этот адрес;
    • com.qsyout.sdk.sync.dao.threads — количество потоков для многопоточного запроса к базе данных, по умолчанию 10;
    • com.qsyout.settings.title — заголовок страницы;
    • com.qsyout.settings.headerTitle — содержимое логотипа страницы, по умолчанию «后台管理系统»;
    • com.qsyout.monitor.io.during — интервал между статистическими данными о диске и сетевой карте сервера.
  2. Использование аннотаций:

    • @Api — аннотация, размещаемая над методами запросов [или над методом execute класса BaseService]. Содержит описание интерфейса, флаг open, указывающий, является ли интерфейс открытым (не требует авторизации), по умолчанию false, и флаг permission, определяющий права доступа к интерфейсу;
    • @JsonResult — аннотация, размещаемая над методами запросов [или над методом execute класса BaseService], содержит флаг info, указывающий на необходимость вывода сообщения, по умолчанию false, и сообщение message, по умолчанию «операция выполнена успешно».

Все методы запросов, помеченные аннотацией JsonResult, возвращают единую структуру JSON. Пример: { "status":1200,info:true,message:"операция выполнена успешно",data:obj --- obj обозначает конкретное возвращаемое значение. } Значение status указывает на статус возврата: 1200 — успех, 2500 — системная ошибка, 1500 — бизнес-ошибка, 1403 — недостаток прав, 1413 — ошибка проверки параметров.

  1. Быстрое создание API JSON:
    • Добавить Spring bean (отмеченный @service/@component) и унаследовать от com.qsyout.sdk.declare.BaseService. Имя bean должно заканчиваться на Service;
    • Зарегистрировать интерфейс: в resources/receives добавить файл XML согласно пути URL, например: url:/sys/menu/loadMenuData.do — LoadMenuDataService.
  2. Использование фреймворка для проверки XML:
    • Определить структуру параметров в resources/receives. Ресурсы/получает/сист/меню/loadMenuData.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE map PUBLIC "-//qsyout.com,receive map params validate tag library" "http://xmldtd.qsyout.com/validate.dtd" >
<map>
    <string name="name"></string>
</map>

В соответствии с DTD можно автоматически предложить параметры узла;
Наследовать spring bean от BaseService — LoadMenuDataService. Перед выполнением провести проверку в соответствии с определёнными в XML узлами, пометить метод RequestMapping аннотацией JsonResult. На карте параметров метода указать XmlValid и настроить путь к XML. Также можно выполнить проверку параметров.

  1. Постоянное хранение данных
    Файлы mybatis XML находятся непосредственно в resources/sqlmap. Например:

![Определение местоположения sqlmap](https://gitee.com/qsyout/web-sdk/raw/master/dist/sqlmap.png «Определение местоположения sqlmap»)

Для выполнения операций с базой данных достаточно вызвать соответствующие методы IbatisDao:

  • ibatisDao.update(String statementName, Object params) — язык манипулирования данными DML (вставка, редактирование, удаление);
  • ibatisDao.load(String statementName, Object params) — язык запросов DQL (возвращается только одна строка, при наличии более одной строки возникает ошибка);
  • ibatisDao.queryForList(String statementName, Object params) — язык запросов DQL (возврат нескольких строк);
  • statementName: TABLE_NAME.insert — параметры: mybatis (parameterType).

Spring bean, наследуемый от BaseService, может напрямую использовать свойство ibatisDao, для других spring beans требуется внедрение IbatisDao.

При необходимости добавить аннотацию @Transactional для управления транзакциями.

  1. Обработка исключений
    Различные сценарии приложений вызывают различные исключения, что упрощает централизованное управление исключениями в программе:
  • бизнес-исключения: com.qsyout.sdk.ex.BusinessException — выбрасываются в бизнес-методах и используются для уведомления пользователей о том, что условия не выполнены;
  • исключения проверки параметров: com.qsyout.sdk.ex.ParamsValidateException — редко вызываются, обычно проверяются перед выполнением бизнес-методов. Выбрасываются, когда параметры не соответствуют условиям. Используются в некоторых особых сценариях, где требуется проверка параметров в соответствии с условиями;
  • com.qsyout.sdk.ex.ForbiddenException — редко вызывается, обычно используется при проверке разрешений.

Соответствующие статусы JSONresult для вышеуказанных исключений: 1500, 1413, 1403.

  1. Обзор классов инструментов
    DateUtil — класс инструментов для работы со временем.
    EncryptUtil — класс инструментов шифрования (MD5).
    JSEscapeUtils — класс Java-инструментов для имитации функций escape и unescape JavaScript.
    MailUtil — класс инструментов отправки почты.
    SpringUtil — класс инструментов получения bean-компонентов Spring.
    StringUtil — класс строковых инструментов.
    SubjectUtil — класс инструментов текущего запроса.
    WebUtil — класс веб-инструментов.

  2. Разработка представлений
    Все страницы представлений хранятся в каталоге resources/views.
    Платформа использует Beetl для рендеринга представлений, а разработка представлений соответствует спецификациям Beetl.
    Домашняя страница системы указывает на /index.html. Эта страница по умолчанию пуста и служит только для перенаправления. После входа в систему она перенаправляется на страницу управления бэкендом, в противном случае — на страницу входа. Если бизнес-логика не соответствует требованиям, можно переписать страницу /index.html в соответствующем пути.

Страница входа указывает на /login.html. Если страница входа не соответствует бизнес-требованиям, её можно переписать и добавить следующий код:

<% include("/system/login-form.html",{}){} %>

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

Между системой настройки и рабочим столом на левой панели системы управления бэкэндом зарезервировано место для настраиваемой навигационной панели. Можно реализовать настраиваемую навигационную панель, переписав страницу /business-nav-menu.html с использованием синтаксиса element-ui NavMenu.
Встроенная функция Beetl hasPermission('permission1','permission2'……) определяет, содержит ли она один из идентификаторов разрешений permission1 или permission2. Функция возвращает true или false.

Техническая поддержка

Техническая группа обмена QQ: 1009166083. Для любых вопросов или технических консультаций вы можете отправить электронное письмо на адрес 2375276632@qq.com.

Чёрный список

Заявление об обслуживании

Разработка сложна, и быть чистым техническим работником ещё сложнее. Уважение к чужому труду — это уважение к себе, и мы надеемся получить признание и поддержку от всех.

Любой организации или отдельному лицу разрешено бесплатное использование. Организации и отдельные лица, которые не уважают труд технических работников, будут занесены в чёрный список и потеряют право на бесплатное использование.

Эта версия разработана только с базовой моделью разрешений. В будущем модель будет дополнена;
Другие модели разрешений, такие как web-rbac0-dac, web-rbac1 и более сложные базовые фреймворки моделей разрешений, постоянно обновляются.

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/qsyout-web-rbac0.git
git@api.gitlife.ru:oschina-mirror/qsyout-web-rbac0.git
oschina-mirror
qsyout-web-rbac0
qsyout-web-rbac0
master