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
199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.os.Handler;
209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/**
2246ce1db6ff3290b82b12f11715fbe82734a44322Steve Block * Represents a request for HTTP authentication. Instances of this class are
2346ce1db6ff3290b82b12f11715fbe82734a44322Steve Block * created by the WebView and passed to
2446ce1db6ff3290b82b12f11715fbe82734a44322Steve Block * {@link WebViewClient#onReceivedHttpAuthRequest}. The host application must
2546ce1db6ff3290b82b12f11715fbe82734a44322Steve Block * call either {@link #proceed} or {@link #cancel} to set the WebView's
2646ce1db6ff3290b82b12f11715fbe82734a44322Steve Block * response to the request.
279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */
289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectpublic class HttpAuthHandler extends Handler {
299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
312433fe9f04caa4257f7313a41d3bbae90ca2fe23Ben Murdoch     * @hide Only for use by WebViewProvider implementations.
329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
332433fe9f04caa4257f7313a41d3bbae90ca2fe23Ben Murdoch    public HttpAuthHandler() {
349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
3746ce1db6ff3290b82b12f11715fbe82734a44322Steve Block     * Gets whether the credentials stored for the current host (i.e. the host
3846ce1db6ff3290b82b12f11715fbe82734a44322Steve Block     * for which {@link WebViewClient#onReceivedHttpAuthRequest} was called)
3946ce1db6ff3290b82b12f11715fbe82734a44322Steve Block     * are suitable for use. Credentials are not suitable if they have
4046ce1db6ff3290b82b12f11715fbe82734a44322Steve Block     * previously been rejected by the server for the current request.
4146ce1db6ff3290b82b12f11715fbe82734a44322Steve Block     *
4246ce1db6ff3290b82b12f11715fbe82734a44322Steve Block     * @return whether the credentials are suitable for use
4346ce1db6ff3290b82b12f11715fbe82734a44322Steve Block     * @see Webview#getHttpAuthUsernamePassword
449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public boolean useHttpAuthUsernamePassword() {
469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        return false;
479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
5046ce1db6ff3290b82b12f11715fbe82734a44322Steve Block     * Instructs the WebView to cancel the authentication request.
519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
5210229b24d061b02b2620ac59dc986c540efd3741Iain Merrick    public void cancel() {
539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
54c6a90a59b342114d760d899e09d8def672b49ca8Steve Block
55c6a90a59b342114d760d899e09d8def672b49ca8Steve Block    /**
5646ce1db6ff3290b82b12f11715fbe82734a44322Steve Block     * Instructs the WebView to proceed with the authentication with the given
5746ce1db6ff3290b82b12f11715fbe82734a44322Steve Block     * credentials. Credentials for use with this method can be retrieved from
5846ce1db6ff3290b82b12f11715fbe82734a44322Steve Block     * the WebView's store using {@link WebView#getHttpAuthUsernamePassword}.
59c6a90a59b342114d760d899e09d8def672b49ca8Steve Block     */
6010229b24d061b02b2620ac59dc986c540efd3741Iain Merrick    public void proceed(String username, String password) {
61c6a90a59b342114d760d899e09d8def672b49ca8Steve Block    }
62a7f0ed46208bf1658624e22dc061e20e97d30481Ben Murdoch
63a7f0ed46208bf1658624e22dc061e20e97d30481Ben Murdoch    /**
6446ce1db6ff3290b82b12f11715fbe82734a44322Steve Block     * Gets whether the prompt dialog should be suppressed.
6546ce1db6ff3290b82b12f11715fbe82734a44322Steve Block     *
6646ce1db6ff3290b82b12f11715fbe82734a44322Steve Block     * @return whether the prompt dialog should be suppressed
67a7f0ed46208bf1658624e22dc061e20e97d30481Ben Murdoch     * @hide
68a7f0ed46208bf1658624e22dc061e20e97d30481Ben Murdoch     */
69a7f0ed46208bf1658624e22dc061e20e97d30481Ben Murdoch    public boolean suppressDialog() {
70a7f0ed46208bf1658624e22dc061e20e97d30481Ben Murdoch        return false;
71a7f0ed46208bf1658624e22dc061e20e97d30481Ben Murdoch    }
729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
73