У меня есть 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.




Вы можете написать свой собственный фильтр, если не хотите использовать пружинную безопасность. Этот фильтр будет перехватывать все URL-адреса. В этом фильтре вы можете проверить ключ API в заголовках и подтвердить. Если это подтверждено, пусть цепочка продолжится, иначе пользователь/приложение выдаст какую-то значимую ошибку.
api key устанавливается в заголовке запроса, например. имя заголовка — API-Key, а значение заголовка — 123, затем в фильтре получите это значение заголовка и проверьте по этому имени заголовка, верно? Если это так, то в чем разница между api key и http basic auth? потому что http basic auth также устанавливает что-то в заголовке, просто устанавливает имя пользователя и пароль.
Вышеупомянутое решение заключалось в защите API без Spring Security. Оба ваших приложения развернуты на одном компьютере? Если да, то вы можете настроить переднее веб-приложение для прослушивания порта 433/80. И бэкэнд-приложение на другом порту. Кроме того, вы можете настроить http-коннектор для этого внутреннего приложения для прослушивания определенного адреса только как «localhost». Проверьте эту ссылку - serverfault.com/questions/218666/…
Да, они развернуты на одной машине, но, извините, я не понимаю, что вы сказали. Мой вопрос: в чем разница между api key и http basic auth, когда эти два подхода используются для защиты restful api? Потому что и api key, и http basic auth устанавливают значение в заголовке http? Является ли api key более безопасным, чем http basic auth?
Пожалуйста, обратитесь к этому вопросу: Как защитить REST API с помощью Spring Boot и Spring Security?