use of java.net.PasswordAuthentication in project java-cloudant by cloudant.
the class HttpProxyTest method setAuthenticatorIfNeeded.
/**
* The Proxy-Authorization header that we add to requests gets encrypted in the case of a SSL
* tunnel connection to a HTTPS server. The default HttpURLConnection does not add the header
* to the CONNECT request so in that case we require an Authenticator to provide credentials
* to the proxy server. The client code does not set an Authenticator automatically because
* it is a global default so it must be set by the application developer or system
* administrators in accordance with their environment. For the purposes of this test we can
* add and remove the Authenticator before and after testing.
*/
@BeforeEach
public void setAuthenticatorIfNeeded(final boolean okUsable, final boolean useSecureProxy, final boolean useHttpsServer, final boolean useProxyAuth) {
// we need to set the default Authenticator
if (useProxyAuth && useHttpsServer && !isOkUsable) {
// Allow https tunnelling through http proxy for the duration of the test
System.setProperty("jdk.http.auth.tunneling.disabledSchemes", "");
Authenticator.setDefault(new Authenticator() {
@Override
protected PasswordAuthentication getPasswordAuthentication() {
if (getRequestorType() == RequestorType.PROXY) {
return new PasswordAuthentication(mockProxyUser, mockProxyPass.toCharArray());
} else {
return null;
}
}
});
}
}
use of java.net.PasswordAuthentication in project coprhd-controller by CoprHD.
the class RecoverPointConnection method connect.
/**
* Connect to RP and return a handle that can be used for FAPI calls
*
* @param endpoint - Address to connect to
* @param username - Username for credentials
* @param password - Password for credentials
*
* @return FunctionalAPIImpl - A handle for FAPI access
*/
public FunctionalAPIImpl connect(URI endpoint, String username, String password) {
try {
ignoreCertifications();
// interceptCertificates();
} catch (Exception e) {
// so what?
}
String destAddress = endpoint.toASCIIString();
try {
URL baseUrl = FunctionalAPIImplService.class.getResource(".");
URL url = new URL(baseUrl, destAddress);
final String finalUser = username;
final String finalPassword = password;
// Modify the System Property for Max Redirects to a smaller number so we don't hammer
// the device over and over unnecessarily with bad credentials (if they're bad) as this
// takes a long time. Default is 20 redirects.
// However we will save the old redirect value and restore it after we're done.
String oldMaxRedirectsValue = null;
try {
oldMaxRedirectsValue = System.getProperty(SYSPROPS_HTTP_MAX_REDIRECTS);
} catch (NullPointerException npe) {
logger.warn("The System property " + SYSPROPS_HTTP_MAX_REDIRECTS + " does not already exist for some reason.");
}
// Set the Property for http.maxRedirects to 2 to prevent unnecessary retries
System.setProperty(SYSPROPS_HTTP_MAX_REDIRECTS, NEW_MAX_REDIRECTS);
// If we're creating a new connection, we want to clear the cache as it may be holding
// onto a previously valid connection.
AuthCacheValue.setAuthCache(new AuthCacheImpl());
Authenticator.setDefault(null);
// Create a PasswordAuthentication so when the request is asked via HTTP for authentication,
// the below will be automatically returned. This is set here, but invoked behind the scenes.
Authenticator.setDefault(new Authenticator() {
@Override
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(finalUser, finalPassword.toCharArray());
}
});
logger.info("Attempting to connect to service " + FAPI_SERVICENAME + " at url " + FAPI_URL + " using auth credentials for: " + finalUser);
// Connect to the service
FunctionalAPIImplService service = new FunctionalAPIImplService(url, new QName(FAPI_URL, FAPI_SERVICENAME));
FunctionalAPIImpl impl = service.getFunctionalAPIImplPort();
BindingProvider bp = (BindingProvider) impl;
Map<String, Object> map = bp.getRequestContext();
logger.info("RecoverPoint service: Dest: " + destAddress + ", user: " + username);
map.put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY, destAddress);
map.put(BindingProvider.USERNAME_PROPERTY, username);
map.put(BindingProvider.PASSWORD_PROPERTY, password);
// Reset the System Property for http.maxRedirects, but only if an existing value was present
if (oldMaxRedirectsValue != null && !oldMaxRedirectsValue.isEmpty()) {
System.setProperty(SYSPROPS_HTTP_MAX_REDIRECTS, oldMaxRedirectsValue);
}
logger.info("Connected.");
return impl;
} catch (MalformedURLException e) {
logger.error("Failed to create URL for the wsdl Location: " + destAddress);
logger.error(e.getMessage());
return null;
}
}
use of java.net.PasswordAuthentication in project tycho by eclipse.
the class ProxyServiceFacadeImpl method registerAuthenticator.
private void registerAuthenticator(final String user, final String password) {
if (user == null || password == null) {
return;
}
Authenticator authenticator = new Authenticator() {
@Override
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(user, password.toCharArray());
}
};
// not exactly pretty but this is how org.eclipse.core.net does it
Authenticator.setDefault(authenticator);
}
use of java.net.PasswordAuthentication in project goodies by sonatype.
the class JettyProxyProviderTest method testAuthAfterProxyAuthGetFail401.
@Test
public void testAuthAfterProxyAuthGetFail401() throws Exception {
JettyProxyProvider proxy = new JettyProxyProvider("u", "p");
proxy.addBehaviour("/*", new Debug(), new Content());
proxy.addAuthentication("/*", "BASIC");
proxy.addUser("user", "password");
proxy.start();
Authenticator.setDefault(new Authenticator() {
@Override
protected PasswordAuthentication getPasswordAuthentication() {
if (getRequestingHost().equals("localhost")) {
String password = "p";
return new PasswordAuthentication("u", password.toCharArray());
}
return super.getPasswordAuthentication();
}
});
URL url = new URL("http://speutel.invalid/foo");
SocketAddress sa = new InetSocketAddress("localhost", proxy.getPort());
Proxy p = new Proxy(Type.HTTP, sa);
HttpURLConnection conn = (HttpURLConnection) url.openConnection(p);
try {
conn.setDoInput(true);
conn.connect();
assertEquals(401, conn.getResponseCode());
} finally {
conn.disconnect();
}
}
use of java.net.PasswordAuthentication in project goodies by sonatype.
the class JettyProxyProviderTest method testProxyAuthGet.
@Test
public void testProxyAuthGet() throws Exception {
JettyProxyProvider proxy = new JettyProxyProvider("u", "p");
proxy.addBehaviour("/*", new Debug(), new Content());
proxy.start();
URL url = new URL("http://speutel.invalid/foo");
SocketAddress sa = new InetSocketAddress("localhost", proxy.getPort());
Proxy p = new Proxy(Type.HTTP, sa);
Authenticator.setDefault(new Authenticator() {
@Override
protected PasswordAuthentication getPasswordAuthentication() {
if (getRequestingHost().equals("localhost")) {
String password = "p";
return new PasswordAuthentication("u", password.toCharArray());
}
return super.getPasswordAuthentication();
}
});
HttpURLConnection conn = (HttpURLConnection) url.openConnection(p);
conn.setDoInput(true);
conn.connect();
assertEquals(200, conn.getResponseCode());
assertEquals("foo", read(conn.getContent()).trim());
conn.disconnect();
}
Aggregations