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

OSCHINA-MIRROR/ballcat-projects-ballcat

14.03.2025 01:27
GitLife Service Account

✨ Добавлена возможность циклического повторного попытывания при неудачной попытке получения locks в DistributedLock.
✨ Аннотация @Cached по умолчанию пытается выполнить циклический повтор 3 раза; количество попыток можно изменить через свойство retryCount.

Последнее сообщение коммита: :bookmark:release 1.4.1
14.03.2025 01:27
GitLife Service Account

[1.4.0] 2023-05-31

⚠ Предупреждение

  • Фильтр TraceId был перемещён из модуля логирования в модуль ballcat-spring-boot-starter-web.
  • Имя заголовка запроса/ответа TraceId стало конфигурируемым; значение по умолчанию — X-Trace-Id; ранее было traceId. Обратите внимание на необходимость изменения кода или конфигурации (ballcat.web.trace-id-header-name).

🌟 Новые возможности

Логирование

  • :sparkles: Добавлен параметр конфигурации ballcat.log.access.filter-order для установки приоритета фильтров доступного логирования; значение по умолчанию — -1000.
  • :art: Улучшена реализация по умолчанию для обработчика доступного логирования, что позволяет пользователям переопределять методы принятия решений относительно записи содержимого запроса/ответа.
  • :recycle: Переработана связь с TraceId
    • TraceIdFilter перемещён в модуль web.
    • TraceId считается из заголовков запроса; если его нет, он создаётся.
    • Имя заголовка ответа TraceId стало конфигурируемым; значение по умолчанию — X-Trace-Id.
    • Введён интерфейс TraceIdGenerator для удобства пользователей, желающих заменить логику генерации TraceId.

OAuth2

  • :zap: Улучшена информация об ошибках при авторизации через модель Resource Owner Password Credentials.

Бизнес-модуль

  • :pencil2: Исправлена орфографическая ошибка; теперь используется "логин" вместо "логин".

🔨 Зависимости

  • :arrow_up: Обновление easyexcel до версии 3.3.2.
Последнее сообщение коммита: :bookmark:release v1.4.0
14.03.2025 01:27
GitLife Service Account

[1.3.0] 2023-05-23

⚠ Предупреждение

  • Изменены названия полей в таблице user, чтобы они были более нормализованы: sex заменено на gender, а phone — на phone_number.
  • Изменён тип ключа id во всех бизнес-таблицах с integer на long.

🌟 Новые возможности

Общие модули

Модули: ballcat-common-core, ballcat-common-model, ballcat-common-util

  • :sparkles: Добавлен класс для выполнения системных команд
  • :sparkles: Добавлена очередь ожидания, которая бесконечно ждет до тех пор, пока в очереди не будут значения
  • :sparkles: Добавлен класс для работы с пулингом потоков
  • :sparkles: Добавлен класс для работы с булевыми значениями
  • :sparkles: Добавлен класс StopWatch для расчета времени выполнения операций
  • :zap: Переключение динамического таймера на безопасную очередь потоков

OAuth2

  • :sparkles: (OAuth2) Абстрагирована модель авторизации владельца ресурса, что позволяет пользователям легко расширять способы входа
  • :bug: (OAuth2) Исправление проблемы, связанной с тем, что токен обновления не был сохранен, что делало его недействительным
  • :zap: Возможность для пользователей переопределить поведение по умолчанию для усиления ответа токена OAuth2 через реализацию интерфейса OAuth2TokenResponseEnhancer
  • :zap: Дополнительные данные пользователя при входе, такие как номер телефона, адрес электронной почты и пол### Управление доступом к данным
    Модуль: ballcat-spring-boot-starter-datascope
  • :sparkles: Поддержка возвращаемого значения метода DataPermissionUtils#executeWithDataPermissionRule### Уведомления DingTalk
    Модуль: ballcat-extend-dingtalk
  • :sparkles: Добавлен класс для нагрузочного тестирования отправки сообщений DingTalk

gRPC

Модуль: ballcat-spring-boot-starter-grpc

  • :sparkles: Добавлен модуль запуска gRPC

