0

我想用 Java 制作一个具有 GUI 和数据库的应用程序。我将使用 MYSQL 作为数据库,我最近使用 JavaFX 的经验非常愉快,所以我将使用它来编写代码。

我的问题是我想要用户访问控制,并希望根据谁或什么类型的用户登录来显示 GUI 组件。

所以让我们说这是一个学校管理系统,如果老师登录,老师可以访问他或她的课程和家庭作业(当然通过 GUI),但不能访问任何其他老师的。如果管理员用户登录,他/她可以更改学生资料等,但不能更改其他内容。

有人可以在概念、教程、书籍、示例代码等方面为我指明正确的方向,这样我就可以完成这样的事情

if(user==teacher){
    stage.setscene(teacherOnlyScene);
    stage.show();
}

非常感谢!抱歉,如果它太主观了。这是我在 90% 的时间里使用的一个网站来回答我所有与编程相关的问题。

4

1 回答 1

2

您的问题范围可能太大而无法在此处成功回答,因为您正在询问最终系统架构的相当大且可能很复杂的部分。用户访问系统通常非常复杂,特别是如果它们是高度可配置的,例如您可以授予用户基本组权限之外的权限等。

在开始编写任何代码之前,请考虑一下您想要实现的目标。您已经提出了使用用户组的想法,我认为这是非常明智的,但是您需要提出一些问题。用户可以属于多个组吗?权限可以分配给用户还是只能分配给组?管理员是一个特例还是可以作为另一个组处理?

看看 Linux 处理用户和组以分配权限的方式。这是一个经过深思熟虑的系统,应该会提供一些灵感。此外,链接到的 JavaEE 6 文档 orangegoat 很好地概述了 Java EE 中的安全性(但要注意它相当复杂)。

话虽如此,我觉得我必须鼓励您考虑将其作为基于 Web 的应用程序,而不是使用 JavaFX。听起来您没有任何特别复杂的图形要求,而且听起来您想要对系统/数据库进行多个并发访问(例如,一次可以有多个教师检查他们的作业)。

也许我有点偏见,但我认为基于 JavaEE 的 Web 应用程序更适合这些要求。多用户方面的业务逻辑和大部分复杂性将由一堆EJB很好地处理,而所有持久性都由JPA处理。GUI 将用JSFPrimeFaces编写,并且全部托管在GlassFish上。这种设置的真正好处是您的安装空间为零,这将在推出新版本时为您节省大量时间。走 JavaEE 路线可能会让您更加困难,但我认为考虑到要求,这是正确的解决方案。

于 2013-06-06T15:53:00.870 回答