in src/main/java/org/apache/accumulo/access/Tokenizer.java [113:160]
AuthorizationToken nextAuthorization(boolean includeQuotes) {
if (isQuoteSymbol(expression[index])) {
int start = ++index;
while (index < expression.length && !isQuoteSymbol(expression[index])) {
if (isBackslashSymbol(expression[index])) {
index++;
if (index == expression.length || !isQuoteOrSlash(expression[index])) {
error("Invalid escaping within quotes", index - 1);
}
}
index++;
}
if (index == expression.length) {
error("Unclosed quote", start - 1);
}
if (start == index) {
error("Empty authorization token in quotes", start - 1);
}
authorizationToken.start = start;
authorizationToken.len = index - start;
if (includeQuotes) {
authorizationToken.start--;
authorizationToken.len += 2;
}
index++;
return authorizationToken;
} else if (isValidAuthChar(expression[index])) {
int start = index;
while (index < expression.length && isValidAuthChar(expression[index])) {
index++;
}
authorizationToken.start = start;
authorizationToken.len = index - start;
return authorizationToken;
} else {
error(
"Expected a '(' character or an authorization token instead saw '" + (char) peek() + "'");
return null;
}
}