У меня есть интерфейс AuthenticationHandler, который поддерживает URLConnection, но теперь я использую Apache HTTP Client. Я хочу иметь общий интерфейс для аутентификации для обоих типов соединений (URLConnection и HTTP Client), но они оба имеют разные параметры и работают по-разному.Схема разработки стратегии
Как бы это создать? Является ли стратегия стратегией?
import java.net.URLConnection;
import java.util.List;
public interface AuthenticationHandler {
/**
* this needs to be called by everyone that needs direct access to a link which may have
* security access rules.
*/
void trustAll();
/**
*
* @param URLconnection where you set access state parameters or anything access related
* @param slice where you could get access config
* @param initializeSlice is true if you want the proxy to hibernate initialize all hibernated objects
* @return
* @throws ConnectionException
*/
void authenticate(URLConnection conn) throws ConnectionException;
List<String> getSingleCookie();
void setSingleCookie(List<String> singleCookies);
CookieManager getCookieManager();
void setCookieManager(CookieManager cookieManager);
boolean isKeepGeneratedCookie();
void setKeepGeneratedCookie(boolean keepGeneratedCookie);
}
Моя главная забота
void authenticate(URLConnection conn) throws ConnectionException;
, где он был первоначально принимая URLConnection соед, но теперь мы хотим, чтобы добавить поддержку HTTP-клиента тоже.
Nice один , Измените AuthenticatorFactory как AuthenticatorContext и предоставьте все возможные реализации в конструкторе. Предоставьте метод getter, чтобы вернуть определенную стратегию. –