繁体   English   中英

本地 java 桌面应用程序的登录架构

[英]Login architechture for a local java desktop application

你好,
我正在尝试编写我的第一个具有登录功能的简单本地桌面应用程序。 应该支持具有不同访问权限的不同类型的用户。 我设法想出了一些可以在程序的简单版本中运行的东西,但是,它在几个层面上都存在缺陷。 我只是不知道我在整个应用程序的结构上是否走在正确的轨道上。 我对安全性也很不确定。

这是我当前的实现(仅登录特定的类/方法) 登录架构上的 UML 图

问题:
有人对如何实施这种系统有建议吗? 或者在某个地方我可以了解更多关于如何以一种有意义的方式构建应用程序的信息? 我一直在学习很多设计模式和 OOB 原则,但我很难将它们应用到实际应用程序中。

注意:如果上下文很重要,则该应用程序是一个虚构的计算机商店,允许管理员将不同类型的计算机组件添加到库存中。 客户可以搜索和过滤这些部分并创建自己的配置。 然后客户可以订购该配置。

密码功能的意义何在? 如果它在受某些用户控制而不是您的控制的机器上运行,他们有权访问。 你对此无能为力。

通常,对于完全在本地运行的应用程序,搭载操作系统本身; 将数据存储在用户的主目录中,并确保文件的访问权限使得其他(非管理员)用户无法读取它。 其他管理员用户? 好吧,他们是管理员用户。 如果他们想阅读它,他们可以,这就是这些用户的意义所在。 你不能阻止他们这样做。 如果您将每个用户的相关数据存储在只有他们可以读取的文件中,则根本不需要用户名/密码提示; 他们的“登录”是他们的本地用户名,他们的“身份验证”是固有的。 简单的。

用户/通行证设置可能有意义的一次是,如果应用程序由管理员启动并以锁定模式启动,在这种模式下,操作键盘和鼠标的人无法进入系统,也无法关闭应用程序。 这就是 ATM 的工作原理:那些只是 windows 机器,其中的“键盘”只是一个数字键盘,鼠标和计算机系统本身被锁在一堆砖块和金属中。 如果您这样做,请确保您应用了正确的密码卫生; 不要存储它,而是存储它的 bcrypt/pbkdf/argon2/scrypt hash。 这样,如果有人获取了该文件,您的应用程序就会被破坏,但至少如果该用户在其他网站上重新使用了他们的密码(用户确实如此),黑客也不会暴露这一点。

我假设你没有那个,这让我们回到:你想用密码完成什么?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM