在http://jasypt.org/webconfiguration.html的Jasypt配置文档中,陈述如下:
这个servlet的URL应该由webapp管理员调用 部署时间,用于设置所有PBE加密器的密码......
以下内容在文档中并不清楚:
1)通过网络应用输入的密码存储在哪里?它们存储在内存中还是其他地方?
2)当部署应用时,是否需要仅输入密码?如果重新启动应用程序服务器(或JVM)会发生什么,是否需要重新输入密码?
3)是否可以跨多个网络应用共享jasypt配置?如果需要在应用服务器/ JVM重启上重新输入密码,并且我部署了大量应用程序,我的应用程序部署者将不再需要多次重新输入密码。
答案 0 :(得分:1)
1)密码存储在Web应用程序上下文中(即:在应用程序实例的内部存储器中)
2)是的,它们确实只需要在部署过程中设置。但是,您必须清楚地意识到,当应用程序服务器重新启动时,其中的所有应用程序实例都将被重新部署。因此,结果是您应该再次重新输入密码。
3)基于第1点,密码保存在应用程序内部上下文中,因此它们不能被其他应用程序使用(但是,我认为这取决于您实施的应用程序类型,如果它们共享这样的背景)。什么是结束,如果您重新启动应用程序服务器,并且所有应用程序都在其中,那么它们将全部重新部署。只有当您的共享实例位于不同的服务器中时才有意义,而且我不知道这是否可能(或推荐)。
总结:是的,您必须重新输入密码,但通常在生产环境中,您不会进行多次重新部署。即使您不使用此类配置,重启也是客户端的暂时问题。