Есть ли какое-нибудь решение Spring boot Security для моих нужд? - PullRequest
0 голосов
/ 01 июля 2018

Я начал использовать пружину 4 месяца назад, я хочу попробовать любую идею, которая у меня есть, и теперь я хочу знать, возможно ли то, что я пытаюсь сделать, если так, есть ли какой-то конкретный механизм безопасности, который я еще не знаю из.

Я успешно внедрил защищенный API с аутентификацией и авторизацией, использующий базовую аутентификацию и ssl, этот API обрабатывает множество процессов изготовления пиццы с помощью ingerdiants.

Теперь я хочу создать еще один API, который будет обрабатывать биллинг пиццы, поэтому этот API будет использовать предыдущий.

этот принцип повторного использования привлек мое внимание, возможно ли реализовать механизм безопасности в моем втором API, который спрашивает мой первый, вошел ли мой текущий пользователь в систему?

сценарий в моей голове выглядит как

аутентификация пользователя и авторизация в API pizza

пользователь спрашивает счет api, чтобы получить счет пиццы (какой-то запрос с заголовками ...)

счет API запрашивает API пиццы, если источник запроса уже аутентифицирован

pizza api отвечает, аутентифицирован или нет

bill api хранит в памяти состояние аутентификации

По прибегая к помощи, я не уверен, является ли решение для аутентификации на основе маркеров безопасности Spring.

NB. Я использую только HTTP-запрос. Нет формы или интерфейса

1 Ответ

0 голосов
/ 01 июля 2018

Общий обзор решения будет выглядеть следующим образом:

  1. Установка сервера OAuth2 и шлюза Zuul.
  2. Служба «A» выполняет проверку подлинности на сервере аутентификации OAuth2 и вызывает конечную точку Rest службы «B» через шлюз Zuul (т. Е. Вызов прокси Zuul для службы «B») с токеном OAuth2, сохраненным в сеансе, и добавляет токен OAuth2 в HTTP » Заголовок "Авторизация" по запросу.
  3. Zuul просматривает конечную точку службы "B", распространяет токен службы "A" OAuth2, используя его фильтр, проверяя заголовки и перенаправляя вызов с тем же токеном в заголовке "Авторизация".
  4. Служба "B", которая является защищенным ресурсом, получает запрос, проверяет заголовки и проверяет полученный токен на сервере OAuth2.

Вы также можете разрешить Zuul автоматически распространять токены доступа OAuth2 и авторизовывать входящие запросы к службе OAuth2 с помощью аннотации @EnableOAuth2Sso.

...