在我的应用程序中,我有一个ApplicationConstants.java类,用于应用程序中使用的String Constants。
我有public static final String PASSWORD = "password"
作为常数之一。声纳如下所示抛出错误。如果有办法解决这个问题,请告诉我。
声纳错误:说明受理人资源新问题凭据 不应该硬编码:删除此硬编码 密码。 EnrollmentConstant.java false
答案 0 :(得分:3)
您应该将密码移至配置。
答案 1 :(得分:1)
您应该将其解压缩到属性文件中。 Here您可以阅读如何操作
您也可以将它作为系统属性放在应用程序服务器上,并期望它出现在生产机器上(例如Wildfly服务器),然后使用System.getProperty(key)
读取它。这会使部署变得复杂,但项目中不会出现生产密码。
如果使用Spring,则可以使用@Value
注释将值加载到bean。 Here您可以阅读如何执行此操作。
答案 2 :(得分:1)
对我来说,不这样做的主要原因是这种情况:密码更改。现在您必须更改代码,重新编译和重新部署。如果你有一个配置文件(或其他一些没有直接在代码中的方式),你不必做所有这些。最糟糕的情况是你必须反弹服务器。最好的情况 - 您的代码可以判断配置文件何时发生了变化并立即获取更改。
答案 3 :(得分:0)
您需要将代码之外的凭据存储在加密的配置文件或数据库中。在Soanr端,它们具有硬编码密码/用户名的标志。所以将其保存在属性文件或其他配置文件中。它也不是由于安全原因,建议将密码保存在String对象中,因为很容易从已编译的应用程序中提取字符串。