Skip to content

Commit 771bfe5

Browse files
leveretkaGodin
authored andcommitted
SONARKT-400 Migrate DataHashingCheck to kotlin-analysis-api
1 parent 6fb871c commit 771bfe5

File tree

1 file changed

+5
-8
lines changed

1 file changed

+5
-8
lines changed

sonar-kotlin-checks/src/main/java/org/sonarsource/kotlin/checks/DataHashingCheck.kt

Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@ package org.sonarsource.kotlin.checks
1818

1919
import org.jetbrains.kotlin.psi.KtCallExpression
2020
import org.jetbrains.kotlin.psi.KtExpression
21-
import org.jetbrains.kotlin.resolve.BindingContext
2221
import org.sonar.check.Rule
2322
import org.sonarsource.kotlin.api.checks.AbstractCheck
2423
import org.sonarsource.kotlin.api.checks.ArgumentMatcher
@@ -94,19 +93,17 @@ private val WEAK_METHOD_MATCHERS = listOf(
9493
private val DEPRECATED_SPRING_PASSWORD_ENCODER_METHODS = DEPRECATED_SPRING_PASSWORD_ENCODERS.map(::ConstructorMatcher).toList() +
9594
FunMatcher(qualifier = "org.springframework.security.crypto.password.NoOpPasswordEncoder", name = GET_INSTANCE)
9695

97-
@org.sonarsource.kotlin.api.frontend.K1only
9896
@Rule(key = "S4790")
9997
class DataHashingCheck : AbstractCheck() {
10098

10199
override fun visitCallExpression(expression: KtCallExpression, kotlinFileContext: KotlinFileContext) {
102-
val bindingContext = kotlinFileContext.bindingContext
103100
val calleeExpression = expression.calleeExpression ?: return
104101

105-
if (DEPRECATED_SPRING_PASSWORD_ENCODER_METHODS.any { it.matches(expression, bindingContext) }) {
102+
if (DEPRECATED_SPRING_PASSWORD_ENCODER_METHODS.any { it.matches(expression) }) {
106103
kotlinFileContext.reportIssue(calleeExpression, MESSAGE)
107-
} else if (WEAK_METHOD_MATCHERS.any { it.matches(expression, bindingContext) }) {
104+
} else if (WEAK_METHOD_MATCHERS.any { it.matches(expression) }) {
108105
val algorithm = ALGORITHM_BY_METHOD_NAME[calleeExpression.text]
109-
?: algorithm(expression.valueArguments.firstOrNull()?.getArgumentExpression(), bindingContext)
106+
?: algorithm(expression.valueArguments.firstOrNull()?.getArgumentExpression())
110107
algorithm?.let { kotlinFileContext.reportIssue(calleeExpression, MESSAGE) }
111108
}
112109
}
@@ -133,7 +130,7 @@ enum class InsecureAlgorithm {
133130
}
134131
}
135132

136-
private fun algorithm(invocationArgument: KtExpression?, bindingContext: BindingContext) =
137-
invocationArgument?.predictRuntimeStringValue(bindingContext)?.let { algorithmName ->
133+
private fun algorithm(invocationArgument: KtExpression?) =
134+
invocationArgument?.predictRuntimeStringValue()?.let { algorithmName ->
138135
InsecureAlgorithm.values().firstOrNull { it.match(algorithmName) }
139136
}

0 commit comments

Comments
 (0)