我一直在尝试使用我的Mule流中的PGP加密器加密文本文件,但到目前为止还没有成功。我正在执行CloudHub Mule Runtime(2013年12月),因为我打算部署到CloudHub。
我已经使用GnuPG从我的客户端提供给我的.asc文件生成二进制公钥,并将生成的.gpg文件放在我的src / main / resources目录中。即使它看起来我不应该生成我自己的秘密gpg密钥环,并在我的应用程序中提供。
当我试图运行我的流程时,它一直给我一个NPE:
Root Exception stack trace:
java.lang.NullPointerException
at org.mule.module.pgp.KeyBasedEncryptionStrategy.checkKeyExpirity(KeyBasedEncryptionStrategy.java:100)
at org.mule.module.pgp.KeyBasedEncryptionStrategy.safeGetCryptInfo(KeyBasedEncryptionStrategy.java:87)
at org.mule.module.pgp.KeyBasedEncryptionStrategy.encrypt(KeyBasedEncryptionStrategy.java:54)
我不确定是什么原因造成的。有什么想法吗?
更新
我已更新为使用最新版本的AnyPoint Studio与3.5.1运行时并获得相同的错误,这次是第98行,这是同一行代码。
更新和我的解决方案:
我得到了它的工作。这是我的错误。我在Encryption元素中有一个主体,它覆盖了Global元素的主体。我已将此主体放在配置中以克服初始错误,告诉我它是必需的。删除这个主体似乎已经解决了我的所有问题。
另一个更新
我可以使用Mule博客文章中提供的pub和sec密钥成功加密,但是,尝试使用我从客户端提供的公钥(.asc文件)导出的gpg文件,但我再次获得NPE上文提到的。我已经按照我可以找到的所有步骤将他们的密钥导入我的密钥环并将其导出为二进制文件。我很难过。
最终更新
事实证明,使用Mule blog的密钥取得的成功让我获得了成功,而我并不完全理解。事实证明我没有正确设置 Principal 值。我根据我认为应该为秘密密钥环设置主体,当我发现它实际上是公钥环时。现在一切似乎都在起作用。