Class StringUtilities
java.lang.Object
org.apache.mina.proxy.utils.StringUtilities
StringUtilities.java - Various methods to handle strings.
- Since:
- MINA 2.0.0-M3
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic voidAdds 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 StringCopy the directive from the source map to the destination map, if it's value isn't null.private static voidProcesses directive/value pairs from the digest-challenge and fill out the provided map.static StringgetDirectiveValue(Map<String, String> directivesMap, String directive, boolean mandatory) A directive is a parameter of the digest authentication process.static StringReturns 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 CRLFparseDirectives(byte[] buf) Parses digest-challenge string, extracting each token and value(s).private static intskipLws(byte[] buf, int start) Skip all linear white spacesstatic 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.
-
Constructor Details
-
StringUtilities
private StringUtilities()
-
-
Method Details
-
getDirectiveValue
public static String getDirectiveValue(Map<String, String> directivesMap, String directive, boolean mandatory) throws AuthenticationExceptionA 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
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
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
-
extractDirective
private static void extractDirective(Map<String, String> map, String key, String value) throws SaslExceptionProcesses directive/value pairs from the digest-challenge and fill out the provided map.- Parameters:
key- A non-null String challenge token name.value- A non-null String token value.- Throws:
SaslException- if either the key or the value is null or if the key already has a value.
-
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
-
skipLws
private static int skipLws(byte[] buf, int start) Skip all linear white spaces- Parameters:
buf- the buf which is being scanned for lwsstart- the offset to start at- Returns:
- the next position in buf which isn't a lws character
-
stringTo8859_1
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
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.
-