org.apache.mina.proxy.utils
Class StringUtilities

java.lang.Object
  extended by org.apache.mina.proxy.utils.StringUtilities

public class StringUtilities
extends Object

StringUtilities.java - Various methods to handle strings.

Since:
MINA 2.0.0-M3
Author:
Apache MINA Project

Constructor Summary
StringUtilities()
           
 
Method Summary
static void addValueToHeader(Map<String,List<String>> headers, String key, String value, boolean singleValued)
          Adds an header to the provided map of headers.
static String copyDirective(HashMap<String,String> src, HashMap<String,String> dst, String directive)
          Copy the directive from the source map to the destination map, if it's value isn't null.
static void copyDirective(HashMap<String,String> directives, StringBuilder sb, String directive)
          Copy the directive to the StringBuilder if not null.
static String getDirectiveValue(HashMap<String,String> directivesMap, String directive, boolean mandatory)
          A directive is a parameter of the digest authentication process.
static String getSingleValuedHeader(Map<String,List<String>> headers, String key)
          Returns the value of the named header.
static boolean isLws(byte b)
          Is character a linear white space ?
static HashMap<String,String> parseDirectives(byte[] buf)
          Parses digest-challenge string, extracting each token and value(s).
static String stringTo8859_1(String str)
          Used to convert username-value, passwd or realm to 8859_1 encoding if all chars in string are within the 8859_1 (Latin 1) encoding range.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

StringUtilities

public StringUtilities()
Method Detail

getDirectiveValue

public static String getDirectiveValue(HashMap<String,String> directivesMap,
                                       String directive,
                                       boolean mandatory)
                                throws AuthenticationException
A directive is a parameter of the digest authentication process. Returns the value of a directive from the map. If mandatory is true and the value is null, then it throws an AuthenticationException.

Parameters:
directivesMap - the directive's map
directive - the name of the directive we want to retrieve
mandatory - is the directive mandatory
Returns:
the mandatory value as a String
Throws:
AuthenticationException - if mandatory is true and if directivesMap.get(directive) == null

copyDirective

public static void copyDirective(HashMap<String,String> directives,
                                 StringBuilder sb,
                                 String directive)
Copy the directive to the StringBuilder if not null. (A directive is a parameter of the digest authentication process.)

Parameters:
directives - the directives map
sb - the output buffer
directive - the directive name to look for

copyDirective

public static String copyDirective(HashMap<String,String> src,
                                   HashMap<String,String> dst,
                                   String directive)
Copy the directive from the source map to the destination map, if it's value isn't null. (A directive is a parameter of the digest authentication process.)

Parameters:
src - the source map
dst - the destination map
directive - the directive name
Returns:
the value of the copied directive

parseDirectives

public static HashMap<String,String> parseDirectives(byte[] buf)
                                              throws SaslException
Parses digest-challenge string, extracting each token and value(s). Each token is a directive.

Parameters:
buf - A non-null digest-challenge string.
Throws:
UnsupportedEncodingException
SaslException - if the String cannot be parsed according to RFC 2831

isLws

public static boolean isLws(byte b)
Is character a linear white space ? LWS = [CRLF] 1*( SP | HT ) Note that we're checking individual bytes instead of CRLF

Parameters:
b - the byte to check
Returns:
true if it's a linear white space

stringTo8859_1

public static String stringTo8859_1(String str)
                             throws UnsupportedEncodingException
Used to convert username-value, passwd or realm to 8859_1 encoding if all chars in string are within the 8859_1 (Latin 1) encoding range.

Parameters:
str - a non-null String
Returns:
a non-null String containing the 8859_1 encoded string
Throws:
AuthenticationException
UnsupportedEncodingException

getSingleValuedHeader

public static String getSingleValuedHeader(Map<String,List<String>> headers,
                                           String key)
Returns the value of the named header. If it has multiple values then an IllegalArgumentException is thrown

Parameters:
headers - the http headers map
key - the key of the header
Returns:
the value of the http header

addValueToHeader

public static void addValueToHeader(Map<String,List<String>> headers,
                                    String key,
                                    String value,
                                    boolean singleValued)
Adds an header to the provided map of headers.

Parameters:
headers - the http headers map
key - the name of the new header to add
value - the value of the added header
singleValued - if true and the map already contains one value then it is replaced by the new value. Otherwise it simply adds a new value to this multi-valued header.


Copyright © 2004-2012 Apache MINA Project. All Rights Reserved.