Я работаю над проектом, который требует от меня выполнения стандартных HTTP-вызовов с токенами сеанса.Я создаю пользовательский HTTP-клиент с пользовательским аутентификатором, что-то вроде этого:
Client client = Client.Builder().withConfig().withAuthenticator(Authenticator);
, а мой аутентификатор - это интерфейс
public interface Authenticator{
SessionToken getSessionToken(); // so that different authentication methods can be supported
}
Теперь для выполнения запроса мне нужнополучить токен сеанса, который я получаю, вызывая authenticator.getSessionToken()
.Однако аутентификатор должен вызвать серверную часть, чтобы получить токен, для которого требуется клиент, что приводит к циклической зависимости.Как мне это решить?Один из подходов заключается в создании отдельного клиента аутентификации, который я передаю в конструкторе реализации Authenticator, но при импорте пакета все равно будет отображаться циклическая зависимость.Есть ли лучший способ создать это?