Как получить токен в простом консольном приложении Java? - PullRequest
0 голосов
/ 09 января 2019

Я использую keycloak, чтобы защитить логин углового интерфейса от бэкэнда с пружинной загрузкой. Это работает до сих пор хорошо. Для этого я использую неявный поток и angular-oauth2-oidc.

Теперь к моему вопросу: у меня есть 3-е приложение, которое является простым консольным Java-приложением (пакетное задание без взаимодействия с пользователем). Это приложение также должно поддерживать связь с API-интерфейсом остальной части сервера, но с фиксированным токеном или с помощью имени пользователя / пароля.

Как получить токен на предъявителя в консольном приложении? Есть ли API и пример?

Ответы [ 2 ]

0 голосов
/ 11 января 2019

Для запланированных заданий / фоновых заданий, когда пользователь не вошел в систему, вы используете [автономные токены] [1].

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

В вашем консольном приложении используйте автономный токен, чтобы сгенерировать токен доступа, и используйте его как токен-носитель для доступа к внутреннему интерфейсу rest rest.

http://blog.keycloak.org/2015/12/offline-tokens-in-keycloak.html

0 голосов
/ 09 января 2019

А как насчет того же подхода, который вы использовали в своем угловом приложении для запроса токена, но с Spring * RestTemplate?

Итак, сначала вы получаете токен, вызывая службу аутентификации, а затем, как только вы получаете его, вы добавляете его в свой заголовок как Authorization: Bearer <token> с последующими запросами к действующему бэкэнд-REST API, выполняющему бизнес-логику.

Spring также имеет библиотеку с некоторыми возможностями OAuth2, которые вы, возможно, захотите изучить. https://projects.spring.io/spring-security-oauth/docs/oauth2.html Проверьте часть, описывающую OAuth 2.0 Client. Кажется, это указывает на расширение RestTemplate для добавления правильных заголовков.

Лично я обычно сам управляю токеном и добавляю его в заголовок, когда создаю запрос для RestTemplate.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...