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