private static String stringLiteralValue(Object object) { if (object instanceof LiteralTree) { LiteralTree literal = (LiteralTree) object; return LiteralUtils.trimQuotes(literal.value()); } return null; } }
private static String stringLiteralValue(Object object) { if (object instanceof LiteralTree) { LiteralTree literal = (LiteralTree) object; return LiteralUtils.trimQuotes(literal.value()); } return null; } }
private void handleStringLiteral(LiteralTree tree) { String cleanedLiteral = LiteralUtils.trimQuotes(tree.value()); literalPatterns().map(pattern -> pattern.matcher(cleanedLiteral)) // contains "pwd=" or similar .filter(Matcher::find) .map(matcher -> matcher.group(1)) .findAny() .ifPresent(credential -> report(tree, credential)); }
private void handleStringLiteral(LiteralTree tree) { String cleanedLiteral = LiteralUtils.trimQuotes(tree.value()); literalPatterns().map(pattern -> pattern.matcher(cleanedLiteral)) // contains "pwd=" or similar .filter(Matcher::find) .map(matcher -> matcher.group(1)) .findAny() .ifPresent(credential -> report(tree, credential)); }
private static boolean isInappropriateRegexpStringLiteral(ExpressionTree firstArg) { if (firstArg.is(Tree.Kind.STRING_LITERAL)) { String regexp = LiteralUtils.trimQuotes(((LiteralTree) firstArg).value()); return regexp.matches(INAPPROPRIATE_REGEXPS); } return false; }
public static boolean hasValue(Tree tree, String expectedValue) { if (!tree.is(Kind.STRING_LITERAL)) { return false; } String actualValue = trimQuotes(((LiteralTree) tree).value()); return expectedValue.equals(actualValue); }
private static boolean isInappropriateRegexpStringLiteral(ExpressionTree firstArg) { if (firstArg.is(Tree.Kind.STRING_LITERAL)) { String regexp = LiteralUtils.trimQuotes(((LiteralTree) firstArg).value()); return regexp.matches(INAPPROPRIATE_REGEXPS); } return false; }
public static boolean isEmptyString(Tree tree) { return tree.is(Tree.Kind.STRING_LITERAL) && trimQuotes(((LiteralTree) tree).value()).isEmpty(); }
private static boolean isHardcodedURI(ExpressionTree expr) { ExpressionTree newExpr = ExpressionUtils.skipParentheses(expr); if (!newExpr.is(Tree.Kind.STRING_LITERAL)) { return false; } String stringLiteral = LiteralUtils.trimQuotes(((LiteralTree) newExpr).value()); return URI_PATTERN.matcher(stringLiteral).find(); }
private static boolean setValueIsSameAsDefaultValue(@Nullable Object defaultValue, Tree valueSet) { if (valueSet.is(Tree.Kind.STRING_LITERAL)) { return LiteralUtils.trimQuotes(((LiteralTree) valueSet).value()).equals(defaultValue); } else if (valueSet.is(Tree.Kind.INT_LITERAL)) { Integer intLiteralValue = LiteralUtils.intLiteralValue((LiteralTree) valueSet); return intLiteralValue != null && intLiteralValue.equals(defaultValue); } return false; }
private static boolean setValueIsSameAsDefaultValue(@Nullable Object defaultValue, Tree valueSet) { if (valueSet.is(Tree.Kind.STRING_LITERAL)) { return LiteralUtils.trimQuotes(((LiteralTree) valueSet).value()).equals(defaultValue); } else if (valueSet.is(Tree.Kind.INT_LITERAL)) { Integer intLiteralValue = LiteralUtils.intLiteralValue((LiteralTree) valueSet); return intLiteralValue != null && intLiteralValue.equals(defaultValue); } return false; }
private void checkIssue(ExpressionTree argumentForReport, LiteralTree argument) { String[] transformationElements = LiteralUtils.trimQuotes(argument.value()).split("/"); if (transformationElements.length > 0 && isExcludedAlgorithm(transformationElements[0])) { reportIssue(argumentForReport, "Use the recommended AES (Advanced Encryption Standard) instead."); } }
private void checkIssue(ExpressionTree argumentForReport, LiteralTree argument) { String[] transformationElements = LiteralUtils.trimQuotes(argument.value()).split("/"); if (transformationElements.length > 0 && isExcludedAlgorithm(transformationElements[0])) { reportIssue(argumentForReport, "Use the recommended AES (Advanced Encryption Standard) instead."); } }
private static boolean isNotNullOrWhitespace(Tree tree) { return !tree.is(Tree.Kind.NULL_LITERAL) && !(tree.is(Tree.Kind.STRING_LITERAL) && StringUtils.isBlank(LiteralUtils.trimQuotes(((LiteralTree) tree).value()))); } }
private static List<String> getValueFromExpression(ExpressionTree expression) { List<String> args = Lists.newArrayList(); if (expression.is(Tree.Kind.STRING_LITERAL)) { args.add(LiteralUtils.trimQuotes(((LiteralTree) expression).value())); } else if (expression.is(Tree.Kind.NEW_ARRAY)) { for (ExpressionTree initializer : ((NewArrayTree) expression).initializers()) { args.addAll(getValueFromExpression(initializer)); } } return args; } }
@Override public void visitNode(Tree tree) { LiteralTree lt = (LiteralTree) tree; if (isRSA(LiteralUtils.trimQuotes(lt.value()))) { reportIssue(lt, "Use an RSA algorithm with an OAEP (Optimal Asymmetric Encryption Padding)."); } }
@Override public void visitNode(Tree tree) { LiteralTree lt = (LiteralTree) tree; if (isRSA(LiteralUtils.trimQuotes(lt.value()))) { addIssue(lt, "Use an RSA algorithm with an OAEP (Optimal Asymmetric Encryption Padding)."); } }
@Override public void visitLiteral(LiteralTree tree) { if (tree.is(Tree.Kind.STRING_LITERAL)) { String value = LiteralUtils.trimQuotes(tree.value()); extractIPV4(value).map(Optional::of).orElseGet(() -> extractIPV6(value)) .filter(ip -> !isLoopbackAddress(ip) && !isNonRoutableAddress(ip) && !isBroadcastAddress(ip)) .ifPresent(ip -> context.reportIssue(this, tree, MESSAGE)); } }
@Override public void visitLiteral(LiteralTree tree) { if (tree.is(Tree.Kind.STRING_LITERAL)) { String value = LiteralUtils.trimQuotes(tree.value()); extractIPV4(value).map(Optional::of).orElseGet(() -> extractIPV6(value)) .filter(ip -> !isLoopbackAddress(ip) && !isNonRoutableAddress(ip) && !isBroadcastAddress(ip)) .ifPresent(ip -> context.reportIssue(this, tree, MESSAGE)); } }
@Override protected void onMethodInvocationFound(MethodInvocationTree mit) { ExpressionTree arg = mit.arguments().get(0); if (arg.is(Tree.Kind.STRING_LITERAL)) { String argValue = LiteralUtils.trimQuotes(((LiteralTree) arg).value()); if (argValue.length() == 1 || isEscapedChar(argValue)) { reportIssue(arg, "Put single-quotes around '" + argValue + "' to use the faster \"" + mit.symbol().name() + "(char)\" method."); } } }