java - 使用 WebPBEConfigServlet 的 jasypt Web 配置 - 密码存储在哪里?

标签 java servlets jasypt

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/

相关文章:

java - 替换 Servlet Filter 中的响应内容

java - 有没有办法动态地将 id 插入 Thymeleaf 变量中?

java - 无法使用 jasypt 从属性文件加密用户名/密码

java - JASYPT 与 Spring Boot 问题加密强密码并在应用程序中使用它

java - Android - 不推荐使用 getRunningservices(ActivityManager)

java - 消息[0]在消息数组中是最终的吗

java - 了解 java.lang.StringIndexOutOfBoundsException : length=X; regionStart=Y; regionLength=Z

java - 在简单的 servlet 中创建 REST 类型的 url,例如 {resource}/<id>

javascript - 使用编辑从jsp获取servlet中的条目并通过Javascript保存

c# - 在 .NET 中,如何解密在 Java 中使用 PBEWithMD5AndDES 加密的值?