我们目前有4个内部服务器由nginx服务器负载平衡。我们所有客户当前通过Https连接并与我们的服务通信(由负载均衡器提供)。情况并非总是如此。因此,我们在maven设置中有一些创造性的身份验证代码,其中包括在构建时生成密钥对,以便服务器可以通过公钥发送用户加密其凭据并将其发送回服务器。
问题在于我讨厌这个加载antrun过程的一面,这使得很难使用其他工具来对付这个项目,它似乎总是在最不方便的时刻爬上来咬我。
由于其他服务仍在使用需要密钥对的旧身份验证方法,因此我无法将其删除并将其向前移动。至少我现在必须支持它。因为我的服务是负载平衡的,所以我还必须在平衡器后面的所有服务器之间保持密钥对同步。
对于整个漫长的过程,我想做类似的事情
KeyPair pair = createPredictableKeypairFromThisString("mySecret!");
有关如何在保持向后兼容性的同时做到这一点的任何建议?我可以说,真正实现这一目标的唯一方法是伪造SecureRandom对象以吐出可预测的字节。我宁愿不必做那样的事情。
答案 0 :(得分:3)
只需生成KeyPair,即任何KeyPair。
将其序列化为ByteArrayOutputStream。
将生成的字节数组转换为BASE64 blob-o-text。
将blob-o-text写入您的代码。
在运行时,将BASE64转换为字节数组。
从ByteArrayInputStream中读取KeyPair,并返回KeyPair。
你也可以创建一个带常量的静态字节数组,所以做你喜欢的事情。