Search in sources :

Example 91 with PasswordAuthentication

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;
                }
            }
        });
    }
}
Also used : ProxyAuthenticator(org.littleshoot.proxy.ProxyAuthenticator) Authenticator(java.net.Authenticator) PasswordAuthentication(java.net.PasswordAuthentication) BeforeEach(org.junit.jupiter.api.BeforeEach)

Example 92 with PasswordAuthentication

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;
    }
}
Also used : AuthCacheImpl(sun.net.www.protocol.http.AuthCacheImpl) MalformedURLException(java.net.MalformedURLException) QName(javax.xml.namespace.QName) BindingProvider(javax.xml.ws.BindingProvider) FunctionalAPIImplService(com.emc.fapiclient.ws.FunctionalAPIImplService) KeyStoreException(java.security.KeyStoreException) MalformedURLException(java.net.MalformedURLException) IOException(java.io.IOException) KeyManagementException(java.security.KeyManagementException) CertificateException(java.security.cert.CertificateException) NoSuchAlgorithmException(java.security.NoSuchAlgorithmException) NoSuchProviderException(java.security.NoSuchProviderException) URL(java.net.URL) FunctionalAPIImpl(com.emc.fapiclient.ws.FunctionalAPIImpl) Authenticator(java.net.Authenticator) PasswordAuthentication(java.net.PasswordAuthentication)

Example 93 with PasswordAuthentication

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);
}
Also used : Authenticator(java.net.Authenticator) PasswordAuthentication(java.net.PasswordAuthentication)

Example 94 with PasswordAuthentication

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();
    }
}
Also used : Proxy(java.net.Proxy) HttpURLConnection(java.net.HttpURLConnection) Content(org.sonatype.goodies.httpfixture.server.jetty.behaviour.Content) InetSocketAddress(java.net.InetSocketAddress) SocketAddress(java.net.SocketAddress) InetSocketAddress(java.net.InetSocketAddress) Debug(org.sonatype.goodies.httpfixture.server.jetty.behaviour.Debug) Authenticator(java.net.Authenticator) URL(java.net.URL) PasswordAuthentication(java.net.PasswordAuthentication) Test(org.junit.Test)

Example 95 with PasswordAuthentication

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();
}
Also used : Proxy(java.net.Proxy) HttpURLConnection(java.net.HttpURLConnection) Content(org.sonatype.goodies.httpfixture.server.jetty.behaviour.Content) InetSocketAddress(java.net.InetSocketAddress) SocketAddress(java.net.SocketAddress) InetSocketAddress(java.net.InetSocketAddress) Debug(org.sonatype.goodies.httpfixture.server.jetty.behaviour.Debug) URL(java.net.URL) Authenticator(java.net.Authenticator) PasswordAuthentication(java.net.PasswordAuthentication) Test(org.junit.Test)

Aggregations

PasswordAuthentication (java.net.PasswordAuthentication)108 Authenticator (java.net.Authenticator)52 URL (java.net.URL)27 InetSocketAddress (java.net.InetSocketAddress)22 Proxy (java.net.Proxy)19 Test (org.junit.Test)16 HttpURLConnection (java.net.HttpURLConnection)11 InetAddress (java.net.InetAddress)11 URI (java.net.URI)10 MalformedURLException (java.net.MalformedURLException)9 File (java.io.File)8 IOException (java.io.IOException)8 SocketAddress (java.net.SocketAddress)8 UnknownHostException (java.net.UnknownHostException)6 PrivilegedActionException (java.security.PrivilegedActionException)6 InputStream (java.io.InputStream)5 SocketTimeoutException (java.net.SocketTimeoutException)5 HttpsURLConnection (javax.net.ssl.HttpsURLConnection)5 HttpRetryException (java.net.HttpRetryException)4 ProtocolException (java.net.ProtocolException)4