Как защитить остальные API с помощью ключей API без Spring Security

У меня есть rest api MyRestApi.war, который представляет собой проект spring boot и spring mvc.

Есть еще один веб-проект A.war, который является обычным весенним проектом. Его внешний интерфейс, такой как javascript, и внутренний, такой как java code, нуждаются звонить MyRestApi. Пользователь должен войти в систему A.war, чтобы использовать его.

Мне не нужно контролировать разрешения для MyRestApi, только пользователи, вошедшие в A.war, могут получить доступ к MyRestApi через внешний и внутренний интерфейс A.war

Есть некоторые решения, например. API key, jwt, OAuth.

Я хочу попробовать эти три подхода, а затем выбрать один.

Но когда я ищу что-то вроде api key authentication, все они используют spring security для этого.

Итак, как я могу защитить MyRestApi с помощью ключа API без Spring Security.

Пожалуйста, обратитесь к этому вопросу: Как защитить REST API с помощью Spring Boot и Spring Security?

srr7 02.08.2020 12:06
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
1
2 994
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы можете написать свой собственный фильтр, если не хотите использовать пружинную безопасность. Этот фильтр будет перехватывать все URL-адреса. В этом фильтре вы можете проверить ключ API в заголовках и подтвердить. Если это подтверждено, пусть цепочка продолжится, иначе пользователь/приложение выдаст какую-то значимую ошибку.

api key устанавливается в заголовке запроса, например. имя заголовка — API-Key, а значение заголовка — 123, затем в фильтре получите это значение заголовка и проверьте по этому имени заголовка, верно? Если это так, то в чем разница между api key и http basic auth? потому что http basic auth также устанавливает что-то в заголовке, просто устанавливает имя пользователя и пароль.

frank 12.04.2019 03:53

Вышеупомянутое решение заключалось в защите API без Spring Security. Оба ваших приложения развернуты на одном компьютере? Если да, то вы можете настроить переднее веб-приложение для прослушивания порта 433/80. И бэкэнд-приложение на другом порту. Кроме того, вы можете настроить http-коннектор для этого внутреннего приложения для прослушивания определенного адреса только как «localhost». Проверьте эту ссылку - serverfault.com/questions/218666/…

Rahul Vedpathak 15.04.2019 08:46

Да, они развернуты на одной машине, но, извините, я не понимаю, что вы сказали. Мой вопрос: в чем разница между api key и http basic auth, когда эти два подхода используются для защиты restful api? Потому что и api key, и http basic auth устанавливают значение в заголовке http? Является ли api key более безопасным, чем http basic auth?

frank 15.04.2019 09:42

Другие вопросы по теме