尝试在Groovy中使用连接时看到错误

时间:2017-05-16 15:58:23

标签: groovy concatenation

我不能正确转义,以便将变量与字符串的其余部分连接起来。我检查了新字符串的输出,看起来都很好。请参阅下面的代码。

import javax.crypto.Mac
import javax.crypto.spec.SecretKeySpec
import java.security.InvalidKeyException


def emailAddress = '"test@test.com"'

def hmac_sha256(String secretKey, String data) {
    try {
        Mac mac = Mac.getInstance("HmacSHA256")
        SecretKeySpec secretKeySpec = new SecretKeySpec(secretKey.getBytes(), "HmacSHA256")
        mac.init(secretKeySpec)
        byte[] digest = mac.doFinal(data.getBytes())
        return digest
    } catch (InvalidKeyException e) {
        throw new RuntimeException("Invalid key exception while converting to HMac SHA256")
    }
}

secret='1234'

// this will fail
def hash = hmac_sha256(secret, '/sf/v3/Accounts/GetByUser{"username":' + emailAddress + ',"employeesonly":false,"singleplane":false,"clientId":"someID"}')

// this will pass
def hash = hmac_sha256(secret, '/sf/v3/Accounts/GetByUser{"username":"test@test.com","employeesonly":false,"singleplane":false,"clientId":"someID"}')

encodedData = hash.encodeHex().toString()
println encodedData

我在失败的那个上面收到错误,上面写着:

  

Caught:java.lang.ClassFormatError:类文件中的非法类名“test-groovy-temp $ hmac_sha256”test-groovy-temp $ hmac_sha256   java.lang.ClassFormatError:类文件中的非法类名“test-groovy-temp $ hmac_sha256”test-groovy-temp $ hmac_sha256       在test-groovy-temp.run(test-groovy-temp.groovy:21)

仅当我尝试使用连接时才会这样。

编辑删除拼写错误。

1 个答案:

答案 0 :(得分:0)

原来我的IDE / Compliler有问题。我在这个项目中使用IntelliJ IDEA,也许我没有正确配置它。正如饶提到的那样,我也看到它不是在其他地方重复,所以我应该做得好。

除非有人知道我的IDE /编译器有什么问题!