|
|
||
|---|---|---|
| captcha | ||
| common | ||
| common-geo | ||
| common-geo-spatial4j-spring | ||
| common-measure | ||
| common-measure-spring | ||
| common-messaging | ||
| 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-security-web | ||
| exception-handler-spring-web | ||
| gradle/wrapper | ||
| logger | ||
| logger-spring | ||
| logger-spring-web | ||
| response-wrapper-spring-web | ||
| s3-storage | ||
| security-authorization-server-core | ||
| security-authorization-server-jwt-core | ||
| security-authorization-server-oauth2-metadata | ||
| security-jwt-common | ||
| security-resource-server-custom-jwt-configuration | ||
| security-resource-server-default-jwt-configuration | ||
| security-resource-server-test-jwt-configuration | ||
| server-info-spring-web | ||
| settings-spring-jpa | ||
| validation-spring | ||
| 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.
Подключается с помощью аннотации @EnableSpringExceptionHandler
exception-handler-logger-spring-web
Добавляет логирование в обработку ошибок.
Подключается с помощью аннотации @EnableSpringExceptionHandlerLogger до подключения основного модуля.
validation-spring
Добавляет аннотации для валидации запросов.
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
Модуль для хранения настроек
security-authorization-server-core
Модуль авторизации
security-authorization-server-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
Генерация ключей:
openssl genrsa -out private.pem 4096
openssl rsa -in private.pem -pubout -out public.pem
openssl pkcs8 -topk8 -inform PEM -in private.pem -out private_key.pem -nocrypt
cat private_key.pem
cat public.pem
security-authorization-server-oauth2-metadata
OAuth2 metadata support.
security-jwt-common
JWT related utilities.
security-resource-server-default-configuration
Default configuration for the Spring OAuth2 resource server with JWT auth.
security-resource-server-custom-configuration
Custom configuration for the Spring OAuth2 resource server with JWT auth. Requires the following properties:
token.access:
issuer: ${app.issuer}
signatureAlgorithm: RS256
keyPair:
public: |
-----BEGIN PUBLIC KEY-----
-----END PUBLIC KEY-----
security-resource-server-test-configuration
Disables Spring OAuth2 resource server for testing.
s3-storage
Amazon S3 support.
server-info-spring-web
Allow include headers with information about the server in responses
To get started you need:
- Add annotation to configuration
- Add property to yml/properties file:
server.info:
buildVersion: ${buildVersion}