com.ibm.di.parser
Class HTTPParser

java.lang.Object
  extended by com.ibm.di.parser.ParserImpl
      extended by com.ibm.di.parser.HTTPParser
All Implemented Interfaces:
ParserInterface, VersionInfoInterface

public class HTTPParser
extends ParserImpl

The HTTP Parser interprets a byte stream according to the HTTP specification. This Parser is used by the HTTP Client Connector and by the HTTP Server Connector.


Field Summary
static String ENCODING_LATIN_1
          (ISO Latin 1) Character Encoding.
static String HTTP_FILE_NOT_FOUND
          String containing the status code and reason phrase for unsuccessful action when the server has not found anything matching the Request-URI.
static String HTTP_FORBIDDEN
          String containing the status code and reason phrase for unsuccessful action because the request requires user authentication.
static String HTTP_OK
          String containing the status code and reason phrase for successfully received, understood and accepted action.
static String HTTP_REDIR
          String containing the status code and reason phrase for redirection when the requested resource resides temporarily under a different URI.
 
Fields inherited from class com.ibm.di.parser.ParserImpl
_debug, myConfiguration
 
Constructor Summary
HTTPParser()
           
 
Method Summary
 String[] getNames(Entry e)
          Returns property/attribute names in specified entry.
 Object getProp(Entry e, String prop)
          Return a property/attribute value of specified entry.
 String getVersion()
          Version information.
 void httpAuthenticationRequest(String realm)
          Send a Forbidden response requesting authentication.
 void httpForbidden()
          Send a HTTP response message with error code 401 (Forbidden) into the current output writer.
 void initParser()
          Perform initialization of parser.
 void parseAuthentication(Entry entry)
          Decode the username and password specified in the Authorization header of the request HTTP message.
 int readByte()
          Reads one byte of the current input reader.
 Entry readEntry()
          Reads entry from the current input reader.
 String readLine()
          Reads line from the current input reader.
 void sendAuthorization(Entry entry, BufferedWriter out)
          Send client authorization.
 void setClientMode(boolean clientMode)
          Sets the client mode.
 void setProp(Entry e, String prop, Object value)
          Sets a property/attribute's value of specified entry.
 void setUseProperties(boolean useProps)
          Sets the user properties.
 void writeEntry(Entry entry)
          Writes an entry to the current output writer.
 
Methods inherited from class com.ibm.di.parser.ParserImpl
closeParser, debug, debugMode, flush, getClassInstance, getContext, getDebug, getInputStream, getOutputStream, getParam, getParser, getReader, getWriter, isDeltaSupported, logmsg, querySchema, registerScriptBeans, setConfiguration, setContext, setDebug, setInputStream, setInputStream, setInputStream, setOutputStream, setOutputStream, setParam, setParser
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

HTTP_OK

public static final String HTTP_OK
String containing the status code and reason phrase for successfully received, understood and accepted action.

See Also:
Constant Field Values

HTTP_FILE_NOT_FOUND

public static final String HTTP_FILE_NOT_FOUND
String containing the status code and reason phrase for unsuccessful action when the server has not found anything matching the Request-URI.

See Also:
Constant Field Values

HTTP_FORBIDDEN

public static final String HTTP_FORBIDDEN
String containing the status code and reason phrase for unsuccessful action because the request requires user authentication.

See Also:
Constant Field Values

HTTP_REDIR

public static final String HTTP_REDIR
String containing the status code and reason phrase for redirection when the requested resource resides temporarily under a different URI.

See Also:
Constant Field Values

ENCODING_LATIN_1

public static final String ENCODING_LATIN_1
(ISO Latin 1) Character Encoding.

See Also:
Constant Field Values
Constructor Detail

HTTPParser

public HTTPParser()
Method Detail

initParser

public void initParser()
                throws Exception
Perform initialization of parser.

Specified by:
initParser in interface ParserInterface
Overrides:
initParser in class ParserImpl
Throws:
Exception - if an error occurs.

setUseProperties

public void setUseProperties(boolean useProps)
Sets the user properties.

Parameters:
useProps - the new properties.

setClientMode

public void setClientMode(boolean clientMode)
Sets the client mode.

Parameters:
clientMode - the new client mode.

readByte

public int readByte()
             throws Exception
Reads one byte of the current input reader.

Returns:
the read byte
Throws:
Exception - If an I/O error occurs

readLine

public String readLine()
                throws Exception
Reads line from the current input reader.

Returns:
the read line
Throws:
Exception - If an I/O error occurs

readEntry

public Entry readEntry()
                throws Exception
Reads entry from the current input reader. Depending on whether the parameter headersAsProperties is checked, read headers are represented as attributes or properties.

Returns:
the read entry
Throws:
Exception - If an I/O error occurs

writeEntry

public void writeEntry(Entry entry)
                throws Exception
Writes an entry to the current output writer.

Parameters:
entry - the entry to be written.
Throws:
Exception -
  • if http.url is missing
  • if an I/O error occurs
  • if base64 encoding fails

  • parseAuthentication

    public void parseAuthentication(Entry entry)
                             throws Exception
    Decode the username and password specified in the Authorization header of the request HTTP message. The character encoding used is 'iso-8859-1'.

    Parameters:
    entry - entry containing the authorization header.
    Throws:
    Exception - if the charset conversion failed

    setProp

    public void setProp(Entry e,
                        String prop,
                        Object value)
    Sets a property/attribute's value of specified entry. The result depends on whether headersAsProperties parameter is checked.

    Parameters:
    e - the entry
    prop - The name of the property/attribute.
    value - The value of the property/attribute.

    getProp

    public Object getProp(Entry e,
                          String prop)
    Return a property/attribute value of specified entry. The result depends on whether headersAsProperties parameter is checked.

    Parameters:
    e - the entry
    prop - The name of the property/attribute.
    Returns:
    The property/attribute's value or null if such does not exists.

    getNames

    public String[] getNames(Entry e)
    Returns property/attribute names in specified entry. The result depends on whether headersAsProperties parameter is checked.

    Parameters:
    e - the entry
    Returns:
    Array of strings with property/attribute names

    httpForbidden

    public void httpForbidden()
                       throws IOException
    Send a HTTP response message with error code 401 (Forbidden) into the current output writer.

    Throws:
    IOException - If an I/O error occurs.

    httpAuthenticationRequest

    public void httpAuthenticationRequest(String realm)
                                   throws IOException
    Send a Forbidden response requesting authentication.

    This method sends response message with error code 401 (Forbidden) when a request is made to protected resources. The response message includes a WWW-Authenticate header specifying a scheme and a realm.

    Parameters:
    realm - The realm is string that defines a protection space (a set of protected resources) within the same host.
    Throws:
    IOException - If an I/O error occurs.

    sendAuthorization

    public void sendAuthorization(Entry entry,
                                  BufferedWriter out)
                           throws Exception
    Send client authorization.

    Parameters:
    entry - entry containing HTTP message attributes.
    out - the output writer.
    Throws:
    Exception - If an I/O error occurs or if base64 encoding fails.

    getVersion

    public String getVersion()
    Version information.

    Returns:
    version information