PasswordAuthentication.java revision dd828f42a5c83b4270d4fbf6fce2da1878f1e84a
1/*
2 *  Licensed to the Apache Software Foundation (ASF) under one or more
3 *  contributor license agreements.  See the NOTICE file distributed with
4 *  this work for additional information regarding copyright ownership.
5 *  The ASF licenses this file to You under the Apache License, Version 2.0
6 *  (the "License"); you may not use this file except in compliance with
7 *  the License.  You may obtain a copy of the License at
8 *
9 *     http://www.apache.org/licenses/LICENSE-2.0
10 *
11 *  Unless required by applicable law or agreed to in writing, software
12 *  distributed under the License is distributed on an "AS IS" BASIS,
13 *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 *  See the License for the specific language governing permissions and
15 *  limitations under the License.
16 */
17
18package java.net;
19
20/**
21 * This immutable class is a data structure that encapsulates username and
22 * password which is used by the {@code Authenticator} class.
23 *
24 * @see Authenticator
25 * @since Android 1.0
26 */
27public final class PasswordAuthentication {
28
29    private String userName;
30
31    private char[] password;
32
33    /**
34     * Creates an instance of a password authentication with a specified
35     * username and password.
36     *
37     * @param userName
38     *            the username to store.
39     * @param password
40     *            the associated password to store.
41     * @since Android 1.0
42     */
43    public PasswordAuthentication(String userName, char[] password) {
44        this.userName = userName;
45        this.password = password.clone();
46    }
47
48    /**
49     * Gets a clone of the password stored by this instance. The user is
50     * responsible to finalize the returned array if the password clone is no
51     * longer needed.
52     *
53     * @return the copied password.
54     * @since Android 1.0
55     */
56    public char[] getPassword() {
57        return password.clone();
58    }
59
60    /**
61     * Gets the username stored by this instance.
62     *
63     * @return the stored username.
64     * @since Android 1.0
65     */
66    public String getUserName() {
67        return userName;
68    }
69}
70