Package org.apache.mina.proxy.utils
Class StringUtilities
- java.lang.Object
-
- 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
-
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static voidaddValueToHeader(Map<String,List<String>> headers, String key, String value, boolean singleValued)Adds an header to the provided map of headers.static voidcopyDirective(Map<String,String> directives, StringBuilder sb, String directive)Copy the directive to theStringBuilderif not null.static StringcopyDirective(Map<String,String> src, Map<String,String> dst, String directive)Copy the directive from the source map to the destination map, if it's value isn't null.static StringgetDirectiveValue(Map<String,String> directivesMap, String directive, boolean mandatory)A directive is a parameter of the digest authentication process.static StringgetSingleValuedHeader(Map<String,List<String>> headers, String key)Returns the value of the named header.static booleanisLws(byte b)Is character a linear white space ? LWS = [CRLF] 1*( SP | HT ) Note that we're checking individual bytes instead of CRLFstatic Map<String,String>parseDirectives(byte[] buf)Parses digest-challenge string, extracting each token and value(s).static StringstringTo8859_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.
-
-
-
Method Detail
-
getDirectiveValue
public static String getDirectiveValue(Map<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 anAuthenticationException.- Parameters:
directivesMap- the directive's mapdirective- the name of the directive we want to retrievemandatory- 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(Map<String,String> directives, StringBuilder sb, String directive)
Copy the directive to theStringBuilderif not null. (A directive is a parameter of the digest authentication process.)- Parameters:
directives- the directives mapsb- the output bufferdirective- the directive name to look for
-
copyDirective
public static String copyDirective(Map<String,String> src, Map<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 mapdst- the destination mapdirective- the directive name- Returns:
- the value of the copied directive
-
parseDirectives
public static Map<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.- Returns:
- A Map containing the aprsed directives
- Throws:
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:
trueif 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:
UnsupportedEncodingException- if we weren't able to decode using the ISO 8859_1 encoding
-
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 anIllegalArgumentExceptionis thrown- Parameters:
headers- the http headers mapkey- 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 mapkey- the name of the new header to addvalue- the value of the added headersingleValued- 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.
-
-