认证和授权服务的类图

时间:2017-09-28 04:48:29

标签: oop design-patterns uml class-diagram role-base-authorization

这是方案

系统有两个主要用户SYSTEM USER和END USER。最终用户进一步分为两个名为CLIENT USER和INTERNET USER的用户,客户端用户在数据库可访问帐户中关联,而互联网用户则不在。

所有用户都被分为不同的ROLES,每个角色都与一组可访问的MODULES相关联,不同的模块包含不同的功能,如查看,添加,编辑和删除功能。

不同的角色可能与模块中的不同功能相关联。 示例超级管理员角色可以访问并在用户访问模块中添加编辑删除功能,而高级用户只能访问或查看它。

当用户登录安全服务时,将使用用户名和密码对用户进行身份验证。如果经过身份验证,它将查找与用户关联的角色,并在屏幕上显示已授予的模块,供用户选择进行访问。

我创建了一个包含每个类的字段或属性的简单类图,我只是不确定它是否正确,如连接器或关系实现,基数和每个类的方法,我只输入一个类的方法,用于登录(login())方法。

enter image description here

2 个答案:

答案 0 :(得分:3)

我可以看到你的模型有些问题:

  • 那些填充箭头应该是什么?如果您的意思是继承,则必须使用未填充的箭头。
  • LOGIN也是用户吗?有关于那个问题的堰塞。我希望login()是一个以用户名和密码作为参数的操作,不一定是它自己的类,我可能不会使用UserName和Password属性对它进行建模。
  • 如果USER的所有子类都有UserName和Password。你不认为你应该在USER类上定义那些吗?
  • USER和END USER应该具体还是抽象?似乎他们可能需要抽象。
  • 类通常以单数形式命名。所以请使用ROLE代替ROLES
  • 在USER类上执行的roleID是什么?这似乎是错的。如果您使用的是UML,请不要在您的课程中输入外键字段。 RoleID是ROLE的一个属性,不应该在USER上。
  • 为什么需要所有这些ID属性?如果您在逻辑层面上进行建模,则可以假设每个类都具有唯一标识,并且您不必担心该标识的技术实现(字符串,GUID,...)。另一方面,如果您正在制作技术模型,那么您将缺少大约70%的细节。

答案 1 :(得分:1)

我会这样做:enter image description here

当您执行某个功能(重命名的服务)时,您将获得可以登录且具有不同角色的用户,该服务获取其模块并请求模块检查会话用户是否有权执行该服务。

这对你有帮助吗?