我已经安装了jasypt-encryption,因为我认为正确:
在我的BuildConfig.groovy插件关闭中:
compile ":jasypt-encryption:1.3.1"
runtime ":hibernate4:4.3.5.5"
所以我对相应的hibernate版本有正确的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频道寻求帮助,我也联系了官方维基指向的人 - dtanner。
根据他的建议,我从github下载了源代码并在test-jasypt文件夹中运行了grails test-app
,并且所有测试都通过了,因此,正如他所说,问题应该出现在我的项目中。同样在该测试项目中,GormEncryptedStringType导入工作正常。这两个项目都在grails 2.4.3上。
答案 0 :(得分: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适用于此项目,则将其与不起作用的代码进行比较,看看是否可以发现差异。