gpt4 book ai didi

java - 如何处理 ADF Faces 中的密码字符串?

转载 作者:行者123 更新时间:2023-11-30 09:11:54 25 4
gpt4 key购买 nike

根据公司政策(和其他建议),我们不应使用 String 类来处理密码。因为这个对象是不可变的并且可能会一直存在直到 GC 释放它,所以“内存检查”可能会显示一个包含密码的尚未释放的字符串。因此,另一种方法是改用 char[] 并在不再需要时覆盖它的内容。然而,当使用inputText 组件,setter 方法必须接收一个字符串。

我有一个像这样的输入文本:

<af:inputText value="{myBean.password}" secret="true"/>

public class MyBean {
...
private transient char[] password;
...
public void setPassword(String password) {
this.password = password.toCharArray();
}
...
public void sumbit(ActionEvent e) {
...
//Wipe password
for(int i = 0 ; i < password.length ; i++) { password[i] = ' '; }
password = null;
}
}

如您所见,仍然有一个包含密码的 String 对象(setter 的参数),我不知道如何处理该值。有没有办法接收 char[] 值? ADF 的循环是否考虑到这是一个密码并且应该做一些特殊的事情?

这是一个服务器,调用 CG 不是一个好主意。

最佳答案

我能想到的一种方法是使用 JavaScript 加密库以加密格式将密码字段的值从客户端传递到服务器,然后在服务器上对其进行解密。这样接收字符串将是非纯文本格式。

关于java - 如何处理 ADF Faces 中的密码字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21883530/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com