home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 1995 November / PCWK1195.iso / inne / win95 / sieciowe / hotja32.lzh / hotjava / classsrc / net / www / http / authenticationinfo.java next >
Text File  |  1995-08-11  |  2KB  |  78 lines

  1. /*
  2.  * @(#)AuthenticationInfo.java    1.4 95/02/16 Jonathan Payne
  3.  *
  4.  * Copyright (c) 1994 Sun Microsystems, Inc. All Rights Reserved.
  5.  *
  6.  * Permission to use, copy, modify, and distribute this software
  7.  * and its documentation for NON-COMMERCIAL purposes and without
  8.  * fee is hereby granted provided that this copyright notice
  9.  * appears in all copies. Please refer to the file "copyright.html"
  10.  * for further important copyright and licensing information.
  11.  *
  12.  * SUN MAKES NO REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF
  13.  * THE SOFTWARE, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED
  14.  * TO THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
  15.  * PARTICULAR PURPOSE, OR NON-INFRINGEMENT. SUN SHALL NOT BE LIABLE FOR
  16.  * ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR
  17.  * DISTRIBUTING THIS SOFTWARE OR ITS DERIVATIVES.
  18.  */
  19.  
  20. package net.www.http;
  21.  
  22. import net.www.html.URL;
  23. import java.util.Hashtable;
  24.  
  25. public class AuthenticationInfo {
  26.     String  host;
  27.     int        port;
  28.     String  realm;
  29.     String  auth;
  30.  
  31.     static Hashtable    cache = new Hashtable();
  32.  
  33.     public static void cacheInfo(AuthenticationInfo info) {
  34.     cache.put(info, info);
  35.     }
  36.  
  37.     public static void uncacheInfo(AuthenticationInfo info) {
  38.     cache.remove(info);
  39.     }
  40.  
  41.     public static AuthenticationInfo getAuth(URL url, String realm) {
  42.     AuthenticationInfo  info = (AuthenticationInfo)
  43.         cache.get(new AuthenticationInfo(url.host, url.getPort(), realm));
  44.  
  45.     return info;
  46.     }
  47.                                     
  48.     public AuthenticationInfo(String host, int port, String realm) {
  49.     this.host = host;
  50.     this.port = port;
  51.     this.realm = realm;
  52.     }
  53.  
  54.     public AuthenticationInfo(String host, int port, String realm, String auth) {
  55.     this(host, port, realm);
  56.     this.auth = auth;
  57.     cacheInfo(this);
  58.     }
  59.  
  60.     public int hashCode() {
  61.     return host.hashCode() ^ port ^ realm.hashCode();
  62.     }
  63.  
  64.     public boolean equals(Object o) {
  65.     if (o instanceof AuthenticationInfo) {
  66.         AuthenticationInfo    i = (AuthenticationInfo) o;
  67.  
  68.         return i.host.equals(host) && i.port == port &&
  69.         i.realm.equals(realm);
  70.     }
  71.     return false;
  72.     }
  73.  
  74.     public String toString() {
  75.     return "AuthenticationInfo[" + realm + "@" + host + ":" + port + "]";
  76.     }
  77. }
  78.