我想在java中创建一个具有GUI和数据库的应用程序。我将使用MYSQL作为数据库,我最近使用JavaFX的经历非常令人愉快,因此我将使用它进行编码。
我的问题是我想要用户访问控制,并希望根据用户登录的用户或用户类型显示GUI组件。
所以,让我们说这是一个学校管理系统,如果老师登录,老师可以访问他或她的课程和家庭作业(当然是通过GUI),但不能访问任何其他老师。如果管理员用户登录,他/她可以更改学生档案等,但没有别的。
有人能指出我在概念,教程,书籍,示例代码等方面的正确方向,所以我可以完成这样的事情
if(user==teacher){
stage.setscene(teacherOnlyScene);
stage.show();
}
非常感谢你!道歉,如果它太主观。这是我使用的一个网站,90%的时间用于回答我所有与编程相关的问题。
答案 0 :(得分:2)
您的问题的范围可能太大而无法在此成功回答,因为您询问的是最终系统架构中相当大且可能很复杂的部分。用户访问系统通常非常复杂,特别是如果它们是高度可配置的,例如您可以授予用户超出其基本组权限等的权限。
在开始编写任何代码之前都要考虑一下你想要实现的目标。您已经想出了使用用户组的想法,我认为这是非常明智的,但您需要提出一些问题。用户可以属于多个组吗?是否可以将权限分配给用户,还是只能将其分配给组?管理员是特殊情况还是只能作为另一个组处理?
了解Linux处理用户和组以分配权限的方式。这是一个经过深思熟虑的系统应该提供一些灵感。此外,链接到的JavaEE 6文档orangegoat提供了对Java EE安全性的良好概述(但要警告它相当复杂)。
话虽如此,我觉得我必须鼓励您考虑将其设置为基于Web的应用程序,而不是使用JavaFX。这听起来并不像您有任何特别复杂的图形要求,并且听起来您希望多次并发访问系统/数据库(例如,多个教师可以一次检查他们的分配)。
也许我有点偏颇,但我认为基于JavaEE的Web应用程序更符合这些要求。业务逻辑和多用户方面的大多数复杂性将由一堆EJB处理得很好,所有持久性都由JPA处理。 GUI将用JSF和PrimeFaces编写,整个批次托管在GlassFish上。这种设置的真正好处是您的安装空间为零,这将为您推出新版本节省大量时间。走JavaEE路线可能会让你更难,但我认为这是满足要求的正确解决方案。