19066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/*
29066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Copyright (C) 2006 The Android Open Source Project
39066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *
49066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Licensed under the Apache License, Version 2.0 (the "License");
59066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * you may not use this file except in compliance with the License.
69066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * You may obtain a copy of the License at
79066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *
89066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *      http://www.apache.org/licenses/LICENSE-2.0
99066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *
109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Unless required by applicable law or agreed to in writing, software
119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * distributed under the License is distributed on an "AS IS" BASIS,
129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * See the License for the specific language governing permissions and
149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * limitations under the License.
159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */
169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectpackage android.webkit;
189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
19451e338c51e8c45efc0d21536dfae6f78f6d5e06Ignacio Sollaimport android.annotation.SystemApi;
209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.os.Handler;
219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/**
2346ce1db6ff3290b82b12f11715fbe82734a44322Steve Block * Represents a request for HTTP authentication. Instances of this class are
2446ce1db6ff3290b82b12f11715fbe82734a44322Steve Block * created by the WebView and passed to
2546ce1db6ff3290b82b12f11715fbe82734a44322Steve Block * {@link WebViewClient#onReceivedHttpAuthRequest}. The host application must
2646ce1db6ff3290b82b12f11715fbe82734a44322Steve Block * call either {@link #proceed} or {@link #cancel} to set the WebView's
2746ce1db6ff3290b82b12f11715fbe82734a44322Steve Block * response to the request.
289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */
299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectpublic class HttpAuthHandler extends Handler {
309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
322433fe9f04caa4257f7313a41d3bbae90ca2fe23Ben Murdoch     * @hide Only for use by WebViewProvider implementations.
339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
34451e338c51e8c45efc0d21536dfae6f78f6d5e06Ignacio Solla    @SystemApi
352433fe9f04caa4257f7313a41d3bbae90ca2fe23Ben Murdoch    public HttpAuthHandler() {
369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
3946ce1db6ff3290b82b12f11715fbe82734a44322Steve Block     * Gets whether the credentials stored for the current host (i.e. the host
4046ce1db6ff3290b82b12f11715fbe82734a44322Steve Block     * for which {@link WebViewClient#onReceivedHttpAuthRequest} was called)
4146ce1db6ff3290b82b12f11715fbe82734a44322Steve Block     * are suitable for use. Credentials are not suitable if they have
4246ce1db6ff3290b82b12f11715fbe82734a44322Steve Block     * previously been rejected by the server for the current request.
4346ce1db6ff3290b82b12f11715fbe82734a44322Steve Block     *
4446ce1db6ff3290b82b12f11715fbe82734a44322Steve Block     * @return whether the credentials are suitable for use
4547aaba3faf5c950e1d7b2c613fe8e2c73c6748a7Jonathan Dixon     * @see WebView#getHttpAuthUsernamePassword
469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public boolean useHttpAuthUsernamePassword() {
489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        return false;
499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
5246ce1db6ff3290b82b12f11715fbe82734a44322Steve Block     * Instructs the WebView to cancel the authentication request.
539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
5410229b24d061b02b2620ac59dc986c540efd3741Iain Merrick    public void cancel() {
559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
56c6a90a59b342114d760d899e09d8def672b49ca8Steve Block
57c6a90a59b342114d760d899e09d8def672b49ca8Steve Block    /**
5846ce1db6ff3290b82b12f11715fbe82734a44322Steve Block     * Instructs the WebView to proceed with the authentication with the given
5946ce1db6ff3290b82b12f11715fbe82734a44322Steve Block     * credentials. Credentials for use with this method can be retrieved from
6046ce1db6ff3290b82b12f11715fbe82734a44322Steve Block     * the WebView's store using {@link WebView#getHttpAuthUsernamePassword}.
61c6a90a59b342114d760d899e09d8def672b49ca8Steve Block     */
6210229b24d061b02b2620ac59dc986c540efd3741Iain Merrick    public void proceed(String username, String password) {
63c6a90a59b342114d760d899e09d8def672b49ca8Steve Block    }
64a7f0ed46208bf1658624e22dc061e20e97d30481Ben Murdoch
65a7f0ed46208bf1658624e22dc061e20e97d30481Ben Murdoch    /**
6646ce1db6ff3290b82b12f11715fbe82734a44322Steve Block     * Gets whether the prompt dialog should be suppressed.
6746ce1db6ff3290b82b12f11715fbe82734a44322Steve Block     *
6846ce1db6ff3290b82b12f11715fbe82734a44322Steve Block     * @return whether the prompt dialog should be suppressed
69a7f0ed46208bf1658624e22dc061e20e97d30481Ben Murdoch     * @hide
70a7f0ed46208bf1658624e22dc061e20e97d30481Ben Murdoch     */
71a7f0ed46208bf1658624e22dc061e20e97d30481Ben Murdoch    public boolean suppressDialog() {
72a7f0ed46208bf1658624e22dc061e20e97d30481Ben Murdoch        return false;
73a7f0ed46208bf1658624e22dc061e20e97d30481Ben Murdoch    }
749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
75