【问题标题】:Restrict access to connection pool in Weblogic?限制访问Weblogic中的连接池?
【发布时间】:2010-02-22 16:28:18
【问题描述】:

简而言之,如何根据应用程序名称或 JAR 名称限制对连接池 X 的访问?一个简单的用例可能会有所帮助...

一个商业网络应用程序(称为 WEB_APP_A)使用池 Y 来执行基本的查询 SQL。此网络应用程序的一些用户还可以访问数据库中的一些敏感数据。此代码由 JAR 文件(称为 HR_JAR)提供,可以在需要的地方放入该文件。此 JAR 使用池 X 进行所有连接。

我们不希望 WEB_APP_A 的开发者使用池 X。我们只希望 HR_JAR 使用池 X。这是为了防止 WEB_APP_A 的开发者意外或故意滥用 X 提供的访问池。

一些注意事项:

  1. 这是遗留代码,所以 HR_JAR 会保留下来
  2. 我们在 Weblogic 9.2 上运行
  3. 我们不能在任何源代码中保存密码
  4. 我们已经研究了 JDBC 资源的 weblogic 用户级 authn/authz 但这引出了问题;我们如何保护我们用来成为每个应用程序/jar 用户的用户信用?

想法?想法?我可以详细说明我尝试过的方法,但我想要新的想法。

【问题讨论】:

    标签: jdbc weblogic pool authz


    【解决方案1】:

    从未尝试过此操作并且目前无法访问要播放的实例,但在您的 JDBC 配置中,您可以尝试在 <jdbc-data-source-params> I 内为池 X 的应用程序添加一个 <scope> 元素想想......虽然假设您为 HR.jar 定义了一个单独的应用程序,但我不确定您的描述是否属于这种情况。我不知道您是否可以在应用程序中限制单个 JAR。

    【讨论】:

    • HR JAR 随 WEB_APP_A 一起提供。在 JBoss 中,答案似乎微不足道(参见 jboss.org/file-access/default/members/jbossweb/freezone/docs/… 部分“JBoss Web 自定义权限”)。我似乎在 Weblogic 中找不到等价物。
    • @Andrew 我不确定这个 JBoss 的东西会如何解决你的问题。
    • 嗯,在 JBoss 中我可以执行以下操作,对吗?授予 codeBase "jar:file:${catalina.home}/webapps/WEB_APP_A/WEB-INF/lib/HR.jar!/-" { org.apache.naming.JndiPermission "jndi://localhost/poolX; };
    • @Andrew 啊,确实。经过第二次阅读,您似乎是对的。
    【解决方案2】:

    据我所知,没有好的方法可以做到这一点。 AspectJ 有一些巧妙的技巧,但最终麻烦多于其价值。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-02-22
      • 2014-07-07
      • 1970-01-01
      相关资源
      最近更新 更多