Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/372.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何根据用户角色访问特定的数据库记录?_Java_Spring Security - Fatal编程技术网

Java 如何根据用户角色访问特定的数据库记录?

Java 如何根据用户角色访问特定的数据库记录?,java,spring-security,Java,Spring Security,我有一个Java Spring Hibernate应用程序,它与Active Directory集成以实现安全性。我需要只允许具有特定角色的用户访问表中的某些记录。 e、 g.角色1用户只能访问类型为type1的记录 ROLE2用户只能访问类型为type2的记录 我不想创建两个方法来根据类型访问此数据,并根据用户角色保护每个方法。 请告诉我最好的方法是什么。最实用的解决方案是在记录中添加一个字段,指明允许谁访问这些记录,然后在检索查询中包含用户的角色。谢谢您的回答。由于包括角色在内的用户数据已经

我有一个Java Spring Hibernate应用程序,它与Active Directory集成以实现安全性。我需要只允许具有特定角色的用户访问表中的某些记录。 e、 g.角色1用户只能访问类型为type1的记录 ROLE2用户只能访问类型为type2的记录 我不想创建两个方法来根据类型访问此数据,并根据用户角色保护每个方法。
请告诉我最好的方法是什么。

最实用的解决方案是在记录中添加一个字段,指明允许谁访问这些记录,然后在检索查询中包含用户的角色。

谢谢您的回答。由于包括角色在内的用户数据已经存在于Active Directory中,将这些数据也保留在数据库字段中是否也是一个好的设计?如果您有选择,请不要复制这样的数据;他们会失去同步并引起问题。可能是我不清楚。我指的是你的回答,在记录中添加一个字段来表明谁可以访问这些记录(角色)不是一个好方法。非常感谢你的回答。也许我不清楚。我指的是你的回答,在记录中添加一个字段,表明谁可以访问这些记录(角色)是一个好的设计吗?现在,我考虑在用户每次使用字段登录时将用户数据保存在一个表中,以将其映射到给定示例中的“类型”。然后将数据表与此表连接,以根据字段获取记录。并在用户注销时清除用户表。对这种方法有什么想法吗?这基本上就是文件系统所做的,复杂程度各不相同(传统Unix风格的文件系统中只有所有者和组,现代系统(如ext4和NTFS)中只有ACL)。如果您没有任何关于允许谁访问记录的通用规则,那么您必须将访问控制信息附加到该记录。