当前位置: 首页 > 知识库问答 >
问题:

禁用Hibernate获取动态

邢焱
2023-03-14

我目前已经实现了行级安全性,其中需要安全的表具有所有者、组和Unix风格权限的列。

当前的情况是,每当我们通过hibernate请求一个实体时,我们都会添加一个自定义标准来验证用户是否有权访问数据。在每次创建时也会添加此自定义标准。Alias()以确保与其他表的联系也得到保护。

问题是我们的模型有多个具有@manyToOne关系的实体,因为这些实体是自动获取的,所以没有办法保护嵌套的实体。

我想要的是一种方法:

>

  • 使其只包含通过创建添加的实体

    动态控制hibernate获取的内容

    这两种方式似乎并不意味着对我们的项目进行大规模的代码重构。

    这是可以做到的,还是有其他方法来加强我们的安全?

    注:不幸的是,永远不返回嵌套实体是不可能的,因为它是客户端所需要的。此外,我们还尝试使用max_fetch_depth 0,但即使在初始查询中没有请求嵌套的实体,hibernate似乎会进行多个后续查询来完成实体。

  • 共有1个答案

    公良琛
    2023-03-14

    我正处于研究阶段,但基本上没有用于我自己的项目,我相信过滤器是你想要的。如果我正确理解了文档,可以在模式中定义一个过滤器,启用它,并在打开会话时以编程方式为其提供参数,在会话期间,Hibernate将假装不存在未通过过滤器的对象。除了保护基于关系的抓取之外,这还将消除对每个查询手动添加安全检查的需要。

     类似资料:
    • 问题内容: 我正在尝试获取Disabled()字段的值,但是它返回一个空字符串。 我已经尝试过:,但是到目前为止,这些方法都无效。 问题答案: 如果您标记的是这样- 您的代码应为- 要么 确保您的代码正确。如果这不起作用,请发布您正在使用的HTML代码。 对于此标签- 要获取value属性- 值必须是 让我知道是否有任何问题。 如果这样做不起作用,则可能必须使用javascript执行程序- 您的

    • 我正在为实体对象上的延迟加载集合执行此操作: 我想返回一个实体对象,其中加载了多个延迟加载的集合,我可以这样做吗(传入一个列表并为单个条件设置多个关联?):

    • 我正在尝试使用Hibernate以便从MySQL数据库中获取数据。为了实现这样一个目标,我创造了: > Hibernate配置文件:

    • 我似乎无法让我的Spring JPA配置正常工作。我有一个Spring REST服务。如果我将所有实体设置为FetchType.EAGER,一切都按预期工作。但是我不想这样做,原因很明显。 当我将实体设置为FetchType时。懒惰,我得到以下错误: org.hibernate.LazyInitializationException:未能懒惰地初始化角色集合:com.service.entitie

    • 问题内容: 我正在编写一个非常简单的查询,但是由于某种原因,我得到了重复的值。 在返回重复值。即: 但是,直接在mysql中运行此查询 不返回重复值。 谁能发现哪里出了问题? 问题答案: 快速的解决方法是使用“不同的根实体结果转换器”。 但这只是一个工作环境。 我怀疑问题属于您的映射。如果从ProcessInstance到其他对象之间急切地加载了1:n关系(称为X),并且一个ProcessInst

    • 问题内容: 我正在从我的api加载json数据,其中包含指向我网域之外的图片的网址。我过去是这样做的,而不是使用Angular,而且我从未见过此问题… 在我的小提琴中,当我单击“搜索”时,出现了两个图像,但是它们都抛出了403禁止且未加载。 我不知道为什么会这样。有任何想法吗? 问题答案: 似乎imdb正在检查引荐来源网址,因此不允许其他方将其图像直接嵌入其网站中。如果您尝试使用其他域的图像,则可