// // $Id: Credentials.java,v 1.7 2001/10/11 04:07:53 mdb Exp $ package com.threerings.presents.net; import java.io.IOException; import java.io.DataInputStream; import java.io.DataOutputStream; import com.threerings.presents.io.TypedObject; import com.threerings.presents.io.TypedObjectFactory; /** * Credentials are supplied by the client implementation and sent along to * the server during the authentication process. To provide support for a * variety of authentication methods, the credentials class is meant to be * subclassed for the particular method (ie. password, auth digest, etc.) * in use in a given system. * *
All credentials must provide a username as the username is used to * associate network connections with sessions. * *
All derived classes should provide a no argument constructor so
* that they can be instantiated prior to reconstruction from a data input
* stream.
*/
public abstract class Credentials implements TypedObject
{
/**
* All credential derived classes should base their typed object code
* on this base value.
*/
public static final short TYPE_BASE = 300;
/**
* Constructs a credentials instance with the specified username.
*/
public Credentials (String username)
{
_username = username;
}
/**
* Constructs a blank credentials instance in preparation for
* unserializing from the network.
*/
public Credentials ()
{
}
public String getUsername ()
{
return _username;
}
/**
* Derived classes should override this function to write their fields
* out to the supplied data output stream. They must be sure
* to first call super.writeTo().
*/
public void writeTo (DataOutputStream out)
throws IOException
{
out.writeUTF(_username);
}
/**
* Derived classes should override this function to read their fields
* from the supplied data input stream. They must be sure to
* first call super.readFrom().
*/
public void readFrom (DataInputStream in)
throws IOException
{
_username = in.readUTF();
}
public String toString ()
{
return "[username=" + _username + "]";
}
protected String _username;
}