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 void
addValueToHeader(Map<String,List<String>> headers, String key, String value, boolean singleValued)
Adds an header to the provided map of headers.static void
copyDirective(Map<String,String> directives, StringBuilder sb, String directive)
Copy the directive to theStringBuilder
if not null.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.static String
getDirectiveValue(Map<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 ? 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 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.
-
-
-
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 theStringBuilder
if 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:
- 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:
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 anIllegalArgumentException
is 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.
-
-