2010-02-22 19 views
0

簡而言之,如何根據應用程序名稱或JAR名稱限制對連接池X的訪問?一個簡單的用例可能會有所幫助...在Weblogic中限制對連接池的訪問?

商業Web應用程序(稱爲WEB_APP_A)使用池Y來執行基本的查找SQL。這個網絡應用程序的一些用戶也可以訪問數據庫中的一些敏感數據。該代碼由JAR文件提供(稱爲HR_JAR),可以在需要的地方放置該文件。這個JAR使用池X來連接它的所有連接。

我們不希望WEB_APP_A的開發人員使用池X.我們只希望使用池X的HR_JAR。這是爲了防止WEB_APP_A的開發者意外或故意濫用訪問池X提供的訪問池。

一些注意事項:

  1. 這是遺留代碼,以便HR_JAR在這裏停留
  2. 我們在WebLogic 9.2上運行
  3. 我們不能將密碼在任何從源代碼
  4. 我們已經研究了用於JDBC資源的weblogic用戶級別authn/authz,但這引發了問題;我們如何確保我們用來成爲每個應用程序/ jar的用戶的用戶信譽?

想法?思考?我可以更詳細地闡述我嘗試過的東西,但我想要新的想法。

回答

0

就我所知,沒有好的方法來做到這一點。 AspectJ有一些聰明的技巧,但最終它比它的價值更麻煩。

0

從來沒有試過這個,現在沒有權限訪問一個實例,但是在你的JDBC配置中,你可以嘗試爲池X添加一個<scope>元素,在<jdbc-data-source-params>的範圍內我想.. 。儘管假設你有一個爲HR.jar定義的單獨的應用程序,但是我不確定是否是你的描述中的情況。我不知道您是否可以在應用程序中限制單個JAR。

+0

HR JAR附帶WEB_APP_A。在JBoss中,答案似乎微不足道(參見http://www.jboss.org/file-access/default/members/jbossweb/freezone/docs/latest/security-manager-howto.html「JBoss Web自定義權限」部分)。我似乎無法在Weblogic中找到等價物。 – 2010-02-23 02:59:21

+0

@Andrew我不知道這個JBoss的東西如何解決你的問題。 – 2010-02-23 08:58:27

+0

那麼,在JBoss中我可以做到以下幾點,對吧? grant codeBase「jar:file:$ {catalina.home} /webapps/WEB_APP_A/WEB-INF/lib/HR.jar!/ - 」{org.apache.naming.JndiPermission「jndi:// localhost/poolX ; }; – 2010-02-23 15:48:01