2010-01-26 64 views
4

我有一个使用Spring和JPA/Hibernate构建的应用程序工作得很好,但我现在需要添加Oracle Label Security。这将需要创建一个代理用户,除了实际的用户以外,还分配了某些角色。我不清楚进入persistence.xml的内容以及代码中的内容。另外,如果我们想要真正喜欢,我很想知道Spring如何通过将用户映射到代理用户来注入适当的持久化上下文。JPA /休眠与Oracle标签安全

如果有人有这方面的经验,任何洞察力是赞赏。

谢谢。

+0

“Oracle标签安全性”是否意味着VPD? – sprezzatura 2011-07-16 13:52:00

+0

这可能不被hibernate支持。不是certian,这将帮助,但看看这篇文章http://dev.eclipse.org/mhonarc/lists/eclipselink-users/msg03843.html – chrislovecnm 2011-08-20 23:37:25

+1

Oracle标签安全是一个额外的企业许可证,其扩展和包装其行级别安全VPD解决方案。 – APC 2011-09-18 09:26:52

回答

0

我想接近它的方式如下:

首先获得代理认证直的基本知识。本文看起来很有希望:https://blogs.oracle.com/olaf/entry/using_oracle_proxy_authenticat

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

这样,您的应用程序将只能看到与建立的正确用户的正确连接。所以你的Hibernate配置不应该受到这个影响。

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