为什么Spring Security不提供密码的字符数组参数

bar*_*405 5 java spring spring-security

如果在Java中处理敏感数据的最佳实践是使用字符数组,那么为什么Spring Security中的大多数方法都使用String或CharSequence?例如,加密器上的方法采用CharSequence。实际上,查看这些方法的源代码,它们实际上最终将CharSequence转换为String。由于从事该项目的人们比以往任何时候都拥有更多的一生的经验,所以我觉得我一定会错过一些东西。是否有人对如何将敏感数据传递给这些方法有任何见解?

Kyl*_*son 6

您真的不能做很多事情来减少Servlet容器中密码的寿命,因为HttpServletRequest以字符串形式返回HTTP参数。因此,Spring Security可以采取世界上所有的措施来缩短密码的生存期,但不会有所作为,因为String已经存在。

-Rob Winch(弹簧安全)

资源