I'm not sure if there's an existing example out there, but I created a quick-and-dirty example here:
https://github.com/dguardado/dw-http-client-example Let me know if you have any questions! On Wednesday, October 24, 2018 at 7:43:20 AM UTC-7, [email protected] wrote: > > Same result without the header being manually defined. I get a 401 status > code in the response. > > This is what I have in my config file now: > > url: https://host.com/api/ > host: 'host.com' > port: 443 > username: 'username' > password: 'password' > authScheme: Basic > httpClient: > timeout: 3s > connectionTimeout: 3s > > > > > This is how I use data from the configuration file in the *run* function > to setup BaseAuthentication: > > UsernamePasswordCredentials userCreds = new > UsernamePasswordCredentials(config.getUsername(), config.getPassword()); > > > CredentialsProvider credsProvider = new BasicCredentialsProvider(); > credsProvider.setCredentials( > new AuthScope(config.getHost(), config.getPort(), null, > config.getAuthScheme()), > userCreds); > > final HttpClient apiHttpClient = new HttpClientBuilder(env) > .using(config.getHttpClient()) // returns a HttpClientConfiguration > object > .using(credsProvider) > .build("networks-client"); > > NetworksClient fwdNetworksClient = new NetworksClient(apiHttpClient, > config.getUrl()); > > > Is there a working example that sets up Basic Authentication for a > DropWizard client and then makes a request that automatically has the > authorization header set? > > On Tuesday, October 23, 2018 at 1:56:43 PM UTC-4, [email protected] wrote: >> >> I'll give it a shot! >> >> On Tuesday, October 23, 2018 at 12:38:58 PM UTC-4, Dimas Guardado wrote: >>> >>> What happens if you try removing the proxy configuration altogether? >>> Your curl command seems to work fine without a proxy (unless you have that >>> configured elsewhere). If you're only using the proxy config so you can >>> pass host/port values to your auth scope, and you're not intending to proxy >>> your requests through a proxy server, you may end up with a misconfigured >>> client. >>> >>> On Monday, October 22, 2018 at 4:14:29 PM UTC-7, [email protected] >>> wrote: >>>> >>>> I can use curl successfully to get a response from the vendor's API as >>>> seen below. >>>> >>>> I would like to have my DropWizard client do the same thing, use the >>>> username and password to define the Authorization header's value. Set the >>>> Authorization Header, use SSL, and use HTTP/2 >>>> >>>> curl --user 'username:password' -k "https://host.com/api/networks" -H >>>>>> "accept: application/json" --verbose >>>>> >>>>> * Trying 32.270.19.44... >>>>> >>>>> * TCP_NODELAY set >>>>> >>>>> * Connected to host.com (32.270.19.44) port 443 (#0) >>>>> >>>>> * ALPN, offering h2 >>>>> >>>>> * ALPN, offering http/1.1 >>>>> >>>>> * Cipher selection: >>>>>> ALL:!EXPORT:!EXPORT40:!EXPORT56:!aNULL:!LOW:!RC4:@STRENGTH >>>>> >>>>> * successfully set certificate verify locations: >>>>> >>>>> * CAfile: /etc/ssl/cert.pem >>>>> >>>>> CApath: none >>>>> >>>>> * TLSv1.2 (OUT), TLS handshake, Client hello (1): >>>>> >>>>> * TLSv1.2 (IN), TLS handshake, Server hello (2): >>>>> >>>>> * TLSv1.2 (IN), TLS handshake, Certificate (11): >>>>> >>>>> * TLSv1.2 (IN), TLS handshake, Server key exchange (12): >>>>> >>>>> * TLSv1.2 (IN), TLS handshake, Server finished (14): >>>>> >>>>> * TLSv1.2 (OUT), TLS handshake, Client key exchange (16): >>>>> >>>>> * TLSv1.2 (OUT), TLS change cipher, Client hello (1): >>>>> >>>>> * TLSv1.2 (OUT), TLS handshake, Finished (20): >>>>> >>>>> * TLSv1.2 (IN), TLS change cipher, Client hello (1): >>>>> >>>>> * TLSv1.2 (IN), TLS handshake, Finished (20): >>>>> >>>>> * SSL connection using TLSv1.2 / ECDHE-RSA-AES128-GCM-SHA256 >>>>> >>>>> * ALPN, server accepted to use h2 >>>>> >>>>> * Server certificate: >>>>> >>>>> * subject: CN=host.com >>>>> >>>>> * start date: Jun 3 00:00:00 2018 GMT >>>>> >>>>> * expire date: Jul 3 12:00:00 2019 GMT >>>>> >>>>> * issuer: C=US; O=Amazon; OU=Server CA 1B; CN=Amazon >>>>> >>>>> * SSL certificate verify ok. >>>>> >>>>> * Using HTTP2, server supports multi-use >>>>> >>>>> * Connection state changed (HTTP/2 confirmed) >>>>> >>>>> * Copying HTTP/2 data in stream buffer to connection buffer after >>>>>> upgrade: len=0 >>>>> >>>>> * Server auth using Basic with user 'username' >>>>> >>>>> * Using Stream ID: 1 (easy handle 0x7ff1c200a400) >>>>> >>>>> > GET /api/networks HTTP/2 >>>>> >>>>> > Host: fwd.app >>>>> >>>>> > Authorization: Basic bNWtYUhvbl3qb2huGQJhaC5jb206UcIqbSpRSoghIQ== >>>>> >>>>> > User-Agent: curl/7.54.0 >>>>> >>>>> > accept: application/json >>>>> >>>>> > >>>>> >>>>> RESPONSE: >>>> >>>>> * Connection state changed (MAX_CONCURRENT_STREAMS updated)! >>>>> >>>>> < HTTP/2 200 >>>>> >>>>> < date: Mon, 22 Oct 2018 23:05:59 GMT >>>>> >>>>> < content-type: application/json;charset=utf-8 >>>>> >>>>> < set-cookie: >>>>>> AWSALB=Ri8qyaECWXb2r8xTbFLAbG+pUXkAQr8gGTZiqfnpUl94pzHwF81jPMTfbEhp4oE58uVeeZi4gMkS7jyiELKiup+ouQCdzzRSygg+DSLSHG6/qL9sI2M; >>>>>> >>>>>> Expires=Mon, 29 Oct 2018 23:05:59 GMT; Path=/ >>>>> >>>>> < x-content-type-options: nosniff >>>>> >>>>> < x-xss-protection: 1; mode=block >>>>> >>>>> < cache-control: no-cache, no-store, max-age=0, must-revalidate >>>>> >>>>> < pragma: no-cache >>>>> >>>>> < expires: 0 >>>>> >>>>> < strict-transport-security: max-age=31536000 ; includeSubDomains >>>>> >>>>> < x-frame-options: DENY >>>>> >>>>> < vary: Accept-Encoding, User-Agent >>>>> >>>>> < server: Jetty(9.4.z-SNAPSHOT) >>>>> >>>>> < >>>>> >>>>> * Connection #0 to host host.com left intact >>>>> >>>>> [{"id":"2275","name":"demo","orgId":"992","creatorId":"2050"}] >>>>> >>>>> -- You received this message because you are subscribed to the Google Groups "dropwizard-user" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/d/optout.
