Serenity BDD - HTTP Client Builder - Proxy Problema - Come installare autenticazione NTLM?

voti
0

Hi Im cercando di eseguire i test API dal mio posto di lavoro con serenità BDD e stare tranquilli, ma il proxy o qualcosa di blocchi di me e mi dà collegamento problema di timeout

Serenity BDD - Codice Restassured:

SerenityRest.rest().given().proxy(proxy_host, proxyPort).auth().basic(xxusernmexx, xxpassword)
        .spec(com.api.utils.ReuseableSpecifications.getGenericRequestSpec())
        .get(bin/userInfo).
        then().
        log().all();

Il codice precedente funziona nel mio computer portatile locale collegato al mio lavoro Wifi. ma non funziona nel mio lavoro VM (Citrix)

Ma quando si usa Java da solo la costruzione di un costruttore di contenuti cliente e di colpire con le richieste che allora funziona. Codice Java:

public class api{

    private HttpClient client; 
    Date expires = null ; 
    String cooki_1 = ; 
    HashMap<String, String> data_Header_1 = new  HashMap<String, String>();
    HttpCoreContext localContext ;
    BasicCookieStore cookieStore; 
    HttpClientContext httpClientContext;    
    String proxy_host = xxxxxx.xxxxx.intra; 
    int proxyPort = 8080;


    public api()
    {
        cookieStore  = new BasicCookieStore();
        localContext= new HttpCoreContext();
        httpClientContext = HttpClientContext.create();
        Registry<AuthSchemeProvider> authSchemeRegistry = RegistryBuilder.<AuthSchemeProvider>create()
                .register(AuthSchemes.NTLM,  new NTLMSchemeFactory())
                .register(AuthSchemes.BASIC, new BasicSchemeFactory())
                .register(AuthSchemes.DIGEST, new DigestSchemeFactory())
                .register(AuthSchemes.SPNEGO, new SPNegoSchemeFactory())
                .register(AuthSchemes.KERBEROS, new KerberosSchemeFactory())
                .build(); 
        httpClientContext.setCookieStore(cookieStore);


        NTCredentials credentials = new NTCredentials(xxusernamexx,xxpasswordxx,null,xxdomainxx );
        CredentialsProvider credProvider = new BasicCredentialsProvider();
        credProvider.setCredentials(new AuthScope(proxy_host, proxyPort), credentials );

        this.client = HttpClientBuilder.create().setProxy(new HttpHost(proxy_host, proxyPort)).setDefaultAuthSchemeRegistry(authSchemeRegistry)
                .setDefaultCredentialsProvider(credProvider).setProxyAuthenticationStrategy(new ProxyAuthenticationStrategy())
                .setRedirectStrategy(new LaxRedirectStrategy()).setDefaultRequestConfig(RequestConfig.custom()
            .setCookieSpec(CookieSpecs.STANDARD).build()).setDefaultCookieStore(cookieStore).build();
        //System.setProperty(java.net.useSystemProxies, true);

        }

    public RestResponse postRequest(String url)
    {
......
}

Questo funziona ..nel mio posto di lavoro (macchine virtuali)

Qualcuno può per favore fatemelo sapere come implementare il codice Java sopra in serenità e riposo BDD classi assicurato

È pubblicato 24/10/2019 alle 12:53
fonte dall'utente
In altre lingue...                            

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more