use of aQute.bnd.url.HttpsVerification in project bnd by bndtools.
the class HttpClientTest method testRedirectURL.
public void testRedirectURL() throws Exception {
try (HttpClient hc = new HttpClient()) {
HttpsVerification httpsVerification = new HttpsVerification(httpsServer.getCertificateChain(), false, hc.getReporter());
hc.addURLConnectionHandler(httpsVerification);
URI uri = httpsServer.getBaseURI("get");
URL go = httpServer.getBaseURI("xlocation").toURL();
TaggedData tag = hc.build().maxRedirects(3).get(TaggedData.class).headers("XLocation", uri.toString()).go(go);
assertNotNull(tag);
assertEquals(200, tag.getResponseCode());
}
}
use of aQute.bnd.url.HttpsVerification in project bnd by bndtools.
the class ConnectionSettings method createUrlConnectionHandler.
public URLConnectionHandler createUrlConnectionHandler(ServerDTO serverDTO) {
final Glob match = new Glob(serverDTO.match == null ? serverDTO.id : serverDTO.match);
final BasicAuthentication basic = getBasicAuthentication(serverDTO.username, serverDTO.password);
final HttpsVerification https = new HttpsVerification(serverDTO.trust, serverDTO.verify, getParent());
return new URLConnectionHandler() {
@Override
public boolean matches(URL url) {
String scheme = url.getProtocol().toLowerCase();
StringBuilder address = new StringBuilder();
address.append(scheme).append("://").append(url.getHost());
if (url.getPort() > 0 && url.getPort() != url.getDefaultPort())
address.append(":").append(url.getPort());
return match.matcher(address).matches();
}
@Override
public void handle(URLConnection connection) throws Exception {
if (basic != null)
basic.handle(connection);
if (isHttps(connection) && https != null) {
https.handle(connection);
}
}
boolean isHttps(URLConnection connection) {
return "https".equalsIgnoreCase(connection.getURL().getProtocol());
}
public String toString() {
return "Server [ match=" + match + ", basic=" + basic + ", https=" + https + "]";
}
};
}
Aggregations