RecordingAuthenticator.java revision 3c938a3f6b61ce5e2dba0d039b03fe73b89fd26c
1ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov/*
2ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov * Copyright (C) 2013 The Android Open Source Project
3ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov *
4ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov * Licensed under the Apache License, Version 2.0 (the "License");
5ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov * you may not use this file except in compliance with the License.
6ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov * You may obtain a copy of the License at
7ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov *
8ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov *      http://www.apache.org/licenses/LICENSE-2.0
9ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov *
10ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov * Unless required by applicable law or agreed to in writing, software
11ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov * distributed under the License is distributed on an "AS IS" BASIS,
12ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov * See the License for the specific language governing permissions and
14ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov * limitations under the License.
15ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov */
16ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganovpackage com.squareup.okhttp.internal;
17ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
18ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganovimport java.net.Authenticator;
19ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganovimport java.net.PasswordAuthentication;
20ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganovimport java.util.ArrayList;
21ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganovimport java.util.List;
22ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
23ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganovpublic final class RecordingAuthenticator extends Authenticator {
24ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  /** base64("username:password") */
25ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  public static final String BASE_64_CREDENTIALS = "dXNlcm5hbWU6cGFzc3dvcmQ=";
26ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
27ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  public final List<String> calls = new ArrayList<String>();
28ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  public final PasswordAuthentication authentication;
29ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
30ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  public RecordingAuthenticator(PasswordAuthentication authentication) {
31ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    this.authentication = authentication;
32ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  }
33ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
34ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  public RecordingAuthenticator() {
35ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    this(new PasswordAuthentication("username", "password".toCharArray()));
36ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  }
37ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
38ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  @Override protected PasswordAuthentication getPasswordAuthentication() {
39ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    this.calls
40ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov        .add("host="
41ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov            + getRequestingHost()
42ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov            + " port="
43ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov            + getRequestingPort()
44ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov            + " site="
45ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov            + getRequestingSite()
46ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov            + " url="
47ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov            + getRequestingURL()
48ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov            + " type="
49ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov            + getRequestorType()
50ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov            + " prompt="
51ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov            + getRequestingPrompt()
52ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov            + " protocol="
53ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov            + getRequestingProtocol()
54ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov            + " scheme="
55ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov            + getRequestingScheme());
56ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    return authentication;
57ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  }
58ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov}
59ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov