org.acplt.oncrpc
Class OncRpcClientAuthUnix

java.lang.Object
  extended by org.acplt.oncrpc.OncRpcClientAuth
      extended by org.acplt.oncrpc.OncRpcClientAuthUnix

public class OncRpcClientAuthUnix
extends OncRpcClientAuth

The OncRpcClientAuthUnix class handles protocol issues of ONC/RPC AUTH_UNIX (and thus AUTH_SHORT) authentication.


Field Summary
private  int gid
          Contains the group ID of caller supplied through credential.
private  int[] gids
          Contains a set of group IDs the caller belongs to, as supplied through credential.
private  java.lang.String machinename
          Contains the machine name of caller supplied through credential.
static int[] NO_GIDS
          Contains an empty array of group IDs.
private  byte[] shorthandCred
          Holds the "shorthand" credentials of type AUTH_SHORT optionally returned by an ONC/RPC server to be used on subsequent ONC/RPC calls.
private  int stamp
          Contains timestamp as supplied through credential.
private  int uid
          Contains the user ID of caller supplied through credential.
 
Constructor Summary
OncRpcClientAuthUnix(java.lang.String machinename, int uid, int gid)
          Constructs a new OncRpcClientAuthUnix authentication protocol handling object capable of handling AUTH_UNIX and AUTH_SHORT.
OncRpcClientAuthUnix(java.lang.String machinename, int uid, int gid, int[] gids)
          Constructs a new OncRpcClientAuthUnix authentication protocol handling object capable of handling AUTH_UNIX and AUTH_SHORT.
 
Method Summary
protected  boolean canRefreshCred()
          Indicates whether the ONC/RPC authentication credential can be refreshed.
 int getGid()
          Returns the group ID from the credential.
 int[] getGids()
          Returns the group IDs from the credential.
 java.lang.String getMachinename()
          Returns the machine name information from the credential.
 int getStamp()
          Returns the timestamp information from the credential.
 int getUid()
          Returns the user ID from the credential.
 void setGid(int gid)
          Sets the group ID in the credential.
 void setGids(int[] gids)
          Sets the group IDs in the credential.
 void setMachinename(java.lang.String machinename)
          Sets the machine name information in the credential.
 void setStamp(int stamp)
          Sets the timestamp information in the credential.
 void setUid(int uid)
          Sets the user ID in the credential.
protected  void xdrDecodeVerf(XdrDecodingStream xdr)
          Decodes ONC/RPC authentication information in form of a verifier when receiving an ONC/RPC reply message.
protected  void xdrEncodeCredVerf(XdrEncodingStream xdr)
          Encodes ONC/RPC authentication information in form of a credential and a verifier when sending an ONC/RPC call message.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

stamp

private int stamp
Contains timestamp as supplied through credential.


machinename

private java.lang.String machinename
Contains the machine name of caller supplied through credential.


uid

private int uid
Contains the user ID of caller supplied through credential.


gid

private int gid
Contains the group ID of caller supplied through credential.


gids

private int[] gids
Contains a set of group IDs the caller belongs to, as supplied through credential.


shorthandCred

private byte[] shorthandCred
Holds the "shorthand" credentials of type AUTH_SHORT optionally returned by an ONC/RPC server to be used on subsequent ONC/RPC calls.


NO_GIDS

public static final int[] NO_GIDS
Contains an empty array of group IDs.

Constructor Detail

OncRpcClientAuthUnix

public OncRpcClientAuthUnix(java.lang.String machinename,
                            int uid,
                            int gid,
                            int[] gids)
Constructs a new OncRpcClientAuthUnix authentication protocol handling object capable of handling AUTH_UNIX and AUTH_SHORT.

Please note that the credential information is typically only unique within a particular domain of machines, user IDs and group IDs.

Parameters:
machinename - Name of the caller's machine (like "ebankruptcy-dot-com", just for instance...).
uid - Caller's effective user ID.
gid - Caller's effective group ID.
gids - Array of group IDs the caller is a member of.

OncRpcClientAuthUnix

public OncRpcClientAuthUnix(java.lang.String machinename,
                            int uid,
                            int gid)
Constructs a new OncRpcClientAuthUnix authentication protocol handling object capable of handling AUTH_UNIX and AUTH_SHORT.

Please note that the credential information is typically only unique within a particular domain of machines, user IDs and group IDs.

Parameters:
machinename - Name of the caller's machine (like "ebankruptcy-dot-com", just for instance...).
uid - Caller's effective user ID.
gid - Caller's effective group ID.
Method Detail

xdrEncodeCredVerf

protected void xdrEncodeCredVerf(XdrEncodingStream xdr)
                          throws OncRpcException,
                                 java.io.IOException
Encodes ONC/RPC authentication information in form of a credential and a verifier when sending an ONC/RPC call message. The AUTH_UNIX authentication method only uses the credential but no verifier. If the ONC/RPC server sent a AUTH_SHORT "shorthand" credential together with the previous reply message, it is used instead of the original credential.

Specified by:
xdrEncodeCredVerf in class OncRpcClientAuth
Parameters:
xdr - XDR stream where to encode the credential and the verifier to.
Throws:
OncRpcException - if an ONC/RPC error occurs.
java.io.IOException - if an I/O error occurs.

xdrDecodeVerf

protected void xdrDecodeVerf(XdrDecodingStream xdr)
                      throws OncRpcException,
                             java.io.IOException
Decodes ONC/RPC authentication information in form of a verifier when receiving an ONC/RPC reply message.

Specified by:
xdrDecodeVerf in class OncRpcClientAuth
Parameters:
xdr - XDR stream from which to receive the verifier sent together with an ONC/RPC reply message.
Throws:
OncRpcAuthenticationException - if the received verifier is not kosher.
OncRpcException - if an ONC/RPC error occurs.
java.io.IOException - if an I/O error occurs.

canRefreshCred

protected boolean canRefreshCred()
Indicates whether the ONC/RPC authentication credential can be refreshed.

Specified by:
canRefreshCred in class OncRpcClientAuth
Returns:
true, if the credential can be refreshed

setStamp

public void setStamp(int stamp)
Sets the timestamp information in the credential.

Parameters:
stamp - New timestamp

getStamp

public int getStamp()
Returns the timestamp information from the credential.

Returns:
timestamp from credential.

setMachinename

public void setMachinename(java.lang.String machinename)
Sets the machine name information in the credential.

Parameters:
machinename - Machine name.

getMachinename

public java.lang.String getMachinename()
Returns the machine name information from the credential.

Returns:
machine name.

setUid

public void setUid(int uid)
Sets the user ID in the credential.

Parameters:
uid - User ID.

getUid

public int getUid()
Returns the user ID from the credential.

Returns:
user ID.

setGid

public void setGid(int gid)
Sets the group ID in the credential.

Parameters:
gid - Group ID.

getGid

public int getGid()
Returns the group ID from the credential.

Returns:
group ID.

setGids

public void setGids(int[] gids)
Sets the group IDs in the credential.

Parameters:
gids - Array of group IDs.

getGids

public int[] getGids()
Returns the group IDs from the credential.

Returns:
array of group IDs.