net.haque.security
Class MHAuthTKT

Object
  extended by MHAuthTKT

public class MHAuthTKT
extends Object

Implements AuthTKT ticket generation and validation. mod_auth_tkt http://www.openfusion.com.au/labs/mod_auth_tkt/ is a single-sign-on C module for Apache.

Version:
1.3 2011-11-02
Author:
Mohammad A. Haque [mhaque at haque.net]

Field Summary
static String COOKIE_INVALID
          Constant indicating cookie is invalid.
static String COOKIE_OK
          Constant indicating cookie is valid.
static String COOKIE_TIMEOUT
          Constant indicating cookie is valid but TKTAuthTimeout has passed.
 
Constructor Summary
MHAuthTKT(String authTKTConfigFilePath)
          Constructor using configuration file.
MHAuthTKT(String authTKTConfigFilePath, String ipAddress)
          Constructor using configuration file and IP Address.
MHAuthTKT(String authTKTConfigFilePath, String userId, String ipAddress)
          Constructor using configuration file, user id, and IP Address.
MHAuthTKT(String authTKTConfigFilePath, String userId, String ipAddress, String userData)
          Constructor using configuration file, user id, IP Address, and user data.
MHAuthTKT(String authTKTConfigFilePath, String userId, String ipAddress, String[] tokenList, String userData)
          Constructor using configuration file, user id, IP Address, token list, user data, and timestamp.
MHAuthTKT(String authTKTConfigFilePath, String userId, String ipAddress, String[] tokenList, String userData, long timestamp)
          Constructor using configuration file, user id, IP Address, token list, user data, and timestamp.
MHAuthTKT(String authTKTConfigFilePath, String userId, String ipAddress, String userData, long timestamp)
          Constructor using configuration file, user id, IP Address, user data, and timestamp.
 
Method Summary
 String getCookieValue()
          Generates a cookie value.
 String getIPAddress()
          Gets the IP Address currently set to be used in generating/validating tickets.
 String getTKTAuthConfigValue(String configKey)
          Gets the specified AuthTKT configuration option.
 String getUserId()
          Gets the user id currently set to be used in generating/validating tickets.
static HashMap<String,Object> parseCookie(String cookieValue)
          Parses a cookie value string into components.
 void setIPAddress(InetAddress ipAddress)
          Sets the IP Address to use in generating/validating tickets.
 void setIPAddress(String ipAddress)
          Sets the IP Address to use in generating/validating tickets.
 void setUserId(String userId)
          Sets the user id to use in generating/validating tickets.
 String validateCookie(String cookieValue)
          Validates the cookie value.
 
Methods inherited from class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

COOKIE_OK

public static final String COOKIE_OK
Constant indicating cookie is valid.


COOKIE_INVALID

public static final String COOKIE_INVALID
Constant indicating cookie is invalid.


COOKIE_TIMEOUT

public static final String COOKIE_TIMEOUT
Constant indicating cookie is valid but TKTAuthTimeout has passed.

Constructor Detail

MHAuthTKT

public MHAuthTKT(String authTKTConfigFilePath)
Constructor using configuration file. This will most commonly be used for validating cookies.

Parameters:
authTKTConfigFilePath - Path to file to be used for retrieving of AuthTKT options

MHAuthTKT

public MHAuthTKT(String authTKTConfigFilePath,
                 String ipAddress)
Constructor using configuration file and IP Address.

Parameters:
authTKTConfigFilePath - Path to file to be used for retrieving of AuthTKT options
ipAddress - IP Address to use in generating/validating ticket if TKTAuthIgnoreIP is off

MHAuthTKT

public MHAuthTKT(String authTKTConfigFilePath,
                 String userId,
                 String ipAddress)
Constructor using configuration file, user id, and IP Address.

Parameters:
authTKTConfigFilePath - Path to file to be used for retrieving of AuthTKT options
userId - user id to use in generating/validating ticket
ipAddress - IP Address to use in generating/validating ticket if TKTAuthIgnoreIP is off

MHAuthTKT

public MHAuthTKT(String authTKTConfigFilePath,
                 String userId,
                 String ipAddress,
                 String userData)
