'Jenkins string interpolation with credentials

I'm coding this function in Jenkins to query Artifactory:

def curlDockerArtifact(URL, registryName, moduleName, tag, token) {
 def controlURI = "${URL}/artifactory/api/storage/${registryName}/${moduleName}/${tag}"
 def result = sh(script: """
                         curl -I -H \'Authorization: Bearer $token\' \
                         https://$controlURI -o /dev/null -w \'%{http_code}\' -s
                         """, returnStdout: true)
}

But I get this warning which I'm tying to avoid.

Warning: A secret was passed to "sh" using Groovy string interpolation, which is insecure.

I tried using single quotes but the variables don't get correctly interpreted from Groovy. Any idea how to fix/refactor the code?



Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source