具有 Oracle 标签安全性的 JPA/Hibernate

Posted

技术标签:

【中文标题】具有 Oracle 标签安全性的 JPA/Hibernate【英文标题】:JPA/Hibernate with Oracle Label Security 【发布时间】:2011-01-09 14:07:24 【问题描述】:

我有一个使用 Spring 和 JPA/Hibernate 构建的应用程序运行良好,但我现在需要添加 Oracle Label Security。除了实际用户之外,这将需要创建分配有某些角色的代理用户。我不清楚persistence.xml 中的内容以及代码中的内容。另外,如果我们想真正了解一下,我很想知道 Spring 如何通过用户到代理用户的映射注入适当的持久性上下文。

如果有人对此有经验,我们将不胜感激。

谢谢。

【问题讨论】:

“Oracle 标签安全”是指 VPD 吗? hibernate 可能不支持这个。不确定这会有所帮助,但请查看此帖子dev.eclipse.org/mhonarc/lists/eclipselink-users/msg03843.html Oracle Label Security 是企业许可证的额外收费项目,它扩展和包装了其行级安全 VPD 解决方案。 【参考方案1】:

我会通过以下方式处理它:

首先了解代理身份验证的基础知识。这篇文章看起来很有希望:https://blogs.oracle.com/olaf/entry/using_oracle_proxy_authenticat

假设您有 Web 应用程序(或任何其他具有单入口点的应用程序)创建一个过滤器,它接受请求、识别用户、使用代理身份验证在数据库中建立用户,然后转发请求。

这样,您的应用程序只会看到与正确用户建立的正确连接。因此,您的 Hibernate 配置不应受此影响。

一个警告:您可能正在使用连接池。这些池可能不会为您提供 JDBC 的 Oracle 实现,而是一个包装器,您必须通过它来访问所需的 oracle 特定功能。确保您的应用程序仍然使用包装器,否则连接池将不会注意到连接抛出的任何异常,从而无法识别断开的连接并将它们一遍又一遍地分发出去。

【讨论】:

以上是关于具有 Oracle 标签安全性的 JPA/Hibernate的主要内容,如果未能解决你的问题,请参考以下文章

我们应该使用啥来代替 Spring Security 的 JSP 标签库来在 HTML 页面中的客户端具有安全性?

所有网络端口限制在具有 dev 标签的网络安全组上

网络安全等保:Oracle数据库测评

Oracle第一章——初识Oracle

linux下oracle数据库是不是稳定

ORACLE数据库安全基础知识