Constructor using configuration file, user id, IP Address, and user data. This will most commonly be used for generating cookies.

Parameters:
authTKTConfigFilePath - Path to file to be used for retrieving of AuthTKT options.
userId - user id to use in generating/validating ticket
ipAddress - IP Address to use in generating/validating ticket if TKTAuthIgnoreIP is off
userData - optional user data to use in generating/validating ticket

MHAuthTKT

public MHAuthTKT(String authTKTConfigFilePath,
                 String userId,
                 String ipAddress,
                 String userData,
                 long timestamp)
Constructor using configuration file, user id, IP Address, user data, and timestamp.

Parameters:
authTKTConfigFilePath - Path to file to be used for retrieving of AuthTKT options.
userId - user id to use in generating/validating ticket
ipAddress - IP Address to use in generating/validating ticket if TKTAuthIgnoreIP is off
userData - optional user data to use in generating/validating ticket
timestamp - timestamp in seconds since epoch to use in generating/validating ticket

MHAuthTKT

public MHAuthTKT(String authTKTConfigFilePath,
                 String userId,
                 String ipAddress,
                 String[] tokenList,
                 String userData)
Constructor using configuration file, user id, IP Address, token list, user data, and timestamp.

Parameters:
authTKTConfigFilePath - Path to file to be used for retrieving of AuthTKT options.
userId - user id to use in generating/validating ticket
ipAddress - IP Address to use in generating/validating ticket if TKTAuthIgnoreIP is off
tokenList - optional comma separated token list to use in generating/validating ticket
userData - optional user data to use in generating/validating ticket

MHAuthTKT

public MHAuthTKT(String authTKTConfigFilePath,
                 String userId,
                 String ipAddress,
                 String[] tokenList,
                 String userData,
                 long timestamp)
Constructor using configuration file, user id, IP Address, token list, user data, and timestamp.

Parameters:
authTKTConfigFilePath - Path to file to be used for retrieving of AuthTKT options
userId - user id to use in generating/validating ticket
ipAddress - IP Address to use in generating/validating ticket if TKTAuthIgnoreIP is off
tokenList - optional comma separated token list to use in generating/validating ticket
userData - optional user data to use in generating/validating ticket
timestamp - timestamp in seconds since epoch to use in generating/validating ticket
Method Detail

getCookieValue

public final String getCookieValue()
Generates a cookie value.

Returns:
AuthTKT cookie value

validateCookie

public final String validateCookie(String cookieValue)
Validates the cookie value. Cookie value can be URL and/or Base64 encoded.

Parameters:
cookieValue - Cookie to be validated. Value can be URL and/or Base64 encoded
Returns:
true if cookie value is a valid ticket and AuthTKTTimeout has not passed, false otherwise

parseCookie

public static final HashMap<String,Object> parseCookie(String cookieValue)
                                                throws IllegalArgumentException
Parses a cookie value string into components.

Parameters:
cookieValue - Cookie value to split into components
Returns:
HashMap of cookie components
Throws:
IllegalArgumentException

setUserId

public void setUserId(String userId)
Sets the user id to use in generating/validating tickets.

Parameters:
userId - user id to use in generating/validating ticket

getUserId

public String getUserId()
Gets the user id currently set to be used in generating/validating tickets.

Returns:
user id

setIPAddress

public void setIPAddress(String ipAddress)
Sets the IP Address to use in generating/validating tickets.

Parameters:
ipAddress - IP Address to use in generating/validating ticket if TKTAuthIgnoreIP is off

setIPAddress

public void setIPAddress(InetAddress ipAddress)
Sets the IP Address to use in generating/validating tickets.

Parameters:
ipAddress - IP Address to use in generating/validating ticket if TKTAuthIgnoreIP is off

getIPAddress

public String getIPAddress()
Gets the IP Address currently set to be used in generating/validating tickets.

Returns:
IP Address

getTKTAuthConfigValue

public String getTKTAuthConfigValue(String configKey)
Gets the specified AuthTKT configuration option.

Returns:
AuthTKT configuration option