为了使调试更容易,我在我的应用程序中编写了一个身份验证代码,例如:
User admin = new User("admin", "pw");
currentUser = admin;
我很懒惰,不想每次发布新版本时都删除这些行,所以我创建了一个带有 Debug-Flag 的属性文件。当标志设置为“true”时,应用程序以 Debug模式启动而无需身份验证,否则显示登录。
但现在我担心的是,获得管理员访问权限非常容易。 你会如何解决这个问题?
亲切的问候 Storm
最佳答案
解决问题的方法就是不要那样做!
这会导致几个问题:
- 如您所说,太容易获得管理员权限
- 不正确的应用程序行为或错误的调试信息。您可能以管理员身份进行测试和调试,但您的用户肯定不是管理员!
- 它本身就是另一条控制路径,必须围绕它进行规划、编码和测试
更好的解决方案可能是在您的 DEV 系统上使用通用的管理员登录名和密码。这样您就可以自动输入或将其编码到您的测试中。普通用户的通用登录也是一个好主意,这样您就可以轻松地进行测试。
根据您正在进行的测试和调试类型,您是否可以编写自动化测试(可能使用 JUnit 和 Selenium)来测试您的应用程序?您还可以在 Debug模式下针对您的应用程序实例运行测试。测试本身会处理普通的设置和登录步骤,因此您可以专注于需要调试的事情。
关于java - 硬编码身份验证更容易调试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8947019/