Java:调用操作系统进行管理员级身份验证



我正在为库存数据库制作一个模拟库存程序,我想实现一个功能,如果在用例场景中,仓库接收者(我希望他在公司网络中没有管理员登录状态)会尝试删除数据库的记录,他将不得不进入操作系统级别的管理员身份验证,因为删除记录可能会造成税务审计的严重破坏。如果接收者通知他的主管他在UPC等数据输入中犯了严重错误,那么隔壁办公室的真人可以访问软件,我想让删除仍然可以访问。然后主管可以通知她的网络管理员。。。

话虽如此,我想知道该如何称呼操作系统。由于我以前从未这样做过,我首先想到的是类似的东西

String adminPassword = JOptionPane.showInputDialog(
"Enter Network Administrator Password");
if(callSomeOSFeatureForAdminPasswordReturnsTrue(adminPassword)){ 
record.delete();
}

如果这是一个愚蠢的问题,我很抱歉,但我从来没有做过这样的事情,从安全的角度来看,这是没有意义的,因为那该怎么防止一个思想相当黑暗的程序员传输那个字符串呢?这是一种切线,但基本上我只是想知道我应该查找什么,以确保在数据库记录删除尝试中完成最终用户本地网络管理员级别的身份验证。仓库每年都要对库存中的所有东西进行审计,所以如果某个接收者认为每次你的产品暂时用完时都应该使用"删除",那么审计将是一场噩梦(相信我,我在现实生活中经历过这些,它们就像龙卷风一样席卷仓库,如果不止一小部分东西下落不明,主管们会非常疯狂。)

这不是将被构建到Java中的东西——它在虚拟机中运行,(主要)独立于实际的操作系统。你必须依靠在机器上调用一些程序来回答这样的问题。这取决于实际运行的操作系统,因此不会是跨平台的。此外,你不应该要求一个密码,然后发送它转发。

但无论如何都不应该这样做——数据库中的权限应该与数据库用户相关,而不是与用户是否是其计算机上的管理员相关。所以你应该重新考虑那里的安全问题。

最新更新