在 http://jasypt.org/webconfiguration.html 的 Jasypt 配置文档中,说明如下:
This servlet's URL should be called by the webapp administrator at deploy time, for setting the passwords of all the PBE encryptors...
我不清楚文档中的以下内容:
1) 通过网络应用程序输入的密码存储在哪里?它们是存储在内存中还是其他地方?
2) 仅在部署应用程序时需要输入密码吗?如果应用服务器(或JVM)重启会怎样,是否需要重新输入密码?
3) 是否可以在多个 Web 应用程序之间共享一个 jasypt 配置?如果在应用程序服务器/JVM 重启时需要重新输入密码,并且我部署了很多应用程序,我的应用程序部署人员将不喜欢必须多次重新输入密码。
最佳答案
1) 密码存储在 web 应用程序上下文中(即:在应用程序实例的内部存储器中)
2) 是的,它们只需要在部署过程中设置。但是您必须清楚一个事实,即当应用程序服务器重新启动时,其中的所有应用程序实例都会重新部署。所以结果是你应该重新输入密码。
3) 根据第 1 点,密码保存在应用程序内部上下文中,因此其他应用程序无法使用它们(不过,我认为这取决于您正在实现的应用程序类型,如果它们确实共享此类上下文).结束了,如果您重新启动应用服务器,并且所有应用程序都在其中,那么它们都将被重新部署。只有当您的共享实例驻留在不同的服务器上时才有意义,我不知道这是否可能(或推荐)。
总结:是的,您必须重新输入密码,但通常在生产环境中您不会进行多次重新部署。即使您不使用这种类型的配置,重新启动对客户端来说也是一个临时问题。
关于java - 使用 WebPBEConfigServlet 的 jasypt Web 配置 - 密码存储在哪里?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19072079/