Ограничить доступ к пулу соединений в Weblogic?
Короче говоря, как я могу ограничить доступ к пулу соединений X на основе имени приложения или имени JAR? Простой случай использования может помочь...
Деловое веб-приложение (назовите его WEB_APP_A) использует пул Y для выполнения базового поиска SQL. Некоторые пользователи этого веб-приложения могут также обновлять некоторые конфиденциальные данные в базе данных. Этот код предоставляется файлом JAR (назовите его HR_JAR), который может быть добавлен в случае необходимости. Этот JAR использует пул X для всех своих соединений.
Мы не хотим, чтобы разработчики WEB_APP_A использовали пул X. Мы хотим, чтобы HR_JAR только использовал пул X. Это сделано для того, чтобы разработчики WEB_APP_A не могли случайно или преднамеренно злоупотреблять предоставленным пулом доступа X.
Некоторые соображения:
- Это устаревший код, поэтому HR_JAR здесь, чтобы остаться
- Мы работаем на Weblogic 9.2
- Мы не можем хранить пароли ни в одном из исходных кодов
- Мы исследовали пользовательский уровень weblogic authn/authz для ресурсов JDBC, но тогда возникает вопрос; как мы обеспечиваем кредиты пользователей, которые мы используем, чтобы стать пользователями для каждого приложения / банки?
Идеи? Мысли? Я могу подробнее рассказать о том, что я пробовал, но я хотел свежих идей.
2 ответа
Насколько я могу судить, нет хорошего способа сделать это. Есть несколько хитрых трюков с AspectJ, но в итоге это больше проблем, чем стоит.
Никогда не пробовал этого и не имею доступа к экземпляру для воспроизведения прямо сейчас, но в вашей конфигурации JDBC вы можете попробовать добавить <scope>
элемент для приложения против пула X, внутри <jdbc-data-source-params>
Я думаю... Хотя это предполагает, что у вас есть отдельное приложение, определенное для HR.jar, что, я не уверен, так из вашего описания. Я не знаю, можете ли вы ограничить отдельный JAR в приложении.