Бизнес-модули

  • :bug: (Система) Исправление отсутствия сортировки данных по полю sort при получении организационной структуры (#252)
  • :zap: (Система) Добавление проверки уникальности поля code роли, чтобы предотвратить возникновение ошибки базы данных при попытке создания уже существующего кода (#253)
  • :recycle: Изменение типа ключа id во всех бизнес-таблицах на Long
  • :recycle: Изменение поля sex в таблице sys_user на gender, а также изменения поля phone на phone_number

🔨 Зависимости

  • :arrow_up: spring-boot версия увеличена с 2.7.11 до 2.7.12
  • :arrow_up: Обновление плагина flatten-maven-plugin с версии 1.3.0 до 1.5.0
  • :arrow_up: Обновление плагина maven-compiler-plugin с версии 3.10.1 до 3.11.0
  • :arrow_up: Обновление плагина maven-resource-plugin с версии 3.3.0 до 3.3.1
  • :arrow_up: Обновление плагина maven-release-plugin с версии 3.0.0-M7 до 3.0.0
  • :arrow_up: Обновление плагина maven-javadoc-plugin с версии 3.4.1 до 3.5.0
  • :arrow_up: Обновление плагина maven-source-plugin с версии 3.2.1 до 3.3.0
  • :arrow_up: Обновление плагина spring-javaformat-maven-plugin с версии 0.0.38 до 0.0.39
  • :pushpin: Удаление плагина s3-transfer-manager, так как он теперь выпущен и может быть управляем с помощью s3-bom
Последнее сообщение коммита: :bookmark:release v1.3.0
14.03.2025 01:26
GitLife Service Account

[1.2.0] 2023-05-10

⚠ Предупреждение

  • Удалён модуль ballcat-auth и все связанные с ним коды spring-security-oauth2

🌟 Новые возможности

  • :art: Настройка сервера авторизации и ресурсного сервера перенаправлена в SecurityFilterChain
  • :fire: Удалён конфигурационный класс AuthenticationManagerConfiguration из сервера авторизации
  • :zap: (OAuth2) В режиме пароля используется прямое использование DaoAuthenticationProvider для аутентификации, чтобы избежать циклической зависимости между AuthenticationManager и Provider
  • :sparkles: (OSS) Добавлен новый параметр конфигурации ballcat.oss.chunked-encoding, который управляет использованием блочного кодирования при передаче данных, значение по умолчанию — false (#250)
Последнее сообщение коммита: :bookmark:release 1.2.0
14.03.2025 01:26
GitLife Service Account

[1. 1. 0] 2022-04-24

⚠ Предупреждение

  • В правах доступа DataScope несовместимо с обновлением; метод getTableNames изменён на includes.
  • В компоненте Redis конфигурация ballcat.redis.locked-time-out изменена на ballcat.redis.default-lock-timeout; значение по умолчанию установлено в 10 секунд.
  • Новая версия spring-javaformat улучшила форматирование цепочек вызовов, что приведёт к множественным изменениям после переформатирования кода.
  • По умолчанию выключены CAPTCHA проверки авторизации сервера; если требуется использовать CAPTCHA, следует установить соответствующую конфигурацию как true.
  • Конфигурация модуля ballcat-admin-core больше не включает по умолчанию настройки ресурсного сервера; требуются ручные добавления аннотации @EnableOauth2ResourceServer.
  • Ballcat-admin-core больше не передаёт зависимости авторизации сервера; пользователи должны добавить соответствующие аннотации и зависимости в своих конфигурационных файлах:
    • Для перехода на spring authorization server:
        <!-- Авторизация сервер на основе spring authorization server -->
        <dependency>
            <groupId>com.hccake</groupId>
            <artifactId>ballcat-spring-security-oauth2-authorization-server</artifactId>
        </dependency>
      
      Добавьте аннотацию @org.ballcat.springsecurity.oauth2.server.annotation.EnableOauth2AuthorizationServer
    • Либо продолжите использование spring-oauth2:
        <!-- Устаревший, авторизация сервер на основе spring oauth2 -->
        <dependency>
            <groupId>com.hccake</groupId>
            <artifactId>ballcat-auth-controller</artifactId>
            <scope>provided</scope>
        </dependency>
      ```      Добавьте аннотацию `@com.hccake.ballcat.auth.annotation.EnableOauth2AuthorizationServer`
      
  • Конечные точки входа и выхода Spring Authorization Server изменены на /oauth2/token и /oauth2/revoke, методы запроса также немного отличаются, обратите внимание на синхронизацию этих изменений в фронтенд части

✨ Возможности

Глобально

  • 🔥 Удалены версии сторонних инструментов dynamic-datasource и jasypt, которые не используются непосредственно в Ballcat
  • ✨ Версии теперь управляются модулем ballcat-dependencies, основной родительский проект больше не управляет ими повторно
  • 🚩 Обработка некоторых ошибок SonarLint

    OAuth2 Авторизация Сервер

В ballcat-spring-security-oauth2-authorization-server: ✨ Используется способ конфигурации accessTokenResponseHandler для усиления токена, что позволяет применять его ко всем типам grants В涉及时的模块:ballcat-spring-security-oauth2-authorization-server

  • :sparkles: 使用了通过accessTokenResponseHandler配置增强令牌的方法,使其适用于所有类型的授权类型(grant types)- :zap: 默认设置为禁用授权码验证服务器访问代码检查,默认值为false
  • :sparkles: 提供默认的BallcatOAuth2TokenCustomizer类,以便更容易地执行远程自我验证令牌操作
  • :sparkles: (授权服务器)不再自动配置,而是使用@EnableOauth2AuthorizationServer注解明确启用
  • :sparkles: 添加AnonymousForeverAuthenticationProvider类,用于在使用无效访问令牌时继续处理,并切换到匿名用户
  • :white_check_mark: (OAuth2)添加部分功能的单元测试以支持授权服务器
  • :sparkles: 提供OAuth2AuthorizationObjectMapperCustomizer类,以便更方便地扩展OAuth2Authorization的序列化逻辑

Касательно модулей: ballcat-spring-security-oauth2-authorization-server

  • :sparkles: Используется метод конфигурации усиленного токена через accessTokenResponseHandler, что делает его удобным для применения ко всем типам грантов (grant types) - :zap: По умолчанию значение установки проверки кода авторизации сервера доступа в значении false
  • :sparkles: Предоставляется класс BallcatOAuth2TokenCustomizer по умолчанию, чтобы было удобнее выполнять удалённое самопроверение токена
  • :sparkles: (Авторизация сервера) Больше не автоматически конфигурироваться, а вместо этого использовать аннотацию @EnableOauth2AuthorizationServer для явного включения
  • :sparkles: Добавляется класс AnonymousForeverAuthenticationProvider, который используется для продолжения процесса при использовании неверного токена доступа, но с переключением на анонимного пользователя
  • :white_check_mark: (OAuth2) Добавляются юнит тесты для части функциональности сервера авторизации
  • :sparkles: Предоставляется класс OAuth2AuthorizationObjectMapperCustomizer, чтобы было удобнее расширять логику сериализации для OAuth2Authorization### OAuth2 Сервер ресурсов:
    Модуль: ballcat-spring-security-oauth2-resource-server
  • :zap: (Resource Server) Переезд удаленного непрозрачного токена самопроверителя от реализации Nimbus к реализации Spring, а также удаление зависимости от Nimbus
  • :zap: (Resource Server) Оптимизация атрибутов, анализируемых при удаленной самопроверке, оставляя только необходимые атрибуты
  • :zap: Удаление необходимости указывать операции управления авторизацией вручную, так как они создаются по умолчанию после запуска сервера ресурсов### Модуль управления сайтом
  • :bug: Исправление ошибки условий пагинации запроса роли, которая случайно добавила код

Общие модули

Модули: ballcat-common-core, ballcat-common-model, ballcat-common-util

  • :recycle: Переработка класса BooleanEnum, теперь он управляет как булевым типом данных, так и соответствующими целочисленными значениями, использует упакованные классы, что делает удобным сравнение через equals без риска получения NullPointerException
  • :recycle: Перегрузка некоторых методов объектов R
  • :art: Уменьшение зависимостей в модуле ballcat-common-util до использования только hutool-core вместо hutool-extra
  • :sparkles: Добавление класса с инструментами работы с массивами
  • :sparkles: Добавление статического реализования HTTPS
  • :bug: Исправление проблемы некорректного вызова метода shutdown при прерывании потока типа AbstractQueueThread
  • :zap: Добавление некоторых дополнительных инструментальных классов
  • :sparkles: Добавление класса с инструментами работы со средой Spring
  • :sparkles: Добавление класса с инструментами работы с LocalDateTime
  • :zap: Поддержка записи кода в markdown
  • :sparkles: Добавление таймера для динамической задержки

Инструмент маскировки данных

Модуль: ballcat-common-desensitize

  • :zap: Изменение хранения данных в контейнере Holder с использованием статических констант на использование свойства экземпляра
  • :white_check_mark: Исправление проблемы различия результатов при выполнении тестовых случаев в различных порядках### Компонент IP
    Модуль: ballcat-spring-boot-starter-ip2region
  • :sparkles: Добавлено два метода тихого запроса в класс инструментов IP### Компонент Redis
    Модули: ballcat-common-redis, ballcat-spring-boot-starter-redis:sparkles: Добавлены несколько перегруженных методов с временем ожидания для кэш-локов, что позволяет пользователям контролировать время освобождения блокировки
  • :recycle: В распределённой блокировке используется встроенные проверки Spring вместо проверок Hutool
  • :zap: Конфигурация ballcat.redis.locked-time-out переименована в ballcat.redis.default-lock-timeout, а значение по умолчанию изменено на 10 секунд
  • :zap: Класс CacheLock перемещён в пакет lock, при этом внутреннее использование redisTemplate заменено на RedisHelper
  • :sparkles: Поддержка слушателей событий для Redis, таких как добавление, удаление, модификация и истечение сроков действия записей

    Данные доступа

    В涉及相关模块:ballcat-spring-boot-starter-datascope
  • :sparkles: Добавлен метод DataPermissionUtils#executeAndIgnoreAll, который позволяет игнорировать права доступа при выполнении метода
    • :boom: Интерфейс DataScope использует метод includes для замены оригинального метода getTableNames, чтобы поддерживать более разнообразные способы проверки необходимости контроля над текущими таблицами

      MyBatis

      涉及相关模块:ballcat-extend-mybatis-plus
  • :sparkles: Добавлена поддержка проверки отсутствия значений для Optional и Map в методе LambdaQueryWrapperX#isPresent

    Сервис NTP

    涉及相关模块:ballcat-extend-ntp
  • :sparkles: Добавлен модуль NTP, включая класс NtpCn для удобства использования внутри страны

    Уведомления DingTalk

    涉及相关模块:ballcat-extend-dingtalk

Переведём текстовые описания:

Компонент Redis

Модули: ballcat-common-redis, ballcat-spring-boot-starter-redis

  • :sparkles: Добавлены несколько перегруженных методов с временем ожидания для кэш-локов, что позволяет пользователям контролировать время освобождения блокировки
  • :recycle: В распределённой блокировке используются встроенные проверки Spring вместо проверок Hutool
  • :zap: Конфигурация ballcat.redis.locked-time-out переименована в ballcat.redis.default-lock-timeout, а значение по умолчанию изменено на 10 секунд
  • :zap: Класс CacheLock перемещён в пакет lock, при этом внутреннее использование redisTemplate заменено на RedisHelper
  • :sparkles: Поддержка слушателей событий для Redis, таких как добавление, удаление, модификация и истечение сроков действия записей

    Данные доступа

    В涉及相关模块:ballcat-spring-boot-starter-datascope
  • :sparkles: Добавлен метод DataPermissionUtils#executeAndIgnoreAll, который позволяет игнорировать права доступа при выполнении метода
    • :boom: Интерфейс DataScope использует метод includes для замены оригинального метода getTableNames, чтобы поддерживать более разнообразные способы проверки необходимости контроля над текущими таблицами

      MyBatis

      涉及相关模块:ballcat-extend-mybatis-plus
  • :sparkles: Добавлена поддержка проверки отсутствия значений для Optional и Map в методе LambdaQueryWrapperX#isPresent

    Сервис NTP

    涉及相关模块:ballcat-extend-ntp
  • :sparkles: Добавлен модуль NTP, включая класс NtpCn для удобства использования внутри страны

    Уведомления DingTalk

    涉及相关模块:ballcat-extend-dingtalk

Переведём текст на китайском:

Redis组件

模块:ballcat-common-redis, ballcat-spring-boot-starter-redis

  • :sparkles: 添加了几个带有等待时间的缓存锁重载方法,允许用户控制锁定释放的时间
  • :recycle: 在分布式锁定中使用Spring内置检查代替Hutool检查
  • :zap: 配置项ballcat.redis.locked-time-out更改为ballcat.redis.default-lock-timeout,默认值变更为10秒
  • :zap: 将类CacheLock移动到包lock中,并将内部使用的redisTemplate替换为RedisHelper
  • :sparkles: 支持Redis事件监听器,例如添加、删除、修改和过期记录

    数据权限

    涉及相关模块:ballcat-spring-boot-starter-datascope
  • :sparkles: 添加了一个名为DataPermissionUtils#executeAndIgnoreAll的方法,该方法在执行时可以忽略数据权限
    • :boom: 接口DataScope使用方法includes来替代原始方法getTableNames,以支持更多样化的当前表控制需求验证方式

      MyBatis扩展

      涉及相关模块:ballcat-extend-mybatis-plus
  • :sparkles: 在方法LambdaQueryWrapperX#isPresent中增加了对OptionalMap空值的检查支持

    NTP服务

    涉及相关模块:ballcat-extend-ntp
  • :sparkles: 增加了一个NTP模块,包括一个方便国内使用的NtpCn

    钉钉通知

    涉及相关模块:ballcat-extend-dingtalk- :zap: Инструмент отправки сообщений через DingTalk перенаправлен на использование okhttp
  • :bug: Исправлено неправильное переносимое форматирование текста Markdown
  • :zap: Добавлена поддержка многолинейных цитат в Markdown
  • :white_check_mark: Добавлены тестовые случаи для отправки сообщений через DingTalk

🔨 Зависимости

  • :arrow_up: commons-net с версии 3.8.0 до 3.9.0
  • :arrow_up: springdoc-openapi с версии 1.6.13 до 1.7.0
  • :arrow_up: spring-boot с версии 2.7.6 до 2.7.11
  • :arrow_up: easyexcel с версии 3.1.2 до 3.1.5
  • :arrow_up: hutool с версии 5.8.10 до 5.8.16
  • :arrow_up: mybatis-plus с версии 3.5.2 до 3.5.3.1
  • :arrow_up: spring-authorization-server с версии 0.4.0 до 0.4.2
  • :arrow_up: spring-javaformat с версии 0.0.35 до 0.0.38
  • :arrow_up: xxl-job с версии 2.3.1 до 2.4.0
  • :arrow_up: lombok с версии 1.18.24 до 1.18.26
  • :arrow_up: ip2region с версии 2.6.6 до 2.7.0
Последнее сообщение коммита: :sparkles:提供了 OAuth2AuthorizationObjectMapperCustomizer 类,方便用户扩展 O...
14.03.2025 01:24
GitLife Service Account

[1. 0. 3] 2022-12-05

⚠️ Предупреждение

В этой версии был удален конфигурационный фильтр Maven Resource в POM файле ballcat, что может привести к невозможности правильной замены шаблонов @profiles.active@ в файле application.yml. Убедитесь, что вы добавили соответствующую конфигурацию Maven Resource Filter в свой POM.xml файл.
Дополнительная информация доступна здесь: Конфигурация Maven Placeholders

✨ Новые возможности

Глобальные изменения

  • 🔥 Удалено конфигурирование фильтра Maven Resource в POM файле ballcat, теперь это должно быть контролируемо проектом
  • 🆘 Исправлены предупреждения JavaDoc
  • 📝 Указан конкретный номер версии плагина maven-surefire-plugin и установлен кодировка выполнения UTF-8
  • 🔄 Отменена конфигурация пропуска тестовых классов при компиляции Maven
  • ✔️ Исправлены проблемы с выполнением команды maven test, когда тесты не выполняются или выполняются с ошибками

Компонент управления задачами

Включает модуль: ballcat-spring-boot-starter-job

  • 🐞 Исправлена проблема автоматической регистрации имени Spring приложения из-за наличия по умолчанию имени xxl-job executor

Компонент IP

Включает модуль: ballcat-spring-boot-starter-ip2region

  • 🐞 Исправлена проблема повреждения файла данных ip2region при активации фильтра ресурсов

Компонент Redis

Включает модули: ballcat-common-redis, ballcat-spring-boot-starter-redis

  • 🔌 Указан порядок автоматического конфигурирования Redis Ballcat перед конфигурацией Spring Boot - 🐞 Исправлена проблема неправильного установления времени жизни ключа в методе RedisHelper#setExAt
  • 🐞 Исправлены проблемы сериализации и ошибки Lua скрипта в методе RedisHelper#incrByAndExpire

Компонент управления данными

Включает модуль: ballcat-spring-boot-starter-datascope

  • ✨ Поддержка запросов JOIN для нескольких таблиц
  • 🐞 Исправлена проблема отсутствия совпадений текущего запроса после исключения части DataScope
  • 🐞 Исправлена проблема NullPointerException при рекурсивном вызове контроля доступа внутри DataScope

Компонент Excel

Включает модуль: ballcat-spring-boot-starter-easyexcel

  • ✨ Поддержка динамического количества листов при экспорте Excel
  • ✨ Поддержка указания режима заполнения fill при экспорте Excel
  • 🔌 Добавлена проверка использования атрибута fill вместе с атрибутом template в аннотации @ResponseExcel
  • ✨ Добавлен компонент EmptyHeadGenerator для игнорирования генерации заголовков Excel
  • 🎨 Замена устаревших методов экспорта Excel: bug: Устранена проблема с заменой пробелов в имени файла экспорта Excel на символ '+'
  • :white_check_mark: Добавлены тестовые методы для базовых функций Excel
  • :white_check_mark: Добавлены тестовые случаи для экспорта без записи заголовочной информации

    🔨 Внешние зависимости

    • :arrow_up: hutool с версии 5.8.9 до версии 5.8.10
  • :arrow_up: ip2region с версии 2.6.5 до версии 2.6.6
  • :arrow_up: s3 с версии 2.18.6 до версии 2.18.20
  • :arrow_up: spring-boot с версии 2.7.5 до версии 2.7.6- :pushpin: spring-authorization-server с версии 0.4.0-M2 до версии 0.4.0
Последнее сообщение коммита: :bookmark:release ballcat v1.0.3
14.03.2025 01:23
GitLife Service Account

[1.0.1] 2022-11-16

⚠ Предупреждение

Этот выпуск убрал аннотации @EnableAccessLog и @EnableOperationLog. Теперь доступные и операционные логи включены по умолчанию; пользователи могут отключить их с помощью конфигураций ballcat.log.access.enabled=false и ballcat.log.operation.enabled=false.

🌟 Возможности

  • :sparkles: (Лог) Используется конфигурация вместо аннотации для управления включением и выключением логов
  • :bug: Устранена проблема с удалением контекста MDC в потоках-потомках в MdcTaskDecorator
  • :bug: Устранена проблема с генерацией SQL условий со значением null при создании вложенного условия в LambdaAliasWrapper
  • :fire: Удалён AbstractIdTreeNode, чтобы предотвратить возможные проблемы из-за неправильного использования пользователями
Последнее сообщение коммита: :bookmark:release ballcat v1.0.1
14.03.2025 01:23
GitLife Service Account

[1. 0. 0] 2022-11-08

⚠ Предупреждение

  • ballcat-auth связанные компоненты отмечены как устаревшие; сервер авторизации будет переключён на spring-authorization-server в следующей версии
  • Процесс OAuth2 Authorization Code теперь использует бесштатный вход; требуется изменение в фронтенд-страницах (обратите внимание на обновление фронтенд-страниц)
  • OssClient устарел; рекомендуется использовать компонент OssTemplate
  • Удалено свойство конфигурации domain; заменено на endpoint. Свойство endpoint совместимо с конечной точкой и пользовательским доменом
  • Конфигурация endpoint должна содержать протокол, например: http://s3-cn-east-1.qiniucs.com
  • Удалено свойство конфигурации rootPath (заменено на object-key-prefix)
  • Добавлен префикс ballcat для конфигураций xxl-job
  • Конфигурация логгера теперь по умолчанию интегрирована в ballcat-admin-core; при использовании стандартной реализации нет необходимости добавлять конфигурационные классы
  • ballcat-common-security компонент удален; некоторые пакеты переименованы
  • Код активации был перенаправлен на tianai-captcha; если вы хотите продолжить использование anji-captcha, обратите внимание, что ни передняя, ни задняя части кода активации не должны быть изменены

🌟 Новые возможности

Глобальная оптимизация

  • :rotating_light: исправлены предупреждения javadoc
  • :green_heart: удалена конфигурация git для автоматического переноса строк, чтобы избежать повреждения jpg файлов - :pushpin: унифицирован переход с javax на jakarta
  • :zap: оптимизирована конфигурация зависимостей Maven:
    • Удалена зависимость spring-boot-configuration-processor
    • Очищены ненужные конфигурации, созданные автоматически IDE
    • Отформатирован файл pom.xml. Зависимости и модули расположены в алфавитном порядке

    Бизнес-модуль

  • :bug: (Уведомление) исправлено получение удаленных объявлений
  • :bug: (Система) исправлено возникновение NullPointerException при одновременном удалении роли несколькими администраторами
  • :zap: (Система) добавлено валидирование при создании или изменении словаря
  • :sparkles: (Система) возможность создания меню без указания ID, вместо этого используется автоинкремент (#gh-220)
  • :zap: (Система) при изменении записи словаря можно не указывать состояние

    Ballcat-admin-core

:sparkles: Встроен дефолтный конфигурационный класс логгера, который внедряет различные процессоры входа в зависимости от используемого сервера авторизации
### Компонент Redis
Включает модули: ballcat-common-redis и ballcat-spring-boot-starter-redis

  • :sparkles: аннотация @CacheDel была расширена до повторяемой аннотации
  • :sparkles: методы RedisHelper с временем жизни теперь поддерживают единицы измерения времени
  • ✨ аннотация @CacheDel добавила атрибут allEntries, позволяющий удалять все ключи одного пространства имён

    Модификации MyBatis-Plus

  • Прикрепленные модули: ballcat-extend-mybatis-plus - :sparkles: В компоненте WrapperX добавлена методика lambdaUpdate

    Компонент OpenAPI

Прикрепленные модули: ballcat-extend-openapi

  • :bug: Устранение проблемы запуска в среде WebFlux

    Компонент ballcat-common-core

  • :sparkles: Добавление компонента контекста и его интеграция с Spring
  • :art: Применение компонента контекста к существующим вершинным классам потока
  • :sparkles: В компоненте SpringUtils добавлен метод publishEvent для публикации событий
  • :sparkles: Поддержка аннотации validate с использованием {} вместо дефолтного сообщения

    Компонент ballcat-common-model

  • :art: В SystemResultCode добавлены некоторые часто используемые коды состояния
  • :art: Изменение атрибута extendObj в SelectData на attributes

    Компонент ballcat-common-util

  • :art: Изменение определения TreeNode, использование key и parentKey как связывающих свойств между родителем и дочерними узлами, что делает его более универсальным
  • :sparkles: Добавлен метод TreeUtils#forEachDFS для глубинной первичной обработки узлов дерева

    Компонент IP

  • :sparkles: Добавлен модуль ballcat-spring-boot-starter-ip2region для удобной быстрой интеграции с Ip2region
    ### Компонент планировщика задач
    Прикрепленные модули: ballcat-spring-boot-starter-job
  • :boom: Изменение конфигурации xxl-job с добавлением префикса ballcat
  • :recycle: Оптимизация автоматической конфигурации xxl-job
  • :fire: Удаление аннотации @EnableXxlJob. Теперь пользователи могут отключить использование xxl-job путем установки значения ballcat.xxl.job.enabled равным false ### Компонент idempotence
    Прикрепленные модули: ballcat-common-idempotent, ballcat-spring-boot-starter-idempotent
  • :sparkles: Добавлен стартовый компонент idempotence
  • :recycle: Абстракция генератора ключей idempotence
  • :recycle: Оптимизация структуры пакета плагина idempotence
  • :truck: Переименование интерфейса KeyGenerator на IdempotentKeyGenerator для предотвращения конфликта названий при регистрации

    Компонент OSS

Прикрепленные модули: ballcat-spring-boot-starter-oss

  • :boom: Переработка операций OSS с частичной совместимостью с старыми API и полной поддержкой многих базовых операций S3
  • :boom: Удаление свойства конфигурации domain (можно использовать свойство endpoint)
  • :boom: Конфигурация свойства endpoint требует указания протокола
  • :boom: Удаление свойства конфигурации rootPath (можно использовать свойство object-key-prefix)
  • :sparkles: Добавление свойства конфигурации enabled для управления активностью OSS
  • :sparkles: Добавлен компонент OssTemplate для замены исходного компонента OssClient
  • :sparkles: Добавлен компонент ObjectWithGlobalKeyPrefixOssTemplate для поддержки глобального префикса ключа, настроенного в OssClient

    Безопасность

  • :recycle: Разделение модуля ballcat-common-security
  • :sparkles: Добавление модуля ballcat-security-core, валидатор CAPTCHA перемещён сюда для удобства повторного использования
  • :fire: Удаление устаревших путей игнорирования аутентификации, использование конфигурации ballcat.security.oauth2.resourceserver.ignore-urls
  • :zap: AuthenticationManager регистрируется сервером авторизации ### ballcat-auth
  • :zap: Проверка расшифровки пароля пропущена при отсутствии режима паролей
  • :sparkles: Использование области доступа для контроля клиента относительно пропуска CAPTCHA и расшифровки пароля
  • :art: Валидация входа клиента проверяет client id и client secret
  • :fire: Удаление устаревшего метода проверки тестового клиента
  • :recycle: Настройки формы входа перенесены из сервера ресурсов в сервер авторизации
  • :art: Ограничение области сканирования пакета auth
  • :sparkles: Для процесса авторизации используется STATELESS (без состояния) режим входа

Модуль Excel

Включает компонент: ballcat-spring-boot-starter-excel

  • :sparkles: Добавлены методы установки для DefaultAnalysisEventListener, чтобы указывать количество строк заголовков при импорте Excel
  • :sparkles: Добавлена возможность указания количества строк заголовков в аннотации @RequestExcel
  • :adhesive_bandage: Применено временное решение через переопределение класса для исправления проблемы с невыполнением изменения заголовков в слушателе при импорте Excel

Модуль Web

Включает модуль: ballcat-spring-boot-starter-web

  • :rewind: Чтобы обеспечить совместимость с некоторыми клиентскими программами, восстановлено использование application/json;charset=UTF-8 для content-type
  • :bulb: Исправлено неправильное описание в классе PageParamArgumentResolverSupport
  • :sparkles: Поддержка отправки уведомлений об ошибках нескольким каналам, старый способ конфигурации устарел - :fire: Удалён бесполезный файл конфигурации additional-spring-configuration-metadata.json
  • :zap: Оптимизация момента внедрения ApplicationContext в SpringUtils
    ### Модуль логирования
    Включает модули: ballcat-common-log, ballcat-spring-boot-starter-log
  • :art: Увеличение порядка фильтра access log для вызова до цепочки фильтров безопасности
  • :zap: Вынесение LoginLogUtils
  • :sparkles: Встроенная конфигурация логирования с автоматическим внедрением различных обработчиков входа в зависимости от используемого сервера авторизации
  • :fire: Удаление бесполезного кода из LogUtils## 🔨 Зависимости
  • :pushpin: Использование springdoc-openapi bom для управления зависимостями
  • Изменения:
    • [Изменение] Использование зависимостей Jakarta вместо javax
    • [Обновление] awssdk с версии 2.18.2 до 2.18.6
    • [Обновление] easyexcel с версии 3.1.1 до 3.1.2
    • [Обновление] flatten-maven-plugin с версии 1.2 до 1.3.0
    • [Обновление] hutool с версии 5.8.5 до 5.8.9
    • [Обновление] jsoup с версии 1.15.2 до 1.15.3
    • [Обновление] swagger с версии 1.5.21 до 1.6.8
    • [Обновление] swagger-v3 с версии 2.2.0 до 2.2.4
    • [Обновление] spring-boot с версии 2.7.3 до 2.7.5
    • [Обновление] spring-security-oauth2 с версии 2.3.8.RELEASE до 2.5.2.RELEASE
    • [Обновление] springdoc-openapi с версии 1.6.11 до 1.6.12
  • Плагины:
    • [Обновление] spring-javaformat с версии 0.0.34 до 0.0.35
    • [Обновление] maven-compiler-plugin с версии 3.8.0 до 3.10.1
    • [Обновление] maven-source-plugin с версии 3.1.0 до 3.2.1
    • [Обновление] maven-javadoc-plugin с версии 3.1.1 до 3.4.1
    • [Обновление] nexus-staging-maven-plugin с версии 1.6.8 до 1.6.13
Последнее сообщение коммита: :bookmark:release v1.0.0
14.03.2025 01:21
GitLife Service Account

[0.9.0] 2022-08-31

⭐ Новые возможности

Общие

Инвовлвенные модули: ballcat-common-core ballcat-common-util

  • :bug: Исправлено неверное использование модификатора в методе getPollTimeoutMs класса AbstractQueueThread, что позволяет его переопределить в производных классах
  • 🌟 Добавлены системные утилиты, улучшены несколько методов утилит
  • 🌟 Добавлен класс AbstractTimer для работы с таймерами
  • :bug: Исправлено удаление временной папки, которое приводило к ошибкам при работе с файлами

WebSocket

Инвовлвенные модули: ballcat-common-websocket ballcat-spring-boot-starter-websocket

  • ⚡ Уменьшена вероятность возникновения исключения NullPointerException при получении ключа сессии
  • 🌟 Добавлены коды для использования RocketMQ как системы распределения сообщений

Redis

Инвовлвенные модули: ballcat-common-redis ballcat-spring-boot-starter-redis

  • ⚡ Оптимизировано использование объекта RedisScript в классе CacheLock для предотвращения генерации различных значений SHA
  • ♻ Переименованы методы класса RedisHelper в соответствии с названиями команд Redis
  • 🌟 Добавлены методы для работы со структурой данных Stream и другими типами данных в классе RedisHelper

OpenAPI документация

Инвовлвенные модули: ballcat-extend-openapi- 🐛 Исправлено ограничение на добавление нескольких параметров сортировки при использовании пагинации в Swagger UI

  • 🐛 Исправлено регулярное выражение для проверки параметра сортировки, чтобы обеспечить корректную проверку
  • 🐛 Исправлено отображение параметров пагинации при запуске приложения через JAR-файл### Журналирование

Инвовлвенные модули: ballcat-common-log ballcat-log-biz ballcat-spring-boot-starter-log

  • :zap: Атрибут типа аннотации операционного журнала изменён с перечисления на целое число для удобства расширения пользователями
  • :zap: Ведение журнала попыток входа теперь осуществляется только при неудачной аутентификации по имени пользователя и пароля

MyBatis

Инвовлвенные модули: ballcat-extend-mybatis-plus

  • 🐛 Исправлено исключение при получении значения поля, реализующего интерфейс IEnum, при использовании EnumNameTypeHandler в качестве дефолтного обработчика типов

🔨 Зависимости

  • 【Обновление】spring-boot с версии 2.7.1 до 2.7.3
  • 【Обновление】jsoup с версии 1.14.3 до 1.15.2
  • 【Обновление】hutool с версии 5.8.3 до 5.8.5
  • 【Обновление】springdoc-openapi с версии 1.6.9 до 1.6.11
  • 【Обновление】spring-javaformat с версии 0.0.31 до 0.0.34
  • 【Обновление】mapstruct с версии 1.4.2.Final до 1.5.2.Final
Последнее сообщение коммита: :bookmark:release v0.9.0
14.03.2025 01:20
GitLife Service Account

[0. 8. 0] 2022-07-12

:warning: Предупреждение

  • Изменено имя параметра пагинации по умолчанию на page. Внимание пользователям фронтенда: требуется соответствующее обновление. Также можно использовать конфигурацию ballcat.pageable.page-parameter-name, чтобы переопределить имя параметра на current.
  • Удалены конфигурации и зависимости для каптчи Anji-Captcha. Пользователи могут добавить их вручную в соответствии со своими требованиями. Примеры кода доступны в репозиториях ballcat-admin-sample и ballcat-boot.
  • Конфигурация суперпользователя ballcat.upms перемещена в ballcat.system
  • Настройка верхнего предела страницы ballcat.web.max-page-size теперь называется ballcat.pageable.max-page-size

⭐ Новые возможности

Глобальные изменения

  • 🎨 При использовании аннотации @SneakyThrows теперь можно указывать типы исключений явно.
  • 🌟 Поддержка глобального стартапера для Spring Boot 2. 7.x, который использует метод автоматической конфигурации через AutoConfiguration.imports.
    (По-прежнему поддерживаются более ранние версии Spring Boot с помощью автоматического регистрации через spring.factories)

Изменения связанные с SMS ballcat-spring-boot-starter-sms

  • 🌟 Интеграция сервиса отправки SMS от Alibaba.
  • 🌟 Обновлен SDK Tencent Cloud для решения проблем конфликтов зависимостей с Alibaba. ### Изменения связанные с загрузкой файлов ballcat-spring-boot-starter-file
  • 🎨 Для загрузки файлов через FTP используется библиотека Hutool.
  • 🐞 Исправлена ошибка возвращаемого пути при локальной загрузке файла.
  • ♻ Переработана структура модуля File. ### Изменения связанные с международной локализацией ballcat-i18n
  • 🐞 Исправлена ошибка в поле remark в resultMap объекта I18nData.
  • 🌟 Аннотация @I18nField теперь поддерживает использование SPEL выражений для значения поля code.
  • 🌟 Добавлена аннотация @I18nIgnore, которая может применяться к методам контроллеров для игнорирования процесса локализации.

Изменения связанные с правами доступа ballcat-spring-boot-starter-datascope

  • ⚡ Оптимизация способа создания объекта DataPermissionRule, добавлен конструктор с параметрами и поддержка цепочечного вызова.

  • ⚡ Вынесены методы программного управления правами доступа из экземпляров DataPermissionHandler в статический метод DataPermissionUtils, что делает их проще в использовании.

  • 🐞 Исправлена ошибка возникшая при выполнении SQL запроса внутри DataScope, связанная с пустым значением счетчика совпадений.

  • ✅ Добавлен тест для таблицы с псевдонимом с использованием jsqlparse ### Изменения связанные с паролями ballcat-system ballcat-auth ballcat-common-security

  • 🌟 При создании нового пользователя системы или изменении его пароля используется PasswordEncoder для шифрования паролей, что позволяет легко менять алгоритмы шифрования.

  • 🌟 Теперь регулярное выражение для проверки паролей системы можно настроить через конфигурацию YAML: ballcat.system.password-rule

  • 🔥 Удалены методы encode и matches в PasswordUtils, чтобы предотвратить неправильное использование пользователями.

  • 🎨 Метод PasswordUtils#createDelegatingPasswordEncoder сделан публичным для удобства внешнего вызова.

  • 🎨 Улучшено сообщение об ошибке при смене пароля.### Разделение запросов ballcat-spring-boot-starter-web ballcat-common-model

  • 🌟 Поддержка параметров сортировки с использованием конечной скобки []. Например, sort и sort[] могут использоваться как параметры сортировки.

  • 🎨 По умолчанию текущий номер страницы переименован с current на page. В будущих версиях свойство current будет удалено из PageParam.

  • 🌟 Поддержка пользовательских имен параметров пагинации:

    ballcat:
      pageable:
        page-parameter-name: page # если вы не хотите менять фронтенд, можно установить значение current
        size-parameter-name: size
        sort-parameter-name: sort # также будут автоматически поддерживаться параметры с конечной скобкой [], например sort[]
        max-page-size: 100
    

Документация OpenAPI ballcat-extend-openapi

  • 🌟 Добавлена поддержка динамических параметров пагинации, которая автоматически переключается между параметрами пагинации в документах (при использовании ballcat-spring-boot-starter-web).

Redis

  • 🌟 Усилены аннотации кэширования/обновления кэша: добавлены единицы времени.

Расширение MyBatis-Plus

  • 🐞 Исправлено отсутствие псевдонима при вложенной конструкции условий в LambdaAliasQueryWrapperX.
  • ✅ Добавлены тестовые случаи для LambdaAliasQueryX.
  • 🎨 Класс OtherTableColumnAliasFunction переименован в ColumnFunction.
  • 🌟 Добавлен метод ColumnFunction::create, который упрощает создание полей таблиц при выполнении соединений.### Валидаторы
  • Добавлены пользовательские аннотации для проверки значений.
    • @OneOfStrings проверяет, является ли значение одним из указанных строк.
    • @OneOfInts проверяет, является ли значение одним из указанных целых чисел.
    • @OneOfClasses проверяет, является ли значение одним из указанных типов классов.
    • @ValueOfEnum проверяет, удовлетворяет ли значение указанному значению Enum.

Защита от SQL-инъекций ballcat-spring-boot-starter-xss

  • 🐞 Исправлены проблемы возникновения исключений при декодировании JSON.

Управление системой

  • 🌟 Добавлена проверка данных при создании и редактировании пользователей.
  • 🐞 Исправлено ограничение возможности создания пользователя в заблокированном состоянии.### OAuth2 ballcat-auth-biz
  • 🐞 Исправлено отсутствие использования пользовательского обработчика исключений при входе клиента через параметр from.
  • 🌟 Абстрагирована логика проверки капчи для удобства изменения базового механизма капчи.
    ## 🔨 Зависимости
  - 【Удалено】Удалена зависимость от spring-boot-admin
 - 【Изменено】Отменено принудительное удаление Tomcat в spring-boot-starter-web; выбор контейнера передается пользователю
 - 【Обновлено】spring-boot с версии 2.6.6 до 2.7.1
 - 【Обновлено】kafka с версии 2.5.0 до 2.6.3
 - 【Обновлено】dynamic-datasource-spring-boot-starter с версии 3.5.0 до 3.5.1
 - 【Обновлено】hutool с версии 5.7.22 до 5.8.3
 - 【Обновлено】fastjson с версии 1.2.79 до 1.2.80
 - 【Обновлено】springdoc-openapi с версии 1.6.7 до 1.6.9
 - 【Обновлено】mybatis с версии 3.5.9 до 3.5.10
 - 【Обновлено】mybatis-plus с версии 3.5.1 до 3.5.2
 - 【Обновлено】xxl-job с версии 2.3.0 до 2.3.1
 - 【Обновлено】easyexcel с версии 3.0.5 до 3.1.1```
Последнее сообщение коммита: :bookmark:release v0.8.0
14.03.2025 01:19
GitLife Service Account

Изменения связанные с OpenAPI ballcat-extend-openapi

  • 🐞 Конфликт версий swagger-api, зависимости управления до 2.2.0, чтобы совпадало с springdoc-openapi
  • 🔥 Отказ от конфигурации ballcat.openapi.security-schemes, теперь использует ballcat.openapi.components.security-schemes
  • 🔥 Отказ от конфигурации ballcat.openapi.global-security-requirements, теперь используется свойство ballcat.openapi.security вместо него
  • 🩹 Внесены исправления для некоторых атрибутов, где в IDE нет подсказок

Изменения связанные с Web ballcat-spring-boot-starter-web

  • 🐞 Исправлено проблемное поведение сериализации значений null для аннотации @JsonInclude
  • ✅ Добавлена тестовая проверка для сериализатора значений null Jackson
  • 🌟 Добавлен вывод информации RequestURI в сообщении уведомления об ошибке
  • 🌟 Добавлен вывод URI запроса в глобальном логе ошибок
Последнее сообщение коммита: :bookmark:Release v0.7.1
14.03.2025 01:19
GitLife Service Account

:warning: Предупреждение

  • В этой версии были добавлены новые поля в таблицу логов операций. Перед обновлением обязательно выполните соответствующий инкрементный SQL-запрос.
  • Теперь для игнорируемых URL-адресов доступных логов требуется указывать только путь внутри сервлета. После обновления обратите внимание на корректность конфигурации, чтобы избежать потери функциональности.
  • Конфигурационные файлы OpenAPI были изменены. Теперь атрибуты базовой информации документов имеют префикс "info".
  • В компоненте WebSocket имя класса AbstractJsonWebSocketMessage было изменено на JsonWebSocketMessage. При возникновении ошибки импорта класса во время обновления, убедитесь, что вы также изменили название класса.
  • Из-за обновления компонента spring-javaformat теперь при работе с JDK8 необходимо создать файл .springjavaformatconfig в корневой директории проекта. Содержимое файла должно быть следующим:
    java-baseline=8
    ```## ⭐ Новые возможности
    

Изменения связанные с логами ballcat-common-log spring-boot-starter-log

  • 🌟 Для игнорируемых URL-адресов доступных логов теперь требуется указывать только путь внутри сервлета.
  • 🌟 Усиление аннотаций логирования действий: пользователи могут указать, следует ли записывать параметры и значения возврата текущего метода действия.
  • 🐞 При выбрасывании исключения BusinessException потеряется запись traceId в логах.
  • 🐞 Изменение незменяемого параметра parameterMap в CustomAccessLogHandler#getParams.
  • 🐞 Исправление проблемы записи логов при загрузке изображений в объявлениях.### Международная локализация ballcat-common-i18n
  • 🌟 Улучшение деталей: даже при неудачной локализации ответ будет отправлен корректно.

Сервис Web ballcat-spring-boot-starter-web

  • 🌟 Активационный интерцептор теперь активируется только при наличии актюатора и адреса интерцептирования совпадает с конфигурацией базового пути актюатора.
  • 🐞 Исправление проблемы запуска при использовании только ballcat-spring-boot-starter-web и дефолтной конфигурации.

Адаптация параметров пагинации ballcat-common-core

  • 🌟 Поддержка проверки валидности параметров пагинации PageParam.
  • 🌟 Ограничение количества страниц пагинации может быть динамически изменено через конфигурацию ballcat.web.page-size-limit, значение по умолчанию равно 100.
  • 🌟 Добавление проверки параметров пагинации PageParam для всех пагинационных интерфейсов.
  • 🌟 Поддержка сортировки с использованием псевдонимов таблиц.
  • 🌟 Добавление параметра sort для пагинационного запроса, который позволяет установить правила сортировки в формате property(,asc|desc).

Инструменты кэширования ballcat-spring-boot-starter-redis

  • 🌟 Добавление аннотации @ConditionalOnMissBean для beans Redis для удобства замены пользователями.
  • 🌟 Добавление основных операций ZSET в инструмент RedisHelper.
  • 🐞 Исправление ошибки запуска при отсутствии конфигурации свойства ballcat.redis.key-prefix.### Управление системой ballcat-system
  • 🌟 Поддержка выборочного поиска организационной структуры с использованием регулярных выражений. - 🌟 Добавлена возможность запроса списка организационной структуры
  • 🌟 Выбор меню и фильтрация организационной структуры передана на фронтенд
  • 🎨 Разделение модулей system и websocket (разделение notify не завершено, будет выполнено в процессе последующего рефакторинга)

Изменения связанные с инструментом Tree ballcat-common-util

  • 🌟 В TreeUtils добавлен метод обрезки дерева pruneTree
  • 🌟 Адаптация генериков в TreeUtils
  • 🎨 Переопределён метод getChildren в SimpleTreeNode, что позволяет удобно получать данные нужного типа

Компонент управления правами доступа ballcat-spring-boot-starter-datascope

  • 🐞 Исправление проблемы очистки deque в DataPermissionAnnotationHolder, теперь также выполняется удаление
  • 🌟 Добавлена поддержка программного управления правами доступа, которое можно использовать вместе с аннотацией @DataPermission

Приоритет правил управления правами доступа от высшего к низшему:

  1. Программное правило
  2. Аннотация правила текущего метода
  3. Аннотация правила текущего класса
  4. Правила управления правами доступа используемые вызывающим объектом
  5. Глобальное правило по умолчанию

Компонент долгоживущих соединений ballcat-websocket

  • 🌟 Улучшение условий проверки UserSessionKeyGenerator, чтобы сделать его более удобным для замены- 🌟 Изменение роли хранителя сессии WebSocket с WebSocketSessionHolder на WebSocketSessionStore
  • 🌟 Теперь при повторном использовании одного и того же ключа сессии WS сессия больше не перезаписывается автоматически, что делает возможным отправку сообщений всем клиентам
  • 🌟 Добавлен абстрактный класс AbstractMessageDistributor, который содержит методы по умолчанию из MessageDistributor
  • 🌟 Добавлена поддержка свойства allowed-origin-patterns для конфигурирования CORS
  • 🌟 Добавлена поддержка SockJS
  • 🎨 Улучшение регистрации RedisMessageListener, чтобы предотвратить ошибки регистрации beans из-за случайного сканирования
  • 🎨 Улучшение структуры конфигурационного класса компонента ballcat-spring-boot-starter-websocket
  • 🎨 Упрощение уровня кода, удаление интерфейса JsonWebSocketMessage, переименование абстрактного класса AbstractJsonWebSocketMessage в JsonWebSocketMessage

Компонент idempotence ballcat-idempotence

  • 🌟 Улучшение аннотации контроля idempotence: теперь можно указывать единицы измерения сообщений и сообщения об ошибках при блокировке idempotence
  • 🌟 Компонент idempotence теперь позволяет пользователям контролировать удаление метки idempotence при возникновении ошибок, что делает возможным управление idempotence для методов, которые не могут быть повторно запущены
  • ✅ Добавлены тестовые случаи для компонента idempotence

Интерфейсы документации ballcat-extend-openapi

  • 🌟 Добавлены некоторые конфигурации OpenAPI
  • 🌟 Конфигурация информации перемещена в префикс info## Другие исправления
  • 🐞 Улучшение уровня ProviderManager, чтобы решить проблему двойного исключения при неверном токене аутентификации
  • 🐞 Исправление проблемы закрытия временного потока при загрузке файла в OSS; при массовой загрузке файлов возникают ошибки
  • 🐞 Ошибка в разделении пагинации объявлений
  • 🐞 Устранение проблемы сборки при использовании JDK11

    🔨 Обновление зависимостей

    • 【Обновлено】 spring-boot с версии 2.6.2 до 2.6.6, и дальнейшее использование официальных зависимостей для управления зависимостями
    • 【Обновлено】 spring-boot-admin с версии 2.6.0 до 2.6.6
    • 【Обновлено】 spring-javaformat с версии 0.0.29 до 0.0.31
    • 【Обновлено】 hutool с версии 5.7.12 до 5.7.19
    • 【Обновлено】 mybatis-plus с версии 3.5.0 до 3.5.1
    • 【Обновлено】 springdoc-openapi с версии 1.6.4 до 1.6.7
    • 【Обновлено】 software.amazon.awssdk с версии 2.16.61 до 2.17.154
Последнее сообщение коммита: :bookmark:Release v0.7.0
14.03.2025 01:18
GitLife Service Account

⚠ Предупреждение

  • Переезд аннотаций Swagger2 в OpenAPI3. Из-за использования springdoc-openapi и некоторых проблем в текущей версии проекта, если зависимость springdoc-openapi-ui не была добавлена в службу или конфигурация springdoc.api-docs.enabled=false не была установлена, это может привести к ошибкам при запуске.
  • Удалены версионные зависимости knife4j-ui. Для OpenAPI3 используйте версию 3.x knife4j.
  • Компоненты springfox не поддерживают версию Spring Boot 2.6.2. Если вы хотите продолжить использовать springfox, добавьте конфигурацию spring.mvc.pathmatch.matching-strategy=ant-path-matcher и зарегистрируйте компонент SpringfoxHandlerProviderBeanPostProcessor в контейнере Spring.
  • По умолчанию Spring Boot 2.6.x запрещает циклические зависимости. При наличии таких зависимостей запуск будет невозможен. В этом случае следует либо исправить код, либо добавить конфигурацию spring.main.allow-circular-references=true (не рекомендуется).## ⭐ Новые возможности
  • [Изменено] Изменён способ регистрации модуля JsonDesensitizeModule для поддержки деинициализации Jackson.
  • [Изменено] Изменён способ регистрации модуля CustomJavaTimeModule для предотвращения его замены модулем JavaTimeModule JSR310.
  • [Удалено] Удалён устаревший модуль IPageArgumentResolver для декомпозиции модулей starter-web и mybatis-plus.
  • [Удалено] Удалены устаревшие компоненты Lov.
  • [Изменено] Переезд аннотаций Swagger2 в OpenAPI3.
  • [Изменено] Обновление базовой поддержки документации с springfox на springdoc-openapi.
  • [Добавлено] Добавлен @ParameterObject для классов запросов GET, чтобы правильно отображать параметры запроса в документах.
  • [Изменено] Поскольку springfox давно не обновляется, удалён компонент ballcat-spring-boot-starter-swagger на основе этого фреймворка.
  • [Добавлено] Добавлен модуль расширения ballcat-extend-openapi, основанный на springdoc-openapi с некоторыми расширениями. Подробнее см. документацию.
  • [Удалено] Удалены версионные зависимости knife4j-ui.
  • [Изменено] Оптимизация кода для явного указания параметров или типов возвращаемых значений.
  • [Изменено] Обработка предупреждений SonarLint.
  • [Удалено] Удалены ненужные части pluginManagement в pom dependencies.
  • [Изменено] Управление зависимостью hutool изменено на использование официального bom hutool.
  • [Добавлено] Добавлен модуль расширения ballcat-extend-tesseract для вызова библиотек OCR.
  • [Изменено] Изменения логики работы со словарями.
    • Удалены атрибуты чтения/записи словарей. - Добавлены атрибуты активации/деактивации элементов словаря. - [Изменение] Удаление словарей теперь запрещено при наличии элементов словаря (ранее автоматически удалялись)
  • [Изменение] ballcat-spring-boot-starter-oss Обновлены методы и переменные, связанные с OSS. Путь был заменен на ключ. Атрибут rootPath был отмечен как устаревший и изменен на objectKeyPrefix в соответствии со стандартами OSS.
  • [Добавление] ballcat-spring-boot-starter-oss Добавлен метод прямой загрузки файла.
  • [Изменение] Оптимизация метода клонирования потока в StreamUtils. Теперь используется FileOutputStream, чтобы гарантировать, что большие файлы не вызывают ошибку недостатка памяти.
  • [Изменение] Класс OssDisabledException теперь расширяет RuntimeException вместо Exception.
  • [Изменение] ballcat-common-idempotent Мелкие изменения в компоненте idempotence.
    • Атрибут stringRedisTemplate в RedisIdempotentKeyStore теперь передается через конструктор.
    • Отмена аннотации @Component в аспекте IdempotentAspect, чтобы избежать случайной регистрации.## 🐞 Исправления ошибок
  • [Исправление] Временная проблема удаления элементов словаря была исправлена; теперь изменения правильно отправляются на фронтенд.
  • [Исправление] Проблема создания директорий в методе FileUtils#updateTmpDir была исправлена.

🔨 Обновления зависимостей

  • [Обновление] spring-boot с версии 2.5.6 до 2.6.2
  • [Обновление] lombok с версии 1.18.20 до 1.18.22
  • [Обновление] spring-javaformat с версии 0.0.28 до 0.0.29
  • [Обновление] hutool с версии 5.7.12 до 5.7.19
  • [Обновление] dynamic-datasource с версии 3.4.1 до 3.5.0
  • [Обновление] jasypt с версии 3.0.3 до 3.0.4
  • [Обновление] jsoup с версии 1.14.2 до 1.14.3
  • [Обновление] mybatis-plus с версии 3.4.3.4 до 3.5.0
  • [Обновление] mybatis с версии 3.5.7 до 3.5.9
  • [Обновление] jsqlparser с версии 4.2 до 4.3
  • [Обновление] fastjson с версии 1.2.76 до 1.2.79
  • [Обновление] spring-boot-admin с версии 2.5.4 до 2.6.0
Последнее сообщение коммита: :memo:readme 更新
14.03.2025 01:17
GitLife Service Account

:warning: Предупреждение

  • Из-за единой модификации бизнес-сущностей произошли изменения в структуре соответствующих таблиц
  • После перехода метода массового внесения данных с saveBatchSomeColumn на saveBatch, обратите внимание на конфигурацию jdbcUrl проекта, требуется добавление условия rewriteBatchedStatements=true, иначе скорость вставки будет снижена## ⭐ Новые возможности
  • 【Изменено】 В бизнес-сущностях добавлен родительский класс LogicDeletedBaseEntity, обеспечивающий единое поддержание логического удаления
  • 【Изменено】 В бизнес-сущностях единая модификация атрибутов типа "описание", "замечания" и других на "remarks"
  • 【Изменено】 В бизнес-коде методы массового внесения данных были заменены с saveBatchSomeColumn на saveBatch. По результатам тестирования, при активации транзакций массового внесения данных и добавлении rewriteBatchedStatements=true в jdbcUrl, циклические операции вставки через insert into оказываются быстрее, чем использование синтаксиса insert into values.
  • 【Добавлено】 Компонент ballcat-spring-boot-starter-file, поддерживающий локальные и FTP-загрузки файлов
  • 【Добавлено】 Метод TreeUtils#treeToList(), который позволяет преобразовать дерево в список
  • 【Добавлено】 Метод ImageUtils#mixResolveClone(), который использует быстрое решение, если это не работает, переходит к обычному решению
  • 【Добавлено】 Класс инструментов FileUtils
  • 【Добавлено】 Базовые классы сущностей BaseEntity и LogicDeletedBaseEntity
  • 【Добавлено】 Поддержка создания правил генерации префиксов ключей Redis
  • 【Добавлено】 Класс DistributeLock, позволяющий удобнее использовать распределённые блокировки
  • 【Добавлено】 Абстрактный класс слушателя событий сообщений AbstractMessageEventListener, предоставляющий дефолтное решение сериализации сообщений
  • 【Добавлено】 Метод ExtendService#saveBatch() - 【Добавлено】 Поддержка многопоточной отправки одного и того же WebSocket-сеанса
  • 【Изменено】 Условия аннотации автоматической заполненности в предоставленном по умолчанию конфигурационном классе MybatisPlusConfig для удобства замены на свой MetaObjectHandler
  • 【Добавлено】 Поддержка вывода traceId в логах асинхронных потоков с использованием конфигурации @Async
  • 【Добавлено】 Метод TokenGrantBuilder#getAuthenticationManager(), который позволяет легко получить AuthenticationManager при наследовании от подкласса (#133)
  • 【Изменено】 FileService: OssClient больше не является обязательной зависимостью; когда нет конфигурации Oss, используется по умолчанию FileClient, работающий либо с локальным хранением, либо согласно конфигурации
  • 【Изменено】 Тип поля WITHOUT_MAPPED_STATEMENT_ID_MAP класса MappedStatementIdsWithoutDataScope изменён на ConcurrentHashMap
  • 【Изменено】 По умолчанию TraceIdFilter теперь возвращает параметр traceId в заголовках ответа для удобства диагностики проблем
  • 【Изменено】 Класс UserInfoCoordinator был изменён на интерфейс и предоставляет дефолтную реализацию DefaultUserInfoCoordinatorImpl## 🐞 Исправленные ошибки
  • [Исправлено] Проблема с правильной находкой аннотации @DataPermission при использовании JDK динамического прокси или метода моста в данных о правах доступа
  • [Исправлено] Проблема с работой данных о правах доступа при правом и внутреннем соединении SQL
  • [Исправлено] Проблема с анализом SQL, заключённого в скобки, который не работает корректно
  • [Исправлено] Проблема с отключением Swagger при использовании только ballcat.swagger.enabled=false
  • [Исправлено] Проблема с кросс-доменной проверкой, препятствующей возможности тестирования провайдера документации через агрегатор
  • [Исправлено] Проблема с обработкой обычного текстового сообщения в WebSockets, теперь используется PlainTextMessageHandler
  • [Исправлено] Проблема с созданием дерева при запросе организации по имени

🔨 Обновление зависимостей

  • [Обновлено] spring-boot с версии 2.5.4 до 2.5.6
  • [Обновлено] spring-boot-admin с версии 2.5.1 до 2.5.4
Последнее сообщение коммита: :bookmark:v0.5.0 版本 release
14.03.2025 01:16
GitLife Service Account

Предупреждение

  • Обновление библиотеки mybatis-plus, связанное с некоторыми методами подсчета, возвращаемое значение которых было изменено на тип Long; требуется соответствующее изменение в проектах, где это используется.
  • По умолчанию при входе в систему свойство токена изменилось: ранее использовалось поле roles, теперь используется roleCodes; обратите внимание на соответствующее обновление в клиентской части.
  • WebSocket использует local для распределения по умолчанию, что может привести к ошибкам отправки данных в режиме кластера; если требуется развертывание в кластере, пожалуйста, измените соответствующие конфигурации.
  • Интерфейсы WebSocket MessageSender были удалены: этот интерфейс был объединён с MessageDistributor; обратите внимание на изменения типа зависимости.## Добавлено
  • Новая возможность: ballcat-auth сервер авторизации с улучшенной настройкой:
  • Разрешение пользователям использовать собственный AccessTokenConverter, чтобы изменить возвращаемое значение конечной точки самопроверки /check_token.
  • Возможность пользователю настроить процессоры авторизации или добавить новые; пользователи могут реализовать это через переопределение TokenGrantBuilder.
  • Возможность добавления пользовательского AuthenticationProvider для удобства работы с пользовательским grant_type.
  • Введение абстрактного интерфейса OAuth2ClientConfigurer для возможности замены способа конфигурирования ClientDetailsService.
  • Отвязка от модуля ballcat-system, что позволяет легко повторно использовать ballcat-auth для быстрого создания сервера авторизации, например, для разделения входа пользователей C-end и backend.
  • Уточнение ответа конечной точки проверки токена согласно спецификациям OAuth2: когда токен некорректен, возвращается Yöntem 200 со значением { active: false }, а не 400.
  • Новая возможность: поддержка нескольких OnExpression в запросах SQL для многотабличных запросов после обновления jsqlparse до версии 4.2.
  • Новая возможность: добавление свойства scopeResource для ролей для поддержки настраиваемых прав доступа.
  • Новая возможность: добавление поддержки типа Instant в сериализацию времени Jackson по умолчанию, чтобы предотвратить возникновение ошибки InvalidDefinitionException при работе с типом java.time.Instant.

Исправлено:

  • "Yöntem 200" должно быть "200".
  • "Yöntem" удалено.## Изменено
    • Переработка: поддержка парсинга токенов, созданных для клиента, с соответствующими данными пользователя ClientPrincipal.
    • Переработка: изменение ответа конечной точки самопроверки на основе протокола OAuth2, теперь scope возвращает строки, разделённые пробелами.
    • Переработка: изменения в правах доступа.
      • Исправление проблемы: исправление ситуации, когда права доступа становятся недействительными при использовании символов экранирования (\) в имени таблицы.
      • Оптимизация производительности: для запросов без необходимости контроля прав доступа, один раз выполненный парсинг записывается, последующий парсинг не выполняется.
      • Изменение структуры: для предотвращения случайного использования и устранения двусмысленностей, класс DataScopeHolder был преобразован в приватный внутренний класс DataScopeSqlProcessor.
    • Рефакторинг: изменение типа значения value в объекте SelectData на тип Object, а также изменение типов полей selected и disabled на тип Boolean.
    • Рефакторинг: обновление слоёв сервисов и мапперов, связанных с системными пользователями, для использования коллекций при получении параметров, что упрощает использование.
    • Рефакторинг: разделение константного класса TokenAttributeNameConstants.
    • Рефакторинг: изменение свойств класса UserInfoDTO. Добавлено новое свойство menus для хранения объектов меню, которое принадлежит пользователю.Поле roles было переименовано и теперь используется для хранения объектов ролей, а старое поле roles стало называться roleCodes и используется для хранения набора значений ролей.
  • рефакторинг: Для устранения двусмысленностей, имя поля roles в ответах от конечной точки входа и конечной точки самоидентификации было заменено на roleCodes.
  • исправление ошибки: Устранение проблемы запуска при использовании библиотеки ballcat-spring-boot-starter-web, если зависимость безопасности не была добавлена.
  • рефакторинг: Оптимизация событий системы.
    1. При изменении организации пользователя публикуется событие UserOrganizationChangeEvent.
    2. Событие создания нового пользователя было переименовано с UserChangeEvent на UserCreatedEvent.
    3. Классы событий системы были перемещены из модуля biz в модуль model.
  • рефакторинг: В библиотеке ballcat-common-websocket удален интерфейс MessageSender, который был объединен с распределителем сообщений MessageDistributor.
  • рефакторинг: Библиотека ballcat-spring-boot-starter-websocket была разделена от Redis, и по умолчанию используется локальный распределитель сообщений на основе оперативной памяти. Это можно изменить через свойство ballcat.websocket.message-distributor на redis или custom, где значение custom позволяет пользователю самостоятельно настроить распределитель сообщений (MessageDistributor) (например, использовать MQ для повышения надежности).
ballcat:
    websocket:
```        # По умолчанию установлено значение 'local', поддерживающее работу только одного узла; 'redis' использует модель подписки/публикации для работы в кластере
         message-distributor: redis # local | redis | custom
  • рефакторинг: В библиотеке ballcat-spring-boot-starter-redis изменён способ регистрации события AddMessageEventListenerToContainer, чтобы предотвратить проблемы с порядком загрузки, вызванные настройками сканирования пакетов пользователем.
  • рефакторинг: При привязке пользователя к организации запрещается удаление этой организации.## Зависимости
  • Обновление spring-boot с версии 2.4.8 до 2.5.5
  • Обновление lombok с версии 1.18.16 до 1.18.20
  • Обновление mybatis-plus с версии 3.4.4 до 3.4.3.4
  • Обновление mybatis с версии 3.5.6 до 3.5.7
  • Обновление jsqlparser с версии 4.0 до 4.2
  • Обновление плагина flatten-maven-plugin с версии 1.2.5 до 1.2.7
  • Обновление spring-javaformat с версии 0.0.27 до 0.0.28
  • Обновление hutool с версии 5.7.3 до 5.7.12
  • Обновление spring-boot-admin с версии 2.4.2 до 2.5.1
  • Обновление dynamic-datasource-spring-boot-starter с версии 3.3.2 до 3.4.1
Последнее сообщение коммита: :bookmark:release v0.4.0
14.03.2025 01:15
GitLife Service Account

Предупреждение

  • Изменены названия нескольких модулей; обратите внимание на необходимость повторного импорта соответствующих путей.
  • Произведен рефакторинг международной локализации; изменения значительны, обратите внимание на необходимость корректировки соответствующего кода. Документация по международной локализации доступна по адресу: http://www.ballcat.cn/guide/feature/i18n.html
  • В связи с удалением пакета ballcat-common-conf потребуется вручную добавить конфигурацию MyBatis Plus для неконтрольных сервисов, таких как плагины пагинации и методы массового внесения данных.### Добавлено
    • Функционал по умолчанию для международной локализации, добавлены модули ballcat-i18n для предоставления способов реализации бизнес-локализации по умолчанию.
  • Обработка сообщений об ошибках при неверном имени пользователя или пароля с использованием международной локализации.
  • Поддержка интерфейса MessageEventListener в модуле ballcat-common-redis для работы с PUB/SUB, все реализации этого интерфейса будут автоматически зарегистрированы в модуле ballcat-spring-boot-starter-redis.
  • В модуле ballcat-common-redis добавлен атрибут multiDel в аннотацию @CacheDel, что позволяет удобно выполнять массовое удаление кэша.
  • Добавлен модуль ballcat-common-idempotent для обеспечения операций idempotence.
  • Поддержка использования {} вместо defaultMessage для сообщений проверки через hibernate-validation.
  • В модуле ballcat-common-core добавлены интерфейсы CreateGroup и UpdateGroup по умолчанию для удобства групповой проверки.
  • Добавлен модуль ballcat-spring-boot-starter-web, основанный на spring-boot-starter-web, использует Undertow в качестве встроенного сервера по умолчанию, а также усиливает конфигурацию web-приложений из ballcat-common-conf, такие как глобальное управление исключениями, защита от SQL-инъекций, настройки Jackson по умолчанию и т. д. - Для поддержки условий запроса с соединением таблиц добавлен интерфейс OtherTableColumnAliasFunction в модуль ballcat-extend-mybatis-plus, что позволяет использовать LambdaAliasQueryWrapperX для создания условий запроса к связанным таблицам.
  • Поддержка локализации заголовков Excel при экспорте в модуле ballcat-spring-boot-starter-easyexcel, использование {} для замещения местоположений, пример использования можно найти в I18nData.
  • Поддержка разделения пакетов запятой для сканирования пути basePackage в конфигурациях модуля ballcat-spring-boot-starter-swagger.
  • Расширение поддержки аннотации @DataPermission для использования вне мапперов в модуле ballcat-spring-boot-starter-datascope, а также поддержка различных окружений @DataPermission при вложенных вызовах методов.
  • Рефакторинг: конфигурация автоматического заполнения MyBatis-Plus, плагин пагинации и метод массового внесения данных из ballcat-common-conf перемещены в ballcat-admin-core.
  • Рефакторинг: SpELUtils переименован в SpelUtils и перемещён в модуль ballcat-common-util.
  • Рефакторинг: ApplicationContextHolder переименован в SpringUtils и перемещён в модуль ballcat-common-util.
  • Рефакторинг: из ballcat-spring-boot-starter-log выделен модуль ballcat-common-log, что решает проблему необходимости использования стартера в модуле log-biz; некоторые пакеты были переименованы.
  • Рефакторинг: из ballcat-spring-boot-starter-redis выделен модуль ballcat-common-redis. - рефакторинг: переработана функциональность международной локализации i18n; создан новый модуль ballcat-common-i18n, а старый модуль ballcat-extend-i18n удален
  • улучшение: удалена прямая зависимость от spring-security-core в ballcat-spring-boot-starter-web
  • исправление: устранена проблема с запросами несуществующих системных конфигураций, которая приводила к ошибкам при попытках получить эти конфигурации после их создания
  • улучшение: тип возвращаемого значения для запроса меню изменен на SysMenuPageVO
  • исправление: исправлена проблема с неправильным значением content-type при экспорте Excel
  • исправление: повышена приоритетность аспекта кэширования, чтобы он выполнялся после завершения транзакции, что предотвращает проблемы с конкурирующими операциями и обеспечивает правильность данных кэша
  • улучшение: добавлена поддержка удаления иконок в меню
  • исправление: исправлена проблема с некорректным обновлением родительских ID для подменю при изменении ID основного меню
  • улучшение: оптимизация логирования действий: теперь информация о параметрах метода собирается до выполнения метода, что предотвращает изменения параметров во время выполнения
  • улучшение: расширение конфигурации Spring Boot по умолчанию для TaskExecutor в ballcat-admin-core: стратегия отказа изменена с выбрасывания исключения на использование текущего потока - рефакторинг: модель TreeNode перемещена в пакет common-util для снижения зависимости этого пакета
  • рефакторинг: из ballcat-spring-boot-starter-xss выделена роль XssCleaner для управления очисткой XSS-текста, что позволяет пользователям легко настраивать её поведение
  • улучшение: при неверном входе, система теперь возвращает детальные сообщения об ошибке вместо общего сообщения "неверное имя пользователя или пароль"
  • исправление: исправлена ошибка в названии пакета websocket в ballcat-system-biz### Удалено
  • Удалён ballcat-common-conf, связанный код перемещён в ballcat-spring-boot-starter-web и ballcat-admin-core

Зависимости

  • Обновлено jsoup с версии 1.13.1 до 1.14.2
Последнее сообщение коммита: :bookmark:release v0.3.0
14.03.2025 01:14
GitLife Service Account

Добавлено

  • feat: Добавлена библиотека ballcat-extend-redis-module, предоставляющая возможность работы с фильтрами Блума
  • feat: При создании нового пользователя теперь можно сразу привязывать его к роли, не требуя двух отдельных действий
  • feat: Поддержка изменения ID меню, что позволяет сохранять правила ID при перемещении меню
  • feat: Добавлена библиотека ballcat-common-security
    • Добавлен класс CustomRedisTokenStore для очистки кэша в случае сериализационной ошибки. Это позволяет избежать необходимости ручного удаления всех данных кэширования при каждом изменении объекта UserDetails
    • Перемещение PasswordUtils из common-util в common-security, а также использование PasswordEncoder с DelegatingPasswordEncoder для удобства будущего изменения алгоритма шифрования паролей
    • Перемещение обработки исключений OAuth из ballcat-oauth-controller в common-security
    • Добавление конфигураций и базовых компонентов ResourceServer на основе Spring Security 5.x
    • Переименование SysUserDetails в User, а свойства из sysUser теперь находятся непосредственно в классе User, при этом удаляются свойства userResource и userAttributes, а добавляется свойство attributes.### Изменено
  • рефакторинг: Передача прав доступа dataScopes между методами через ThreadLocal
  • рефакторинг: Разделение модуля admin-websocket для удобства исключения ненужных компонентов
  • рефакторинг: Вынесение кода, связанного с WebSocket, из модуля ballcat-spring-boot-starter-websocket в новый модуль ballcat-common-websocket, а сам стартовый модуль содержит только автоматическую конфигурацию
  • улучшение: Логическое удаление меню теперь использует функцию автозаполнения MyBatis Plus, а также выводит детали при использовании существующего ID меню
  • улучшение: Удаление некоторых ненужных зависимостей из общих модулей
  • рефакторинг: Перемещение основного уровня OAuth2 ResourceServer из зависимости spring-security-oauth2 в Spring Security 5.x
  • улучшение: Теперь в common-conf по умолчанию регистрируется десериализатор Jackson desensitizeCustomizer, который может быть переопределен пользователем путем регистрации bean типа Jackson2ObjectMapperBuilderCustomizer с именем "desensitizeCustomizer"
  • рефакторинг: Отвязывание ballcat-spring-boot-starter-log от бизнес-процессов, передача и хранение операционных логов полностью возложены на проект бизнеса, где в модуле ballcat-log-biz представлены стандартные классы операционных логов и стандартная реализация OperationLogHandler
  • рефакторинг: В связи с выделением common-security, модуль ballcat-oauth теперь содержит только авторизацию и был переименован в ballcat-auth, а также были сделаны некоторые структурные изменения для удобства последующего самостоятельного развертывания сервера авторизации.
    - Настройка ballcat.upms.````markdown loginCaptchaEnabled была изменена на ballcat.security.oauth2.authorizationserver.

Изменено

  • Настройка loginCaptchaEnabled, чтобы контролировать включение/отключение капчи при входе
  • Конфигурация ballcat.security.ignoreUrls теперь изменена на ballcat.security.oauth2.resourceserver.ignoreUrls, чтобы контролировать игнорирование аутентификации для некоторых URL в сервере ресурсов
  • Настройка ballcat.security.iframeDeny теперь изменена на ballcat.security.oauth2.resourceserver.iframeDeny, чтобы активировать разрешение встраивания iframe в сервере ресурсов
  • Добавлена аннотация @EnableOauth2AuthorizationServer, чтобы активировать сервер авторизации (по умолчанию активирована в модуле ballcat-admin-core)
- Удалён ballcat-oauth-model, связанный код перемещён в ballcat-common-security

### Взаимозависимости
- Обновление spring-boot с версии 2.4.3 до 2.4.8
- Knife4j с версии 2.0.8 до 2.0.9
- Hutool с версии 5.5.8 до 5.7.3
- Fastjson с версии 1.2.75 до 1.2.76
- Dynamic-datasource с версии 3.3.1 до 3.3.2
- Spring-boot-admin с версии 2.4.1 до 2.4.2
- Anji-captcha с версии 1.2.8 до 1.2.9
Последнее сообщение коммита: :bookmark:release v0.2.0
1
https://api.gitlife.ru/oschina-mirror/ballcat-projects-ballcat.git
git@api.gitlife.ru:oschina-mirror/ballcat-projects-ballcat.git
oschina-mirror
ballcat-projects-ballcat
ballcat-projects-ballcat