mirror of
https://gcc.gnu.org/git/gcc.git
synced 2024-11-30 07:14:09 +08:00
Makefile.am: Add new classes
* Makefile.am: Add new classes (core_java_source_files): CharSequence (ordinary_java_source_files): Authenticator, PasswordAuthentication * Makefile.in: regenerate * gcj/javaprims.h: ditto * java/lang/CharSequence: new class from Classpath * java/lang/String.java: implements CharSequence (subSequence (int,int)): new method * java/lang/SubString.java: implements CharSequence (subSequence (int,int)): new method remerge comments with Classpath * java/net/Authenticator.java: new class from Classpath * java/net/PasswordAuthentication.java: ditto From-SVN: r45969
This commit is contained in:
parent
da5c0f6ef5
commit
627a8b878e
@ -1,3 +1,19 @@
|
||||
2001-10-01 Mark Wielaard <mark@klomp.org>
|
||||
|
||||
* Makefile.am: Add new classes
|
||||
(core_java_source_files): CharSequence
|
||||
(ordinary_java_source_files): Authenticator, PasswordAuthentication
|
||||
* Makefile.in: regenerate
|
||||
* gcj/javaprims.h: ditto
|
||||
* java/lang/CharSequence: new class from Classpath
|
||||
* java/lang/String.java: implements CharSequence
|
||||
(subSequence (int,int)): new method
|
||||
* java/lang/SubString.java: implements CharSequence
|
||||
(subSequence (int,int)): new method
|
||||
remerge comments with Classpath
|
||||
* java/net/Authenticator.java: new class from Classpath
|
||||
* java/net/PasswordAuthentication.java: ditto
|
||||
|
||||
2001-10-01 Tom Tromey <tromey@redhat.com>
|
||||
|
||||
* gcj/javaprims.h: Rebuilt class list.
|
||||
|
@ -914,6 +914,7 @@ java/lang/ArrayStoreException.java \
|
||||
java/lang/Boolean.java \
|
||||
java/lang/Byte.java \
|
||||
java/lang/Character.java \
|
||||
java/lang/CharSequence.java \
|
||||
java/lang/ClassCastException.java \
|
||||
java/lang/ClassCircularityError.java \
|
||||
java/lang/ClassFormatError.java \
|
||||
@ -1179,6 +1180,7 @@ java/lang/reflect/Modifier.java \
|
||||
java/lang/reflect/ReflectPermission.java \
|
||||
java/math/BigDecimal.java \
|
||||
java/math/BigInteger.java \
|
||||
java/net/Authenticator.java \
|
||||
java/net/BindException.java \
|
||||
java/net/ConnectException.java \
|
||||
java/net/ContentHandler.java \
|
||||
@ -1194,6 +1196,7 @@ java/net/MalformedURLException.java \
|
||||
java/net/MulticastSocket.java \
|
||||
java/net/NetPermission.java \
|
||||
java/net/NoRouteToHostException.java \
|
||||
java/net/PasswordAuthentication.java \
|
||||
java/net/PlainDatagramSocketImpl.java \
|
||||
java/net/PlainSocketImpl.java \
|
||||
java/net/ProtocolException.java \
|
||||
|
@ -123,38 +123,26 @@ libgcj_basedir = @libgcj_basedir@
|
||||
mkinstalldirs = @mkinstalldirs@
|
||||
|
||||
AUTOMAKE_OPTIONS = foreign
|
||||
@TESTSUBDIR_TRUE@SUBDIRS = \
|
||||
@TESTSUBDIR_TRUE@$(DIRLTDL) testsuite gcj include
|
||||
@TESTSUBDIR_FALSE@SUBDIRS = \
|
||||
@TESTSUBDIR_FALSE@$(DIRLTDL) gcj include
|
||||
@USE_LIBDIR_TRUE@toolexeclibdir = \
|
||||
@USE_LIBDIR_TRUE@$(libdir)$(MULTISUBDIR)
|
||||
@USE_LIBDIR_FALSE@toolexeclibdir = \
|
||||
@USE_LIBDIR_FALSE@$(toolexecdir)/lib$(MULTISUBDIR)
|
||||
@USE_LIBDIR_FALSE@toolexecdir = \
|
||||
@USE_LIBDIR_FALSE@$(exec_prefix)/$(target_alias)
|
||||
@XLIB_AWT_TRUE@cond_x_ltlibrary = \
|
||||
@XLIB_AWT_TRUE@libgcjx.la
|
||||
@XLIB_AWT_FALSE@cond_x_ltlibrary = \
|
||||
@TESTSUBDIR_TRUE@SUBDIRS = @TESTSUBDIR_TRUE@$(DIRLTDL) testsuite gcj include
|
||||
@TESTSUBDIR_FALSE@SUBDIRS = @TESTSUBDIR_FALSE@$(DIRLTDL) gcj include
|
||||
@USE_LIBDIR_TRUE@toolexeclibdir = @USE_LIBDIR_TRUE@$(libdir)$(MULTISUBDIR)
|
||||
@USE_LIBDIR_FALSE@toolexeclibdir = @USE_LIBDIR_FALSE@$(toolexecdir)/lib$(MULTISUBDIR)
|
||||
@USE_LIBDIR_FALSE@toolexecdir = @USE_LIBDIR_FALSE@$(exec_prefix)/$(target_alias)
|
||||
@XLIB_AWT_TRUE@cond_x_ltlibrary = @XLIB_AWT_TRUE@libgcjx.la
|
||||
@XLIB_AWT_FALSE@cond_x_ltlibrary =
|
||||
|
||||
toolexeclib_LTLIBRARIES = libgcj.la $(cond_x_ltlibrary)
|
||||
toolexeclib_DATA = libgcj.spec
|
||||
data_DATA = libgcj.jar
|
||||
|
||||
@NATIVE_TRUE@bin_PROGRAMS = \
|
||||
@NATIVE_TRUE@jv-convert gij rmic rmiregistry
|
||||
@NATIVE_TRUE@bin_PROGRAMS = @NATIVE_TRUE@jv-convert gij rmic rmiregistry
|
||||
|
||||
bin_SCRIPTS = addr2name.awk
|
||||
@CANADIAN_TRUE@@NULL_TARGET_TRUE@ZIP = \
|
||||
@CANADIAN_TRUE@@NULL_TARGET_TRUE@$(MULTIBUILDTOP)../$(COMPPATH)/fastjar/jar$(EXEEXT)
|
||||
@CANADIAN_TRUE@@NULL_TARGET_FALSE@ZIP = \
|
||||
@CANADIAN_TRUE@@NULL_TARGET_FALSE@jar
|
||||
@CANADIAN_FALSE@ZIP = \
|
||||
@CANADIAN_FALSE@$(MULTIBUILDTOP)../$(COMPPATH)/fastjar/jar$(EXEEXT)
|
||||
@CANADIAN_TRUE@GCJH = \
|
||||
@CANADIAN_TRUE@gcjh
|
||||
@CANADIAN_FALSE@GCJH = \
|
||||
@CANADIAN_FALSE@$(MULTIBUILDTOP)../$(COMPPATH)/gcc/gcjh$(EXEEXT)
|
||||
@CANADIAN_TRUE@@NULL_TARGET_TRUE@ZIP = @CANADIAN_TRUE@@NULL_TARGET_TRUE@$(MULTIBUILDTOP)../$(COMPPATH)/fastjar/jar$(EXEEXT)
|
||||
@CANADIAN_TRUE@@NULL_TARGET_FALSE@ZIP = @CANADIAN_TRUE@@NULL_TARGET_FALSE@jar
|
||||
@CANADIAN_FALSE@ZIP = @CANADIAN_FALSE@$(MULTIBUILDTOP)../$(COMPPATH)/fastjar/jar$(EXEEXT)
|
||||
@CANADIAN_TRUE@GCJH = @CANADIAN_TRUE@gcjh
|
||||
@CANADIAN_FALSE@GCJH = @CANADIAN_FALSE@$(MULTIBUILDTOP)../$(COMPPATH)/gcc/gcjh$(EXEEXT)
|
||||
|
||||
GCJ_WITH_FLAGS = $(GCJ) --encoding=UTF-8
|
||||
|
||||
@ -174,10 +162,8 @@ AM_CXXFLAGS = -fno-rtti -fnon-call-exceptions \
|
||||
@LIBGCJ_CXXFLAGS@ @X_CFLAGS@ $(WARNINGS) -D_GNU_SOURCE \
|
||||
-DPREFIX="\"$(prefix)\""
|
||||
|
||||
@USING_GCC_TRUE@AM_CFLAGS = \
|
||||
@USING_GCC_TRUE@@LIBGCJ_CFLAGS@ $(WARNINGS)
|
||||
@USING_GCC_FALSE@AM_CFLAGS = \
|
||||
@USING_GCC_FALSE@@LIBGCJ_CFLAGS@
|
||||
@USING_GCC_TRUE@AM_CFLAGS = @USING_GCC_TRUE@@LIBGCJ_CFLAGS@ $(WARNINGS)
|
||||
@USING_GCC_FALSE@AM_CFLAGS = @USING_GCC_FALSE@@LIBGCJ_CFLAGS@
|
||||
|
||||
JCFLAGS = -g
|
||||
JC1FLAGS = @LIBGCJ_JAVAFLAGS@ $(GCJFLAGS)
|
||||
@ -246,8 +232,7 @@ extra_headers = java/lang/Object.h java/lang/Class.h
|
||||
|
||||
NM = nm
|
||||
|
||||
@NATIVE_TRUE@@MAINTAINER_MODE_TRUE@noinst_PROGRAMS = \
|
||||
@NATIVE_TRUE@@MAINTAINER_MODE_TRUE@gen-from-JIS
|
||||
@NATIVE_TRUE@@MAINTAINER_MODE_TRUE@noinst_PROGRAMS = @NATIVE_TRUE@@MAINTAINER_MODE_TRUE@gen-from-JIS
|
||||
|
||||
CONVERT_DIR = gnu/gcj/convert
|
||||
|
||||
@ -660,6 +645,7 @@ java/lang/ArrayStoreException.java \
|
||||
java/lang/Boolean.java \
|
||||
java/lang/Byte.java \
|
||||
java/lang/Character.java \
|
||||
java/lang/CharSequence.java \
|
||||
java/lang/ClassCastException.java \
|
||||
java/lang/ClassCircularityError.java \
|
||||
java/lang/ClassFormatError.java \
|
||||
@ -920,6 +906,7 @@ java/lang/reflect/Modifier.java \
|
||||
java/lang/reflect/ReflectPermission.java \
|
||||
java/math/BigDecimal.java \
|
||||
java/math/BigInteger.java \
|
||||
java/net/Authenticator.java \
|
||||
java/net/BindException.java \
|
||||
java/net/ConnectException.java \
|
||||
java/net/ContentHandler.java \
|
||||
@ -935,6 +922,7 @@ java/net/MalformedURLException.java \
|
||||
java/net/MulticastSocket.java \
|
||||
java/net/NetPermission.java \
|
||||
java/net/NoRouteToHostException.java \
|
||||
java/net/PasswordAuthentication.java \
|
||||
java/net/PlainDatagramSocketImpl.java \
|
||||
java/net/PlainSocketImpl.java \
|
||||
java/net/ProtocolException.java \
|
||||
@ -1785,8 +1773,9 @@ DEP_FILES = .deps/$(srcdir)/$(CONVERT_DIR)/gen-from-JIS.P \
|
||||
.deps/java/lang/ArithmeticException.P \
|
||||
.deps/java/lang/ArrayIndexOutOfBoundsException.P \
|
||||
.deps/java/lang/ArrayStoreException.P .deps/java/lang/Boolean.P \
|
||||
.deps/java/lang/Byte.P .deps/java/lang/Character.P \
|
||||
.deps/java/lang/Class.P .deps/java/lang/ClassCastException.P \
|
||||
.deps/java/lang/Byte.P .deps/java/lang/CharSequence.P \
|
||||
.deps/java/lang/Character.P .deps/java/lang/Class.P \
|
||||
.deps/java/lang/ClassCastException.P \
|
||||
.deps/java/lang/ClassCircularityError.P \
|
||||
.deps/java/lang/ClassFormatError.P .deps/java/lang/ClassLoader.P \
|
||||
.deps/java/lang/ClassNotFoundException.P \
|
||||
@ -1873,14 +1862,15 @@ DEP_FILES = .deps/$(srcdir)/$(CONVERT_DIR)/gen-from-JIS.P \
|
||||
.deps/java/lang/w_log.P .deps/java/lang/w_pow.P \
|
||||
.deps/java/lang/w_remainder.P .deps/java/lang/w_sqrt.P \
|
||||
.deps/java/math/BigDecimal.P .deps/java/math/BigInteger.P \
|
||||
.deps/java/net/BindException.P .deps/java/net/ConnectException.P \
|
||||
.deps/java/net/ContentHandler.P .deps/java/net/ContentHandlerFactory.P \
|
||||
.deps/java/net/DatagramPacket.P .deps/java/net/DatagramSocket.P \
|
||||
.deps/java/net/DatagramSocketImpl.P .deps/java/net/FileNameMap.P \
|
||||
.deps/java/net/HttpURLConnection.P .deps/java/net/InetAddress.P \
|
||||
.deps/java/net/JarURLConnection.P \
|
||||
.deps/java/net/Authenticator.P .deps/java/net/BindException.P \
|
||||
.deps/java/net/ConnectException.P .deps/java/net/ContentHandler.P \
|
||||
.deps/java/net/ContentHandlerFactory.P .deps/java/net/DatagramPacket.P \
|
||||
.deps/java/net/DatagramSocket.P .deps/java/net/DatagramSocketImpl.P \
|
||||
.deps/java/net/FileNameMap.P .deps/java/net/HttpURLConnection.P \
|
||||
.deps/java/net/InetAddress.P .deps/java/net/JarURLConnection.P \
|
||||
.deps/java/net/MalformedURLException.P .deps/java/net/MulticastSocket.P \
|
||||
.deps/java/net/NetPermission.P .deps/java/net/NoRouteToHostException.P \
|
||||
.deps/java/net/PasswordAuthentication.P \
|
||||
.deps/java/net/PlainDatagramSocketImpl.P \
|
||||
.deps/java/net/PlainSocketImpl.P .deps/java/net/ProtocolException.P \
|
||||
.deps/java/net/ServerSocket.P .deps/java/net/Socket.P \
|
||||
@ -2493,7 +2483,7 @@ distdir: $(DISTFILES)
|
||||
@for file in $(DISTFILES); do \
|
||||
d=$(srcdir); \
|
||||
if test -d $$d/$$file; then \
|
||||
cp -pr $$/$$file $(distdir)/$$file; \
|
||||
cp -pr $$d/$$file $(distdir)/$$file; \
|
||||
else \
|
||||
test -f $(distdir)/$$file \
|
||||
|| ln $$d/$$file $(distdir)/$$file 2> /dev/null \
|
||||
|
@ -134,6 +134,7 @@ extern "Java"
|
||||
class Boolean;
|
||||
class Byte;
|
||||
class CPlusPlusDemangler;
|
||||
class CharSequence;
|
||||
class Character;
|
||||
class Character$Subset;
|
||||
class Character$UnicodeBlock;
|
||||
|
80
libjava/java/lang/CharSequence.java
Normal file
80
libjava/java/lang/CharSequence.java
Normal file
@ -0,0 +1,80 @@
|
||||
/* java.lang.CharSequence -- Anything that has an indexed sequence of chars
|
||||
Copyright (C) 2001 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GNU Classpath.
|
||||
|
||||
GNU Classpath is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2, or (at your option)
|
||||
any later version.
|
||||
|
||||
GNU Classpath is distributed in the hope that it will be useful, but
|
||||
WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with GNU Classpath; see the file COPYING. If not, write to the
|
||||
Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
|
||||
02111-1307 USA.
|
||||
|
||||
As a special exception, if you link this library with other files to
|
||||
produce an executable, this library does not by itself cause the
|
||||
resulting executable to be covered by the GNU General Public License.
|
||||
This exception does not however invalidate any other reasons why the
|
||||
executable file might be covered by the GNU General Public License. */
|
||||
|
||||
|
||||
package java.lang;
|
||||
|
||||
/**
|
||||
* General functions on a sequence of chars. This interface is implemented
|
||||
* by <code>String</code>, <code>StringBuffer</code> and
|
||||
* <code>CharBuffer</code> to give a uniform way to get chars at a certain
|
||||
* index, the number of characters in the sequence and a subrange of the
|
||||
* chars. Indexes start at 0 and the last index is <code>length()-1</code>.
|
||||
* <p>
|
||||
* Even when classes implement this interface they are not always
|
||||
* exchangeble because they might implement their compare, equals or hash
|
||||
* function differently. This means that in general one should not use a
|
||||
* <code>CharSequence</code> as keys in collections since two sequences
|
||||
* with the same chars at the same indexes with the same length might not
|
||||
* have the same hash code, be equal or be comparable since the are
|
||||
* represented by different classes.
|
||||
*
|
||||
* @author Mark Wielaard (mark@klomp.org)
|
||||
*
|
||||
* @since 1.4
|
||||
*/
|
||||
|
||||
public interface CharSequence {
|
||||
|
||||
/**
|
||||
* Returns the character at the given index.
|
||||
*
|
||||
* @exception IndexOutOfBoundsException when <code>i < 0</code> or
|
||||
* <code>i > length()-1</code>.
|
||||
*/
|
||||
char charAt(int i);
|
||||
|
||||
/**
|
||||
* Returns the length of the sequence.
|
||||
*/
|
||||
int length();
|
||||
|
||||
/**
|
||||
* Returns a new <code>CharSequence</char> of the indicated range.
|
||||
*
|
||||
* @exception IndexOutOfBoundsException when <code>begin < 0</code>,
|
||||
* <code>end < 0</code>, <code>end > length()</code> or
|
||||
* <code>begin > end</code>
|
||||
*/
|
||||
CharSequence subSequence(int begin, int end);
|
||||
|
||||
/**
|
||||
* Returns the complete <code>CharSequence</code> as a <code>String</code>.
|
||||
* Classes that implement this interface should return a <code>String</code>
|
||||
* which contains only the characters in the sequence in the correct order.
|
||||
*/
|
||||
String toString();
|
||||
}
|
@ -22,7 +22,7 @@ import java.util.Locale;
|
||||
* Status: Complete to 1.3.
|
||||
*/
|
||||
|
||||
public final class String implements Serializable, Comparable
|
||||
public final class String implements Serializable, Comparable, CharSequence
|
||||
{
|
||||
private Object data;
|
||||
private int boffset; // Note this is a byte offset - don't use in Java code!
|
||||
@ -297,6 +297,28 @@ public final class String implements Serializable, Comparable
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates a substring of this String, starting at a specified index
|
||||
* and ending at one character before a specified index.
|
||||
* <p>
|
||||
* To implement <code>CharSequence</code>.
|
||||
* Calls <code>substring(beginIndex, endIndex)</code>.
|
||||
*
|
||||
* @param beginIndex index to start substring (base 0)
|
||||
* @param endIndex index after the last character to be
|
||||
* copied into the substring
|
||||
*
|
||||
* @return new String which is a substring of this String
|
||||
*
|
||||
* @exception StringIndexOutOfBoundsException
|
||||
* if (beginIndex < 0 || endIndex > this.length() || beginIndex > endIndex)
|
||||
*/
|
||||
public CharSequence subSequence(int beginIndex, int endIndex)
|
||||
throws IndexOutOfBoundsException
|
||||
{
|
||||
return substring(beginIndex, endIndex);
|
||||
}
|
||||
|
||||
public String substring (int beginIndex)
|
||||
{
|
||||
return substring (beginIndex, count);
|
||||
|
@ -1,21 +1,32 @@
|
||||
// StringBuffer.java - Growable strings.
|
||||
/* StringBuffer.java -- Growable strings
|
||||
Copyright (C) 1998, 1999, 2000, 2001 Free Software Foundation, Inc.
|
||||
|
||||
/* Copyright (C) 1998, 1999, 2000 Free Software Foundation
|
||||
This file is part of GNU Classpath.
|
||||
|
||||
This file is part of libgcj.
|
||||
GNU Classpath is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2, or (at your option)
|
||||
any later version.
|
||||
|
||||
GNU Classpath is distributed in the hope that it will be useful, but
|
||||
WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
General Public License for more details.
|
||||
|
||||
This software is copyrighted work licensed under the terms of the
|
||||
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
|
||||
details. */
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with GNU Classpath; see the file COPYING. If not, write to the
|
||||
Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
|
||||
02111-1307 USA.
|
||||
|
||||
As a special exception, if you link this library with other files to
|
||||
produce an executable, this library does not by itself cause the
|
||||
resulting executable to be covered by the GNU General Public License.
|
||||
This exception does not however invalidate any other reasons why the
|
||||
executable file might be covered by the GNU General Public License. */
|
||||
|
||||
package java.lang;
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* @author Tom Tromey <tromey@cygnus.com>
|
||||
* @date October 23, 1998.
|
||||
*/
|
||||
|
||||
/* Written using "Java Class Libraries", 2nd edition, ISBN 0-201-31002-3
|
||||
* Updated using online JDK 1.2 docs.
|
||||
* Believed complete and correct to JDK 1.2.
|
||||
@ -57,7 +68,7 @@ import java.io.Serializable;
|
||||
* @author Tom Tromey
|
||||
* @see java.lang.String
|
||||
*/
|
||||
public final class StringBuffer implements Serializable
|
||||
public final class StringBuffer implements Serializable, CharSequence
|
||||
{
|
||||
/** Append the <code>String</code> value of the argument to this <code>StringBuffer</code>.
|
||||
* Uses <code>String.valueOf()</code> to convert to
|
||||
@ -198,7 +209,7 @@ public final class StringBuffer implements Serializable
|
||||
* @param index the index of the character to get, starting at 0.
|
||||
* @return the character at the specified index.
|
||||
* @exception IndexOutOfBoundsException if the desired character index
|
||||
* is not between 0 and length() - 1 (inclusive).
|
||||
* is negative or greater then length() - 1.
|
||||
*/
|
||||
public synchronized char charAt (int index)
|
||||
{
|
||||
@ -653,6 +664,28 @@ public final class StringBuffer implements Serializable
|
||||
return new String (value, beginIndex, endIndex - beginIndex);
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates a substring of this StringBuffer, starting at a specified index
|
||||
* and ending at one character before a specified index.
|
||||
* <p>
|
||||
* To implement <code>CharSequence</code>.
|
||||
* Calls <code>substring(beginIndex, endIndex)</code>.
|
||||
*
|
||||
* @param beginIndex index to start substring (base 0)
|
||||
* @param endIndex index after the last character to be
|
||||
* copied into the substring
|
||||
*
|
||||
* @return new String which is a substring of this StringBuffer
|
||||
*
|
||||
* @exception StringIndexOutOfBoundsException
|
||||
* if (beginIndex < 0 || endIndex > this.length() || beginIndex > endIndex)
|
||||
*/
|
||||
public CharSequence subSequence (int beginIndex, int endIndex)
|
||||
{
|
||||
return substring(beginIndex, endIndex);
|
||||
}
|
||||
|
||||
|
||||
/** Convert this <code>StringBuffer</code> to a <code>String</code>.
|
||||
* @return the characters in this StringBuffer
|
||||
*/
|
||||
|
269
libjava/java/net/Authenticator.java
Normal file
269
libjava/java/net/Authenticator.java
Normal file
@ -0,0 +1,269 @@
|
||||
/* Authenticator.java -- Abstract class for obtaining authentication info
|
||||
Copyright (C) 1998,2000 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GNU Classpath.
|
||||
|
||||
GNU Classpath is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2, or (at your option)
|
||||
any later version.
|
||||
|
||||
GNU Classpath is distributed in the hope that it will be useful, but
|
||||
WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with GNU Classpath; see the file COPYING. If not, write to the
|
||||
Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
|
||||
02111-1307 USA.
|
||||
|
||||
As a special exception, if you link this library with other files to
|
||||
produce an executable, this library does not by itself cause the
|
||||
resulting executable to be covered by the GNU General Public License.
|
||||
This exception does not however invalidate any other reasons why the
|
||||
executable file might be covered by the GNU General Public License. */
|
||||
|
||||
package java.net;
|
||||
|
||||
/**
|
||||
* Sometimes a network operation (such as hitting a password protected
|
||||
* web site) will require authentication information in the form of a
|
||||
* username and password. This abstract class provides a model for
|
||||
* obtaining that information.
|
||||
* <p>
|
||||
* To make use of this feature, a programmer must create a subclass of
|
||||
* Authenticator that knows how to obtain the necessary info. An example
|
||||
* would be a class that popped up a dialog box to prompt the user.
|
||||
* After creating an instance of that subclass, the static setDefault
|
||||
* method of this class is called to set up that instance as the object
|
||||
* to use on subsequent calls to obtain authorization.
|
||||
*
|
||||
* @since 1.2
|
||||
*
|
||||
* @author Aaron M. Renn (arenn@urbanophile.com)
|
||||
*/
|
||||
public abstract class Authenticator
|
||||
{
|
||||
|
||||
/*************************************************************************/
|
||||
|
||||
/*
|
||||
* Class Variables
|
||||
*/
|
||||
|
||||
/**
|
||||
* This is the default Authenticator object to use for password requests
|
||||
*/
|
||||
private static Authenticator default_authenticator;
|
||||
|
||||
/*************************************************************************/
|
||||
|
||||
/*
|
||||
* Instance Variables
|
||||
*/
|
||||
|
||||
/**
|
||||
* InternetAddress of the site requesting authentication
|
||||
*/
|
||||
private InetAddress addr;
|
||||
|
||||
/**
|
||||
* The port number of the site requesting authentication
|
||||
*/
|
||||
private int port;
|
||||
|
||||
/**
|
||||
* The protocol name of the site requesting authentication
|
||||
*/
|
||||
private String protocol;
|
||||
|
||||
/**
|
||||
* The prompt to display to the user when requesting authentication info
|
||||
*/
|
||||
private String prompt;
|
||||
|
||||
/**
|
||||
* The authentication scheme in use
|
||||
*/
|
||||
private String scheme;
|
||||
|
||||
/*************************************************************************/
|
||||
|
||||
/*
|
||||
* Class Methods
|
||||
*/
|
||||
|
||||
/**
|
||||
* This method sets the default <code>Authenticator</code> object (an
|
||||
* instance of a
|
||||
* subclass of <code>Authenticator</code>) to use when prompting the user for
|
||||
* information. Note that this method checks to see if the caller is
|
||||
* allowed to set this value (the "setDefaultAuthenticator" permission)
|
||||
* and throws a <code>SecurityException</code> if it is not.
|
||||
*
|
||||
* @param def_auth The new default <code>Authenticator</code> object to use
|
||||
*
|
||||
* @exception SecurityException If the caller does not have permission
|
||||
* to perform this operation
|
||||
*/
|
||||
public static void
|
||||
setDefault(Authenticator def_auth)
|
||||
{
|
||||
SecurityManager sm = System.getSecurityManager();
|
||||
if (sm != null)
|
||||
sm.checkPermission(new NetPermission("setDefaultAuthenticator"));
|
||||
|
||||
default_authenticator = def_auth;
|
||||
}
|
||||
|
||||
/*************************************************************************/
|
||||
|
||||
/**
|
||||
* This method is called whenever a username and password for a given
|
||||
* network operation is required. First, a security check is made to see
|
||||
* if the caller has the "requestPasswordAuthentication"
|
||||
* permission. If not, the method thows an exception. If there is no
|
||||
* default <code>Authenticator</code> object, the method then returns
|
||||
* <code>null</code>. Otherwise, the default authenticators's instance
|
||||
* variables are initialized and it's <code>getPasswordAuthentication</code>
|
||||
* method is called to get the actual authentication information to return.
|
||||
*
|
||||
* @param addr The address requesting authentication
|
||||
* @param port The port requesting authentication
|
||||
* @param protocol The protocol requesting authentication
|
||||
* @param prompt The prompt to display to the user when requesting
|
||||
authentication info
|
||||
* @param scheme The authentication scheme in use
|
||||
*
|
||||
* @return A <code>PasswordAuthentication</code> object with the user's
|
||||
* authentication info.
|
||||
*
|
||||
* @exception SecurityException If the caller does not have permission to
|
||||
* perform this operation
|
||||
*/
|
||||
public static PasswordAuthentication
|
||||
requestPasswordAuthentication(InetAddress addr, int port, String protocol,
|
||||
String prompt, String scheme)
|
||||
{
|
||||
SecurityManager sm = System.getSecurityManager();
|
||||
if (sm != null)
|
||||
sm.checkPermission(new NetPermission("requestPasswordAuthentication"));
|
||||
|
||||
if (default_authenticator == null)
|
||||
return(null);
|
||||
|
||||
default_authenticator.addr = addr;
|
||||
default_authenticator.port = port;
|
||||
default_authenticator.protocol = protocol;
|
||||
default_authenticator.prompt = prompt;
|
||||
default_authenticator.scheme = scheme;
|
||||
|
||||
return(default_authenticator.getPasswordAuthentication());
|
||||
}
|
||||
|
||||
/*************************************************************************/
|
||||
|
||||
/*
|
||||
* Constructors
|
||||
*/
|
||||
|
||||
/**
|
||||
* Default, no-argument constructor for subclasses to call.
|
||||
*/
|
||||
public
|
||||
Authenticator()
|
||||
{
|
||||
}
|
||||
|
||||
/*************************************************************************/
|
||||
|
||||
/*
|
||||
* Instance Methods
|
||||
*/
|
||||
|
||||
/**
|
||||
* This method returns the address of the site that is requesting
|
||||
* authentication.
|
||||
*
|
||||
* @return The requesting site
|
||||
*/
|
||||
protected final InetAddress
|
||||
getRequestingSite()
|
||||
{
|
||||
return(addr);
|
||||
}
|
||||
|
||||
/*************************************************************************/
|
||||
|
||||
/**
|
||||
* This method returns the port of the site that is requesting
|
||||
* authentication.
|
||||
*
|
||||
* @return The requesting port
|
||||
*/
|
||||
protected final int
|
||||
getRequestingPort()
|
||||
{
|
||||
return(port);
|
||||
}
|
||||
|
||||
/*************************************************************************/
|
||||
|
||||
/**
|
||||
* This method returns the requesting protocol of the operation that is
|
||||
* requesting authentication
|
||||
*
|
||||
* @return The requesting protocol
|
||||
*/
|
||||
protected final String
|
||||
getRequestingProtocol()
|
||||
{
|
||||
return(protocol);
|
||||
}
|
||||
|
||||
/*************************************************************************/
|
||||
|
||||
/**
|
||||
* Returns the prompt that should be used when requesting authentication
|
||||
* information from the user
|
||||
*
|
||||
* @return The user prompt
|
||||
*/
|
||||
protected final String
|
||||
getRequestingPrompt()
|
||||
{
|
||||
return(prompt);
|
||||
}
|
||||
|
||||
/*************************************************************************/
|
||||
|
||||
/**
|
||||
* This method returns the authentication scheme in use
|
||||
*
|
||||
* @return The authentication scheme
|
||||
*/
|
||||
protected final String
|
||||
getRequestingScheme()
|
||||
{
|
||||
return(scheme);
|
||||
}
|
||||
|
||||
/*************************************************************************/
|
||||
|
||||
/**
|
||||
* This method is called whenever a request for authentication is made. It
|
||||
* can call the other getXXX methods to determine the information relevant
|
||||
* to this request. Subclasses should override this method, which returns
|
||||
* <code>null</code> by default.
|
||||
*
|
||||
* @return The PasswordAuthentication information
|
||||
*/
|
||||
protected PasswordAuthentication
|
||||
getPasswordAuthentication()
|
||||
{
|
||||
return(null);
|
||||
}
|
||||
|
||||
} // class Authenticator
|
||||
|
104
libjava/java/net/PasswordAuthentication.java
Normal file
104
libjava/java/net/PasswordAuthentication.java
Normal file
@ -0,0 +1,104 @@
|
||||
/* PasswordAuthentication.java -- Container class for username/password pairs
|
||||
Copyright (C) 1998,2000 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GNU Classpath.
|
||||
|
||||
GNU Classpath is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2, or (at your option)
|
||||
any later version.
|
||||
|
||||
GNU Classpath is distributed in the hope that it will be useful, but
|
||||
WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with GNU Classpath; see the file COPYING. If not, write to the
|
||||
Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
|
||||
02111-1307 USA.
|
||||
|
||||
As a special exception, if you link this library with other files to
|
||||
produce an executable, this library does not by itself cause the
|
||||
resulting executable to be covered by the GNU General Public License.
|
||||
This exception does not however invalidate any other reasons why the
|
||||
executable file might be covered by the GNU General Public License. */
|
||||
|
||||
package java.net;
|
||||
|
||||
/**
|
||||
* This class serves a container for username/password pairs.
|
||||
*
|
||||
* @author Aaron M. Renn (arenn@urbanophile.com)
|
||||
*/
|
||||
public final class PasswordAuthentication
|
||||
{
|
||||
|
||||
/*************************************************************************/
|
||||
|
||||
/*
|
||||
* Instance Variables
|
||||
*/
|
||||
|
||||
/**
|
||||
* The username
|
||||
*/
|
||||
private String username;
|
||||
|
||||
/**
|
||||
* The password
|
||||
*/
|
||||
private char[] password;
|
||||
|
||||
/*************************************************************************/
|
||||
|
||||
/*
|
||||
* Constructors
|
||||
*/
|
||||
|
||||
/**
|
||||
* Creates a new PasswordAuthentication object from the specified username
|
||||
* and password.
|
||||
*
|
||||
* @param username The username for this object
|
||||
* @param password The password for this object
|
||||
*/
|
||||
public
|
||||
PasswordAuthentication(String username, char[] password)
|
||||
{
|
||||
this.username = username;
|
||||
this.password = password;
|
||||
}
|
||||
|
||||
/*************************************************************************/
|
||||
|
||||
/*
|
||||
* Instance Methods
|
||||
*/
|
||||
|
||||
/**
|
||||
* Returns the username associated with this object
|
||||
*
|
||||
* @return The username
|
||||
*/
|
||||
public String
|
||||
getUserName()
|
||||
{
|
||||
return(username);
|
||||
}
|
||||
|
||||
/*************************************************************************/
|
||||
|
||||
/**
|
||||
* Returns the password associated with this object
|
||||
*
|
||||
* @return The password
|
||||
*/
|
||||
public char[]
|
||||
getPassword()
|
||||
{
|
||||
return(password);
|
||||
}
|
||||
|
||||
} // class PasswordAuthentication
|
||||
|
Loading…
Reference in New Issue
Block a user