3 строки кода здесь не означают, что вам действительно нужно написать только 3 строки кода, но на основе службы Spring Boot OAuth2, которую я написал. Вам нужно только изменить 3 линии информации о конфигурации базы данных, чтобы получить службу Spring Boot OAuth2.
Адрес проекта https://github.com/jeesun/oauthserver
Oauthserver
Введение
Oauthserver - это полный автономный сервер OAuth, основанный на Spring Boot OAuth2. Просто создайте соответствующие таблицы данных и измените информацию об соединении базы данных, и вы можете получить сервер OAuth.
Поддерживаемые реляционные базы данных:
Реализованные функции:
Процесс использования
1. Создать таблицу
Postgresql
Пожалуйста, выполните SRC/Main/Resources/Schema-PG.SQL, чтобы завершить создание таблицы данных и импортировать тестовые данные.
Mysql
Пожалуйста, выполните SRC/Main/Resources/Schema-Mysql.SQL, чтобы завершить создание таблицы данных и импорт тестовых данных.
2. Изменить информацию об соединении с базой данных
В Application.yml настроена информация об соединении базы данных. Среди них элементы конфигурации и имя пользователя и пароль должны быть зашифрованы Jasypt и не могут быть заполнены напрямую. Ключ шифрования настроен jasypt.encryptor.password. Вам необходимо использовать инструмент utiltests в тестовом каталоге, чтобы получить зашифрованную строку.
Postgresql# postgresql Подключение Информация об подключении Драйвер-класс-имени: org.postgresql.driver url: jdbc: postgresql: //127.0.0.1: 5432/thymelte? Useunicode = true & incervencoding = utf-8 userNam ENC (ABDQ6LYOSPRYFQHCQZEMTXROZYJVJIA4) MYSQL# MYSQL Информация об подключении Информация об подключении Драйвера-класс-имени: com.mysql.jdbc.driver url: jdbc: mysql: //127.0.0.1: 3306/test? UseUnicode = true & harecrending = UTF-8 & usemess = usemess = usemess = utsemess = utsemess = utsemess = utsemess = usemess = Enc (yiyjvwtuldgn // yab3kbua ==) пароль: enc (9oaijkfggsdfahhh3oxy63rhwq+amdmij)
3. Беги
Теперь все готово. Запустите проект. Когда программа начинается успешно, это означает, что вы успешно ее настроили.
4. Тест
Я добавил тестовые данные в таблицу при создании таблицы. Значения следующих параметров запроса являются тестовыми данными и могут быть найдены в таблице данных. Пожалуйста, перейдите в таблицу данных, чтобы изменить соответствующее значение в соответствии с вашими требованиями.
В таблице таблицы oauth_client_details уже есть тестовые данные. Значения CLINTIC_ID и CLIENT_SECRET соответствуют значениям основных параметров запроса OAUTH и пароля соответственно. Столбцы access_token_vality и столбец refresh_token_vality представляют собой период достоверности Access_token и rewresh_token соответственно, в секундах. Данные тестирования 7200 и 5184000 представляют 2 часа и 2 месяца (60 дней) соответственно. Это относительно разумная настройка времени достоверности, которая может быть использована в качестве ссылки.
Все интерфейсы, связанные с токенами, требуют базовой аутентификации OAuth.
1. Получите Access_token в соответствии с именем пользователя и паролем
Post http: // localhost: 8182/oauth/token? Grant_type = password & username = jeesun & password = 1234567890c
Успешный пример:
{ "access_token": "ca582cd1-be6c-4a5a-82ec-10af7a8e06eb", "token_type": "bearer", "refresh_token": "c24a6143-97c8-4642-88b9-d5c5b902b487", "expires_in": 3824, "Scope": "Читать писать доверие"}Пример сбоя (неверное имя пользователя или пароль)
{"ошибка": "Invalid_grant", "error_description": "Плохие учетные данные"}2. Проверьте Access_token
Получить http: // localhost: 8182/oauth/check_token? Token = ca582cd1-be6c-4a5a-82EC-10AF7A8E06EB
Успешный пример
{"AUD": ["OAuth2-Resource"], "exp": 1524507296, "user_name": "jeesun", "власти": ["role_admin", "role_user"], "client_id": "clientidpassword", "Scope": ["Читать", "написать", "?Пример сбоя (Access_token истек)
{"Ошибка": "Invalid_token", "error_description": "Токен не был расположен"}3. Получить новый Access_token в соответствии с repreresh_token
Post http: // localhost: 8182/oauth/token? Grant_type = refresh_token & reworresh_token = c24a6143-97c8-4642-88b9-d5c5b902b487
Успешный пример
{"access_token": "690ecd7d-F2B7-4FAA-AC45-5B7A319478E8", "token_type": "Bearer", "Refresh_token": "C24A6143-97C8-4642-88B9-D5C5B902B487", "expires_in", "expires", "expires", "expires", "expires", "expires", "expires", "Expires", "expires", "expires", "expires": "71999", "7487". "Scope": "Читать писать доверие"}Руководство по практике приложения
После того, как приложение получает информацию о токене, оно необходимо сохранить информацию о токене и время запроса. Перед передачей access_token необходимо проверить, истекает ли истечь access_token. Чтобы уменьшить фоновое давление, проверяя, следует ли истечь срока действия Access_token в приложении. Сравнивая значение Token's KeyExpires_in (оставаться периодом достоверности), а также время запроса на локальную запись и текущее время, легко определить, истек ли срок действия Access_token. Если он истекает, вам необходимо получить новый Access_token через represh_token. Поскольку период достоверности Access_token составляет всего 2 часа, эта проверка необходима. То же самое относится и к rebresh_token.
Суммировать
Выше приведено 3 строки кода, введенные редактором для быстрого реализации службы Spring Boot OAuth2. Я надеюсь, что это будет полезно для всех. Если у вас есть какие -либо вопросы, пожалуйста, оставьте мне сообщение, и редактор ответит всем вовремя. Большое спасибо за вашу поддержку сайту wulin.com!