usthe
является фронтендом системы управления правами доступа для беспредметных URL-ресурсов, основанной на angular+typescript+adminlte
. Взаимодействует с серверной частью bootshiro.RESTful API
.--------------- После того как вы завершили разработку api
на серверной стороне, вам потребуется добавить его в конфигурацию API на фронтенде (в разделе "Ресурсная конфигурация -> Управление API") с использованием стиля совпадения ant
(по соглашению, незаконченные API не защищены).
rest-url
равно /role/user/{roleId}/{currentPage}/{pageSize}
, метод доступа — GET
. Вам следует добавить новый api
в виде /role/user/*/*/*
с методом доступа GET
.url
представляет собой цепочку url="..." url+"=="+httpMethod
.api
на страницу, вам потребуется настроить его для авторизованных ролей, меню, связанных пользователей и других ресурсов в разделе "Ресурсная конфигурация -> Управление ролями" (по соглашению, api
, авторизованный для роли auth_anon
, может быть доступен всем пользователям; обратите внимание, что незащищённые api
могут быть доступны любому пользователю).sessionStorage
после первого входа в систему для предотвращения повторного получения. Для просмотра изменений в меню после изменения ролей вам потребуется закрыть и заново открыть страницу (или очистить sessionStorage
для автоматического обновления).Группа для обучения и общения QQ: 482621971
Общий вид:
Основан на angular5 + angular-cli + typescript + rxjs + bootstrap + adminlte
, следуя лучшим практикам Angular.
Процесс создания включает использование node.js и webpack, но я не очень знаком с этими технологиями...
Основана на springboot + apache shiro + mybatis
, использует стиль RESTful API, имеет собственные коды состояния, JSON-web-token, библиотеку подключения к базе данных Druid, генерацию документации Swagger, Redis для хранения refresh token и динамических ключей, Maven, одностороннее шифрование MD5 и двустороннее AES и т.д.
Этот nginx используется как прокси-сервер для решения проблем с кросс-доменной политикой и заголовком реального IP (в настоящее время серверная часть поддерживает функцию кросс-доменного доступа, поэтому Nginx не требуется). Другой Nginx используется как сервер для приложения Angular, Tomcat — для Bootshiro сервера.
Конфигурационный файл reverse-proxy nginx.conf находится здесь: conf
Процесс выглядит так:
git clone https://gitee.com/tomsun28/DockerFile.git
docker build -t nginx:1.0 .
docker run -d -p 80:80 --name nginx nginx:1.0
git clone https://gitee.com/yourName/usthe.git
npm install -g @angular/cli@latest
npm install
ng serve
Это локальная среда разработки, которая может работать без Nginx, но для продакшна лучше всё же использовать его
Клонируйте проект локально: git clone https://gitee.com/yourName/usthe.git
Измените параметр apiBaseUrl
в файле /src/environments/environments.prod.ts
Выполните команду для создания образа Docker: docker build -t usthe:1.0 .
Проверьте наличие созданного образа: docker images
Запустите контейнер: docker run -d -p 4300:4200 --name haiLady usthe:1.0
Проверьте запущенный контейнер: docker ps
Предполагается, что backend bootshiro уже запущен
Откройте браузер и перейдите по адресу: http://localhost:4300. Jenkins + Docker для непрерывной интеграции и непрерывной доставки CI/CD
Создайте форк проекта в вашем репозитории (ваши звезды приветствуются ^. ^)
Клонируйте проект локально: git clone https://gitee.com/yourName/usthe.git
Измените базовый URL API для среды производства и разработки в /src/environments/environments
Настройка окружения CI/CD может занять некоторое время, посмотрите здесь в самом низу
После завершения настройки запустите следующий shell-скрипт в Jenkins для usthe:
#!/bin/bash
# сборка в Jenkins через shell
# адрес репозитория Docker Hub, после чего сгенерированный образ будет загружен в registry или Docker Hub
REGISTRY_URL=127.0.0.1:5000
# docker login --username tomsun28 --password xxxx
# генерация версии на основе текущего времени
TAG=$REGISTRY_URL/$JOB_NAME:`date +%y%m%d-%H%M`
# использование Dockerfile, расположенного в проекте, для создания образа
docker build -t $TAG $WORKSPACE/.
``````markdown
docker push $TAG
docker rmi $TAG
# Проверка наличия ранее запущенного контейнера и его удаление при наличии
if docker ps -a | grep -i $JOB_NAME; then
docker rm -f $JOB_NAME
fi
# Запуск нового контейнера с использованием последней версии образа
docker run -d -p 4200:80 --name $JOB_NAME $TAG
gitee:
github:
...
Продолжается синхронизация ...
======================================
Пожалуйста, помогите улучшить этот проект ^^
Благодарности:
Howieair за иконку свиньи zhangkaitao за "Учимся Shiro" Статьи и открытые проекты от старших коллег на интернете
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )