安全地包装连接池
我正在尝试实现行级别安全性,以便我们的应用程序可以强制实施更严格的访问控制。
我们正在研究的技术之一是Oracle的虚拟专用数据库,它基本上通过使用子句谓词来增强针对特定表的所有查询,从而实现行级安全性。由于我们处于Web环境中,因此我们需要在Oracle中,在单个请求的线程内设置一个特殊的上下文。我们将连接池与服务帐户结合使用。where
我开始研究Eclipse Link和Hibernate。Eclipse Link似乎有完全适合这个模型的事件。
这将涉及我们从休眠状态迁移,这不是问题,但是对于这些事件,我们将绑定到EL。
Oracle似乎暗示它们在Web Logic产品的数据源级别实现。
上下文由 WebLogic 数据源代码设置和清除。
问题:在数据源级别对某些系列事件执行此操作是否更合适。我最应该注意的事件或方法是什么?
新增问题:如何扩展连接池以使用某些自定义数据安全地初始化 oracle 上下文?我正在Apache中挖掘,似乎扩展BasicDataSource并不能让我访问任何允许我在Spring完成连接时清理连接的东西。
我需要设置一个连接,并在退出/进入连接池时清理连接。我希望实现起来如此简单,没有人能通过打破产品的一些微妙平衡来搞砸它。
- Specifically we are currently using Apache Commons DBCP Basic Data Source
这将允许我们使用各种方式连接到数据库,并且仍然强制实施安全性。但是我没有看到一个很好的例子或一组事件可以使用,滚动我自己的安全生命周期从来都不是一个好主意。