Служба REST с использованием Spring Аутентификация безопасности и Firebase

Существует ли простой способ интеграции Firebase Authentication с помощью Spring Security (для службы REST)?

Из того, что я прочитал, мне, вероятно, понадобится использовать токен JWT (полученный через Firebase), использовать его для аутентификации службы Spring и, наконец, проверить токен в службе через Firebase. Но я не могу найти (простую) документацию по использованию JWT с Spring Security.

Я также хотел бы предоставить конечную точку /auth/login, которая использует Basic Auth, а не JWT, чтобы я мог получить токен JWT через Firebase, используя учетные данные электронной почты и пароля. Но это означало бы включение Basic Auth на одной конечной точке службы и JWT Auth на всех остальных. Не уверен, что это возможно.

Ответ 1

Короткий ответ: нет.

Длинный ответ: вы должны создать свой собственный JWT, независимо от Firebase. Когда вы получаете JWT от Firebase, проверьте его целостность. Затем создайте свои собственные, основываясь на данных в токене. Тогда вам нужно только адаптировать его к различным поставщикам OAuth. Таким образом, вы можете избежать круговых поездок в firebase по каждому запросу.

Для аутентификации пользователя по каждому запросу (без сохранения состояния) вы добавляете фильтр с наивысшим приоритетом. Из запроса http, который вы фильтруете, получите JWT и проверьте его целостность. Если все хорошо, установите аутентификацию в SecurityContextHolder.