Открытая инфраструктура аутентификации и авторизации на базе OIDC и OAuth 2.1, с поддержкой мультитенантности, корпоративного SSO и RBAC для SaaS- и AI-приложений.
dromara/Sa-Token
Java-фреймворк для аутентификации и авторизации: вход, права доступа, SSO, OAuth2, JWT и подпись API в Spring и других веб-стеках.
Open source альтернатива:Spring Security
Apache Shiro
- Звёзды
- 19,111
- Форки
- 2,911
- Открытые issues
- 123
- Последний коммит
- 21 день назад
Что это?
Sa-Token — Java-фреймворк для аутентификации и авторизации в веб-приложениях. Он предоставляет сессии входа, проверку ролей и прав доступа, принудительный выход из системы и управление сессиями. Применять проверки можно с помощью аннотаций или правил маршрутизации. Основной API — короткий статический вызов, например StpUtil.login(userId), за которым следует StpUtil.checkLogin().
Помимо базового входа, проект включает SSO в трёх вариантах развёртывания (в одном домене, между доменами и через разные Redis), OAuth2-сервер с поддержкой потоков authorization code, implicit, password и client credentials, а также проверки на шлюзах микросервисов Gateway, ShenYu и Zuul. Также доступны интеграция с JWT, авторизация по API Key, подпись параметров API, аутентификация Http Basic и Digest, а также блокировка учётных записей.
Пакеты интеграции охватывают Spring Boot 2 и 3/4, Spring WebFlux, Solon и JFinal; в качестве слоя хранения можно использовать Redis. Официальные демонстрационные проекты и документация доступны на китайском языке.
Ключевые возможности
- 01Сессии входа с режимами для нескольких устройств, одного устройства и взаимоисключающего входа
- 02Проверка прав доступа и ролей с помощью аннотаций или правил маршрутизации
- 03SSO в трёх режимах, а также единый выход из системы
- 04OAuth2-сервер с поддержкой четырёх стандартных типов грантов
- 05Интеграция с JWT и авторизация по API Key
- 06Подпись параметров API для защиты от подмены и повторного воспроизведения запросов
Сценарии использования
- Добавление входа и ролевого контроля доступа в бэкенд на Spring Boot
- Настройка единого входа для нескольких внутренних веб-систем
- Защита API на шлюзе микросервисов
- Выдача токенов OAuth2 из собственного Java-сервиса
Быстрый старт
- 1
Добавьте зависимость Spring Boot starter в pom.xml
- 2
Выполните вход пользователя одним статическим вызовом
StpUtil.login(10001); - 3
Защитите endpoint, чтобы к нему могли обращаться только вошедшие в систему клиенты
StpUtil.checkLogin();
Что важно знать
- README написан преимущественно на китайском языке, а полная документация размещена на sa-token.com.
- Поддерживается только Java; для других языков существуют отдельные порты сообщества со своим статусом сопровождения.
В подборках
Темы
Частые вопросы
- Что такое Sa-Token?
- Java-фреймворк для аутентификации и авторизации: вход, права доступа, SSO, OAuth2, JWT и подпись API в Spring и других веб-стеках. Sa-Token — Java-фреймворк для аутентификации и авторизации в веб-приложениях. Он предоставляет сессии входа, проверку ролей и прав доступа, принудительный выход из системы и управление сессиями. Применять проверки можно с помощью аннотаций или правил маршрутизации. Основной API — короткий статический вызов, например StpUtil.login(userId), за которым следует StpUtil.checkLogin().
- Sa-Token можно использовать бесплатно? Какая у него лицензия?
- Sa-Token распространяется с открытым исходным кодом под лицензией Apache-2.0. Перед использованием в коммерческих продуктах проверьте условия лицензии.
- Sa-Token всё ещё поддерживается?
- Активно поддерживается. Последний коммит в Sa-Token — 16 окт. 2026 г..
- Для чего можно использовать Sa-Token?
- Добавление входа и ролевого контроля доступа в бэкенд на Spring Boot Настройка единого входа для нескольких внутренних веб-систем Защита API на шлюзе микросервисов Выдача токенов OAuth2 из собственного Java-сервиса
- Как установить Sa-Token?
- Добавьте зависимость Spring Boot starter в pom.xml Выполните вход пользователя одним статическим вызовом: StpUtil.login(10001); Защитите endpoint, чтобы к нему могли обращаться только вошедшие в систему клиенты: StpUtil.checkLogin();
- Где скачать Sa-Token?
- Исходный код и инструкции по установке — на GitHub: https://github.com/dromara/Sa-Token
Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.
Похожие проекты
Сервер единого входа и поставщик идентификационных данных с открытым исходным кодом на Java, поддерживающий CAS, SAML2, OAuth2, OpenID Connect и многофакторную аутентификацию.
Лёгкий Identity Provider на Rust для единого входа через OpenID Connect, OAuth 2 и PAM с особым упором на passkey.
Фреймворк аутентификации и авторизации для TypeScript, не привязанный к веб-фреймворку, с плагинами для 2FA и мультитенантности.
Open-source провайдер идентификации для SSO с поддержкой SAML, OAuth2/OIDC, LDAP и RADIUS; можно развернуть самостоятельно — от домашней лаборатории до крупных кластеров.
Самостоятельно разворачиваемый совместимый с Keycloak провайдер идентификации на Rust: один бинарный файл, поддержка OIDC, OAuth2, DPoP и CIBA.