mobile/android/thirdparty/ch/boye/httpclientandroidlib/auth/UsernamePasswordCredentials.java

Wed, 31 Dec 2014 07:22:50 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Wed, 31 Dec 2014 07:22:50 +0100
branch
TOR_BUG_3246
changeset 4
fc2d59ddac77
permissions
-rw-r--r--

Correct previous dual key logic pending first delivery installment.

     1 /*
     2  * ====================================================================
     3  *
     4  *  Licensed to the Apache Software Foundation (ASF) under one or more
     5  *  contributor license agreements.  See the NOTICE file distributed with
     6  *  this work for additional information regarding copyright ownership.
     7  *  The ASF licenses this file to You under the Apache License, Version 2.0
     8  *  (the "License"); you may not use this file except in compliance with
     9  *  the License.  You may obtain a copy of the License at
    10  *
    11  *      http://www.apache.org/licenses/LICENSE-2.0
    12  *
    13  *  Unless required by applicable law or agreed to in writing, software
    14  *  distributed under the License is distributed on an "AS IS" BASIS,
    15  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    16  *  See the License for the specific language governing permissions and
    17  *  limitations under the License.
    18  * ====================================================================
    19  *
    20  * This software consists of voluntary contributions made by many
    21  * individuals on behalf of the Apache Software Foundation.  For more
    22  * information on the Apache Software Foundation, please see
    23  * <http://www.apache.org/>.
    24  *
    25  */
    27 package ch.boye.httpclientandroidlib.auth;
    29 import java.io.Serializable;
    30 import java.security.Principal;
    32 import ch.boye.httpclientandroidlib.annotation.Immutable;
    34 import ch.boye.httpclientandroidlib.util.LangUtils;
    36 /**
    37  * Simple {@link Credentials} implementation based on a user name / password
    38  * pair.
    39  *
    40  * @since 4.0
    41  */
    42 @Immutable
    43 public class UsernamePasswordCredentials implements Credentials, Serializable {
    45     private static final long serialVersionUID = 243343858802739403L;
    47     private final BasicUserPrincipal principal;
    48     private final String password;
    50     /**
    51      * The constructor with the username and password combined string argument.
    52      *
    53      * @param usernamePassword the username:password formed string
    54      * @see #toString
    55      */
    56     public UsernamePasswordCredentials(String usernamePassword) {
    57         super();
    58         if (usernamePassword == null) {
    59             throw new IllegalArgumentException("Username:password string may not be null");
    60         }
    61         int atColon = usernamePassword.indexOf(':');
    62         if (atColon >= 0) {
    63             this.principal = new BasicUserPrincipal(usernamePassword.substring(0, atColon));
    64             this.password = usernamePassword.substring(atColon + 1);
    65         } else {
    66             this.principal = new BasicUserPrincipal(usernamePassword);
    67             this.password = null;
    68         }
    69     }
    72     /**
    73      * The constructor with the username and password arguments.
    74      *
    75      * @param userName the user name
    76      * @param password the password
    77      */
    78     public UsernamePasswordCredentials(String userName, String password) {
    79         super();
    80         if (userName == null) {
    81             throw new IllegalArgumentException("Username may not be null");
    82         }
    83         this.principal = new BasicUserPrincipal(userName);
    84         this.password = password;
    85     }
    87     public Principal getUserPrincipal() {
    88         return this.principal;
    89     }
    91     public String getUserName() {
    92         return this.principal.getName();
    93     }
    95     public String getPassword() {
    96         return password;
    97     }
    99     @Override
   100     public int hashCode() {
   101         return this.principal.hashCode();
   102     }
   104     @Override
   105     public boolean equals(Object o) {
   106         if (this == o) return true;
   107         if (o instanceof UsernamePasswordCredentials) {
   108             UsernamePasswordCredentials that = (UsernamePasswordCredentials) o;
   109             if (LangUtils.equals(this.principal, that.principal)) {
   110                 return true;
   111             }
   112         }
   113         return false;
   114     }
   116     @Override
   117     public String toString() {
   118         return this.principal.toString();
   119     }
   121 }

mercurial