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

OSCHINA-MIRROR/luck-oauth2

В этом репозитории не указан файл с открытой лицензией (LICENSE). При использовании обратитесь к конкретному описанию проекта и его зависимостям в коде.
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

Проектное описание

Этот проект является примером использования SpringBoot2 и spring-security-oauth2. Реализованы следующие четыре модели авторизации.

(1) Модель кода авторизации (Authorization Code)

(2) Упрощенная модель кода авторизации (Implicit)

(3) Модель Pwd (Resource Owner Password Credentials)

(4) Модель Client (Client Credentials)

Все пользователи и клиенты в проекте имеют пароль 123456.

Установка и запуск

Импортируйте oauth2.sql

Измените данные источника в application.yml

Запустите

mvn spring-boot:run

Использование модели кода авторизации (Authorization Code)

  1. Попытка прямого доступа к информации пользователя
http://localhost:8080/user/info

Получено сообщение о необходимости аутентификации:

<oauth>
	<error_description>
		Полная аутентификация требуется для доступа к этому ресурсу
	</error_description>
	<error>
		unauthorized
	</error>
</oauth>
  1. Попытка получения кода авторизации
http://localhost:8080/oauth/authorize?client_id=client_3&response_type=code&scope=read&redirect_uri=http://localhost:8080/code?client_id=client_3

Здесь появляется HTTP Basic аутентификация, которую должен пройти пользователь для получения кода.

  1. Введите имя пользователя и пароль

username=user_1

password=123456

Имя пользователя и пароль передаются основному фильтру SpringSecurity для аутентификации.

  1. После успешной аутентификации, запрос кода авторизацииПосле успешной аутентификации oauth/authorize выполняется перенаправление 302 на указанный redirect_uri, и передаётся сгенерированный код. Обратите внимание, что перенаправление происходит на порт 8080, что указывает на другое приложение.```http http://localhost:8080/code?client_id=client_3&code=c3FbHM

В коде используется restTemplate для отправки запроса на сервер аутентификации для получения токена, используя код. В результате получается access_token.

```json
{
    "access_token":"5db93d64-2252-4349-90a3-e4d6637f90ae",
    "refresh_token":"5a67faae-38ed-4e5c-a809-c9d07c16abcb",
    "scope":"read",
    "token_type":"bearer",
    "expires_in":42494
}
  1. Использование access_token для доступа к информации пользователя
http://localhost:8080/user/info?access_token=5db93d64-2252-4349-90a3-e4d6637f90ae

Получено нормальное возвращаемое значение

{
    "password":null,
    "username":"user_1",
    "authorities":[{"authority":"ROLE_USER"}],
    "accountNonExpired":true,
    "accountNonLocked":true,
    "credentialsNonExpired":true,
    "enabled":true
}

Имплицитный режим (Implicit) инструкции по использованию

Основное отличие имплицитного режима от режима кода авторизации заключается в том, что имплицитный режим не требует проверки client_secret. Если запрос успешен, то сразу возвращается токен.

Получение токена:

http://localhost:8080/oauth/authorize?response_type=token&client_id=client_4&scope=read&redirect_uri=http://localhost:8080/param

Если запрос успешен, то происходит перенаправление на URL (токен содержится в URL):

http://localhost:8080/param#access_token=85090391-2c33-4a75-a989-116bb06b0c5a&token_type=bearer&expires_in=42962&scope=read

Режим с использованием пароля пользователя (Resource Owner Password Credentials) инструкции по использованию

Запрос на получение токена доступа:

http://localhost:8080/oauth/token?username=user_1&password=123456&grant_type=password&scope=read&client_id=client_1&client_secret=123456
```Успешный ответ:
```json
{
    "access_token":"fb1a1d03-9658-4d92-822a-d988c9f7a923",
    "token_type":"bearer",
    "expires_in":43148,
    "scope":"read"
}

Режим клиента (Client Credentials) инструкции по использованию

Запрос на получение токена доступа:

http://localhost:8080/oauth/token?grant_type=client_credentials&scope=read&client_id=client_1&client_secret=123456

Успешный ответ:

{
  "access_token": "fb1a1d03-9658-4d92-822a-d988c9f7a923",
  "token_type": "bearer",
  "expires_in": 42811,
  "scope": "read"
}

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

пример классического использования Spring Boot 2 OAuth 2 Развернуть Свернуть
Отмена

Обновления

Пока нет обновлений

Участники

все

Язык

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/luck-oauth2.git
git@api.gitlife.ru:oschina-mirror/luck-oauth2.git
oschina-mirror
luck-oauth2
luck-oauth2
master