Недавно я сам работал над этим и хотел бы сказать, что у меня есть простой ответ, но я этого не делаю.Я должен начать с того, чтобы задавать вопросы, например, является ли это веб-приложение (JSP и т. Д.) Или REST API, используемым веб-приложением, или REST API, используемое мобильным приложением и т. Д. И т. Д.
Причинаважно, чтобы вы сначала выбрали один из профилей OAuth2 и типы предоставления, и все они имеют разные требования и конфигурацию в Spring.
Кроме того, вы пытаетесь интегрироваться со сторонним поставщиком аутентификации OAuth2(например, Facebook) или ваше приложение действует как поставщик аутентификации (где происходит проверка логина и пароля) и как защищенный ресурс (куда направляются запросы веб-страницы или вызовы API)?
Так что я думаю, что лучшее, что я могу сделать, - это назначить вам домашнее задание:
(1) Прочитать о различных профилях OAuth2 и определить, какой из них лучше всего подходит для вашего приложения, и изучить всю терминологию (например, в чем секрет клиента?).
Это определенно НЕ тот случай, когда вы можете просто вырезать и вставить пример кода, не понимая его.Если у вас нет разумного понимания того, как работает OAuth2, у вас будут большие трудности.
Также: мы говорим о БЕЗОПАСНОСТИ, поэтому делать вещи без понимания, что это очень плохая идея.Если вы неосторожны, вы можете подумать, что это работает, но на самом деле вы широко открыты для атак.
(2) если вы не знакомы с Spring Framework Security, вам понадобятся базовые знания, чтобы понять, что вы делаете.
(3) Как только у вас появится идея,профиль, который вы будете использовать, используйте его в поиске Google, например, «Неявное предоставление Spring oauth2», чтобы найти пример, адаптированный для этого профиля.
Там есть несколько, и это хорошее место, чтобы начать, хотя яобнаружил, что я не смог перенести ни один из примеров непосредственно в мое приложение из-за тонких различий в их предположениях и моем применении.
Справочное руководство Spring также полезно, но не обязательно содержит все детали для всех проблем, с которыми вы можете столкнуться.Наконец, попытайтесь реализовать это в своем приложении.
Вам понадобятся хорошие инструменты для отправки запросов в ваше приложение (для этого мне нравится PostMan), чтобы вы могли просматривать данные, передаваемые туда и обратно.OAuth2 включает в себя сложную серию перенаправлений HTTP, поэтому тестирование может быть немного сложным.
Кроме того, наберитесь терпения.Я считаю себя экспертом Spring, и мне все еще потребовалось несколько дней, чтобы все работало так, как я хотел.Обратите внимание, что на самом деле есть ОЧЕНЬ МАЛЕНЬКИЙ код, который вы в конечном итоге пишете, но трудно точно получить небольшое количество кода.