【问题标题】:grails jasypt-encryption: cannot resolve import GormEncryptedStringTypegrails jasypt-encryption:无法解析导入 GormEncryptedStringType
【发布时间】:2014-12-10 08:22:35
【问题描述】:

我已经安装了 jasypt-encryption,我相信是正确的:

在我的 BuildConfig.groovy 插件闭包中:

compile ":jasypt-encryption:1.3.1"
runtime ":hibernate4:4.3.5.5" 

所以我有对应休眠版本的正确 jasypt 版本。

在我的 Config.groovy 中:

jasypt {
algorithm = "PBEWITHSHA256AND256BITAES-CBC-BC"
providerName = "BC"
password = "test"
keyObtentionIterations = 1000
}

在我需要加密的域类之一中,有一个Groovy:unable to resolve class com.bloomhealthco.jasypt.GormEncryptedStringType 错误:

import com.bloomhealthco.jasypt.*                       //ok
import com.bloomhealthco.jasypt.GormEncryptedStringType //error

所以,jasypt 导入正常,因为第一行导入正常,但似乎 grails 从哪里导入,没有像 GormEncryptedStringType 这样的类。是这样吗?

我完全迷路了,我在 grails irc 频道寻求帮助,我还联系了官方 wiki 指向的人 - dtanner。

按照他的建议,我从 github 下载了源代码并在 test-jasypt 文件夹中运行 grails test-app,并且所有测试都通过了,因此,正如他所说,问题应该出在我的项目中。同样在该测试项目中,GormEncryptedStringType 导入工作正常。这两个项目都在 grails 2.4.3 上。

【问题讨论】:

    标签: grails jasypt


    【解决方案1】:

    更多想法:
    1. 在您的项目上执行grails clean-all,然后再次尝试编译/运行。这将清除比 clean 更多的资源,并重新获取依赖项。如果这可行,那么您的目标目录中有一些过时的类。
    2. 我创建了一个示例项目,它像普通项目一样引用 jasypt-encryption 插件(它不是像插件源中的测试项目那样的相对路径)。该项目位于:https://github.com/dtanner/sample-jasypt-1-3-1-project
    我对项目所做的更改是:
    - 在 BuildConfig.groovy
    中添加了插件引用 - 在 Config.groovy 中添加加密配置
    - 添加了 com.foo.Bar 类
    - 添加了 com.foo.BarTests 集成测试

    如果该项目的 BarTest 工作正常,则将其与不工作的代码进行比较,看看您是否能发现差异。

    【讨论】:

    • 发生了最奇怪的事情 - 我导入了您的项目,并且随着导入完成,错误也停止显示。无论如何,非常感谢您的帮助!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-04
    • 2013-10-04
    • 1970-01-01
    • 2016-03-12
    • 2018-08-07
    • 2012-11-06
    相关资源
    最近更新 更多