|
|
||
|---|---|---|
| auth-core | ||
| auth-jwt-core | ||
| common | ||
| common-geo | ||
| common-geo-spatial4j-spring | ||
| common-measure | ||
| common-measure-spring | ||
| common-spring | ||
| common-spring-jpa | ||
| common-spring-security | ||
| common-spring-security-jpa | ||
| common-spring-test | ||
| common-spring-test-jpa | ||
| common-spring-web | ||
| exception-handler-logger-spring-web | ||
| exception-handler-spring-web | ||
| gradle/wrapper | ||
| logger | ||
| logger-spring | ||
| logger-spring-web | ||
| response-wrapper-spring-web | ||
| settings-spring-jpa | ||
| version-spring-web | ||
| .editorconfig | ||
| .gitignore | ||
| LICENSE | ||
| README.md | ||
| build.gradle.kts | ||
| gradle.properties | ||
| gradlew | ||
| gradlew.bat | ||
| settings.gradle.kts | ||
README.md
Modules
Installation via Gradle Composite Build
-
Add this repository as a git submodule to your project
-
Add these lines to your
settings.gradle.kts:includeBuild("Backend-common") -
Use TLK modules as dependencies of your project
dependencies { implementation("ru.touchin:common") }
common
Набор утилит, структур данных, исключений без привязки к spring
ExecutionContext- класс для хранения/получения данных из текущего потокаSecureRandomStringGenerator- генератор случайной строки по словарюerrors.*- базовые исключения<type>.*Utils- утилиты для различных типов данных
common-spring
Набор утилит, структур данных для spring, без привязки к доп. модулям, таким как jpa и web
common-spring-jpa
models.*- базовыеEntityrepositories- утилиты и доп. интерфейсы для репозиториевliquibase.LiquibaseStart- для подключения этого компонента необходимо объявитьliquibase.LiquibaseParams. Указать путь к файлу с миграцией и схему, для которой эта миграция будет применяться. С помощьюLiquibaseStartможно применить кастомную миграцию не конфликтуя с основной.EnableJpaAuditingExtra- подключениеJpaAuditingс поддержкой типаZoneDateTime
common-spring-web
request.Utils- различныеextensionsдля работы сHttpServletRequesterrors.*- исключения и типы данных дляwebwebclient.*- классы для расширения webclient, включая логирование
common-spring-security
configurations.DefaultSecurityConfiguration- дефолтная реализация WebSecurity, определяет для каких request path надо ограничить доступ. Используетurl.interceptors.UrlExpressionRegistryInterceptorдля принятия решения.auditor.AuditorResolver- служит для преобразованияprincipalв строку, используется сJpaAuditing
common-spring-security-jpa
auditor.SecurityAuditorAware- резолвит имя пользователя для полей@CreatedBy,@LastModifiedBy. Требуется явно создать бинAuditorAware<String>в проекте.
common-spring-test
Утилиты для тестирования в среде spring-test
common-spring-test-jpa
Утилиты для тестирования репозиториев
logger
Основные компоненты логирования:
- layout
- context
- format
logger-spring
Встраивание системы логирования в spring
- autologging
- serializer
logger-spring-web
Interceptor для логирования запросов/ответов.
exception-handler-spring-web
Перехватывает ошибки сервера, определяет код ошибки и возвращает их в правильный response
exception-handler-logger-spring-web
Добавляет логирование в обработку ошибок
version-spring-web
Добавляет возможность задавать версию апи через properties без необходимости явно указывать в каждом маппинге
response-wrapper-spring-web
Добавляет обертку для успешного ответа
common-measure
Утилиты для работы с measure
common-measure-spring
Возможность задавать measure через properties
common-geo
Интерфейс для работы с гео-данными
common-geo-spatial4j-spring
Реализация интерфейса GeoCalculator с помощью библиотеки spatial4j
settings-spring-jpa
Модуль для хранения настроек
auth-core
Модуль авторизации
auth-jwt-core
Добавляет поддержку jwt-токенов (создание/хранение). Для работы этого модуля требуется прописать в пропертях:
token.access:
issuer: ${app.issuer}
timeToLive: PT15M # 15 minutes
signatureAlgorithm: RS256
keyPair:
public: |
-----BEGIN PUBLIC KEY-----
-----END PUBLIC KEY-----
private: |
-----BEGIN PRIVATE KEY-----
-----END PRIVATE KEY-----
token.refresh:
length: 20
prefix: RT-
timeToLive: PT2H # 2 hours