У меня есть одно клиентское приложение, написанное при весенней загрузке, которое получает токен доступа.
Application.yaml
security:
basic:
enabled: false
oauth2:
client:
clientId: MYID
clientSecret: MYSECRET
accessTokenUri: ${env.oauth.oauth-url}/token
userAuthorizationUri: ${env.oauth.oauth-url}/authorize?
login_hint=${env.tenant}
use-current-uri: false
pre-established-redirect-uri: http://localhost:8080/app1/login
MyConfigurer.java
@Configuration
@EnableOAuth2Sso
public class MYConfigurer
extends WebSecurityConfigurerAdapter{
@Override
public void configure(HttpSecurity http) throws Exception {
http.authorizeRequests().anyRequest().authenticated();
}
С этим кодом для каждого http-запроса он проходит аутентификацию, читая конфигурацию oauth2 из application.yaml. Если я сделаю запрос к конечной точке этого приложения из браузера, он перенаправит меня на страницу, где он запрашивает идентификатор электронной почты и пароль. Затем проверка подлинности учетных данных и возврат к приложению с токеном доступа.
Мое требование состоит в том, чтобы эта аутентификация происходила программно из кода Java, а не через браузер, где при перенаправлении я вводил адрес электронной почты и пароль в HTML-форме. Каким-то образом я хочу вызвать эти userAuthorizationUri и accessTokenUri, используя шаблон отдыха, передав мои данные и получив токен доступа.