1

I am working on a project which requires me to execute standard HTTP calls with session tokens. I am building a custom HTTP client, with a custom authenticator, something like this:

Client client = Client.Builder().withConfig().withAuthenticator(Authenticator);

and my authenticator is an interface

public interface Authenticator{
  SessionToken getSessionToken(); // so that different authentication methods can be supported
}

Now, for executing a request, I need to get a session token, which I obtain by calling authenticator.getSessionToken(). However, the authenticator has to call the backend to get the token, for which it requires a client, leading to a circular dependency. How do I solve this? One approach is to create a separate authentication client, which I pass in the constructor of the Authenticator Implementation, but the package imports would still show circular dependency. Is there a better way to design this?

0

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.