Я создал приложение с рядом функций REST, представленных публике c, где они вызываются через PHP. Я использую Spring Boot для части приложения.
Теперь я хочу защитить свое приложение с помощью доступа на основе ролей, полученного через токен авторизации, предоставленный протоколом Oauth2. Я реализовал сервер авторизации, который прослушивает порт 8081, чтобы получить токен, но я немного растерялся, когда дело доходит до сервера клиента и ресурса. В части авторизации я использую базу данных MySQL для хранения токена и получения учетных данных клиента.
Насколько мне известно, мой сервер ресурсов также является клиентским приложением. Я хотел реализовать следующее:
- Конечный пользователь входит в систему через пользовательскую страницу входа PHP, которая не включена в мое приложение весенней загрузки. Эта страница будет действовать как страница входа в OAuth2.
- При успешном входе в систему сервер авторизации возвращает токен и токен refre sh.
- Каждый раз, когда пользователь пытается получить доступ к указанному На странице c токен авторизации передается через код PHP в заголовок REST, и он автоматически представляет результаты, если у пользователя есть соответствующие права.
Я хотел бы знать, какую конфигурацию мне нужно добавить в мое приложение (прослушивание порта 8080), чтобы (а) связаться с сервером авторизации (см. Application.properties), (b) передать токен авторизации в заголовок REST для проверки прав пользователя. Прямо сейчас у меня есть структура basi c, в которой у меня есть контроллеры (несколько классов) в пакете и конфиг в другом пакете.
Не могли бы вы уточнить, если: (а) мне нужно расширить как ResourceServerConfig, так и WebServerConfig в моем приложении, и если да, что каждый из них должен делать, и (б) как я бы передал токен каждому остальному функция - если я правильно понял, мне нужно использовать аннотацию EnableOAuth2Sso, но я не уверен, нужно ли это делать в каждом другом классе Controller. Кроме того, было бы здорово, если бы вы могли предоставить некоторые учебники. Я прочитал несколько из них, но я могу пропустить лучшее, что касается моей конфигурации.
Заранее спасибо.
Пожалуйста, найдите ниже application.properties.
Application.properties моего приложения
#OAuth2 configuration
security.oauth2.client.client-id=secrettest
security.oauth2.client.client-secret=@test
security.oauth2.client.access-token-uri=http://localhost:8081/oauth/token
security.oauth2.resource.token-info-uri=http://localhost:8081/oauth/check_token
security.oauth2.client.user-authorization-uri=http://localhost:8081/oauth/authorize
server.servlet.session.cookie.name=KSESSION