SmartMVC
Все документы
Руководство
Возможности
Аутентификация
Пример
Справочник
  • 简体中文
  • English
  • 日本語
  • Русский
GitHub
Все документы
Руководство
Возможности
Аутентификация
Пример
Справочник
  • 简体中文
  • English
  • 日本語
  • Русский
GitHub
  • Полный пример

    • Пример входа и проверки доступа

Пример входа и проверки доступа

Модуль spring-boot-starter-smart-mvc-example содержит полный пример аутентификации в памяти. Ему не нужны внешние сервисы: пример последовательно показывает, как подключить SmartMVC и какие ответы получать на каждом этапе.

В нём используются фиксированные учётные записи, открытые демонстрационные пароли и постоянные токены. Такой подход предназначен только для локального изучения и автоматических тестов.

Запуск Example

Сначала установите все модули из корня репозитория:

mvn install -DskipTests

Затем запустите Example:

mvn -f spring-boot-starter-smart-mvc-example/pom.xml spring-boot:run

Демонстрационные учётные записи

Имя пользователяПарольТокенРоль
adminadmin123example-admin-tokenadmin
useruser123example-user-tokenuser

1. Вызовите анонимный метод API

curl http://localhost:8080/auth/public

Метод помечен @Anonymous. В данных ответа поле authenticated равно false: для анонимного запроса данные текущего пользователя не создаются.

2. Войдите и получите токен

curl -X POST http://localhost:8080/auth/login \
  -H 'Content-Type: application/json' \
  -d '{"username":"admin","password":"admin123"}'

Поле data содержит:

{
  "tokenType": "Bearer",
  "token": "example-admin-token"
}

3. Получите данные текущего пользователя

curl http://localhost:8080/auth/me \
  -H 'Authorization: Bearer example-admin-token'

Возвращённый AuthPrincipal содержит:

  • ID пользователя и объект ExampleUser;
  • роль admin;
  • именованные разрешения, например admin:read;
  • разрешения на запросы, например GET:/auth/**;
  • дополнительный атрибут authenticationType.

Без токена или с недействительным токеном метод возвращает HTTP 401.

4. Проверьте административный метод API

curl http://localhost:8080/auth/admin \
  -H 'Authorization: Bearer example-admin-token'

Для этого метода одновременно проверяются четыре условия:

  1. пользователь успешно прошёл аутентификацию;
  2. у него есть роль admin;
  3. у него есть именованное разрешение admin:read;
  4. у него есть разрешение GET:/auth/**, соответствующее текущему запросу.

Выполните тот же запрос с токеном обычного пользователя:

curl http://localhost:8080/auth/admin \
  -H 'Authorization: Bearer example-user-token'

Ответ получит статус HTTP 403 и код ошибки FORBIDDEN.

За что отвечают классы примера

КлассНазначение
ExampleAuthControllerМетоды входа, анонимного доступа, текущего пользователя и администратора
ExampleAuthenticationServiceХранение учётных записей в памяти, проверка пароля и поиск по токену
ExampleAuthInterceptorПодключение сервиса токенов к SmartMVC
ExampleUserТипизированное чтение пользователя через CurrentAuth

Интеграционный тест ExampleAuthenticationIntegrationTest проверяет анонимный доступ, вход, запрос без аутентификации, недостаточные права и успешный доступ администратора.

Изменить эту страницу на GitHub
Последнее обновление: 07.08.2026, 08:33
Назад
Собственная аутентификация и текущий пользователь
Далее
Справочник настроек