我已经正确安装了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 channel 寻求帮助,也联系了官方Wiki指向的人-丹纳。
按照他的建议,我从github下载了源代码,并在test-jasypt文件夹中运行了
grails test-app
,并且所有测试都通过了,因此,正如他所说,问题应该出在我的项目中。同样在该测试项目中,GormEncryptedStringType导入也可以。这两个项目都在grails 2.4.3上。 最佳答案
还有两个想法:
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对于该项目工作正常,则将其与不起作用的代码进行比较,看看是否可以发现差异。