Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / WebSphere AS и jndi ресурсы / 10 сообщений из 10, страница 1 из 1
30.03.2007, 09:34
    #34426453
WebSphere AS и jndi ресурсы
Имеем настроенные jndi ресурсы к разным БД (ДБ2)
предположим
jndi/QWERTY
jndi/ASDFGH
jndi/ZXCVBN

при установке некоторых приложений, не появляется страница указывающая какой ресурс будет использовать приложение(допустим в инструкции написано "приложение использует jndi/QWERTY")
в этом случае приложение же может воспользоваться и другими ресурсами ВебСферы.
Как быть в таком случае ?
...
Рейтинг: 0 / 0
02.04.2007, 10:00
    #34430468
WebSphere AS и jndi ресурсы
Слободской АндрейИмеем настроенные jndi ресурсы к разным БД (ДБ2)
предположим
jndi/QWERTY
jndi/ASDFGH
jndi/ZXCVBN
Это я так понимаю список ресурсов сервера?
Слободской Андрейпри установке некоторых приложений, не появляется страница указывающая какой ресурс будет использовать приложение(допустим в инструкции написано "приложение использует jndi/QWERTY")
в этом случае приложение же может воспользоваться и другими ресурсами ВебСферы.
Как быть в таком случае ?
Не понял.
По правилам J2EE, ресурс должен быть объявлен в разделе Resource References соответсвующего Deployment Descriptor. Для веб-приложения это файл WEB-INF\web.xml

Для ссылки на ресурс JDBC в нем должно быть что-то вроде:
<resource-ref id="ResourceRef_1152538063246">
<description></description>
<res-ref-name>jdbc/DB_ACCESS</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
<res-sharing-scope>Shareable</res-sharing-scope>
</resource-ref>

При деплойменте приложения WAS будет предлагать binding только для объявленных ссылок на внешние ресурсы.
...
Рейтинг: 0 / 0
03.04.2007, 11:44
    #34433467
WebSphere AS и jndi ресурсы
Евгений Хабаров
По правилам J2EE, ресурс должен быть объявлен в разделе Resource References соответсвующего Deployment Descriptor. Для веб-приложения это файл WEB-INF\web.xml

по правилам ресурс м.б. и должен быть объявлен в web.xml
Но факт остаётся фактом: есть пиложение написаное на JDeveloper(9-ка или 10-ка)
ресурс прописан в коде приложении как "jdbc/QWERTY"
в файле web.xml я нашёл только описание сервлетов.

Евгений Хабаров
При деплойменте приложения WAS будет предлагать binding только для объявленных ссылок на внешние ресурсы.
При деплое такого приложения WAS не предлает использование ресурсов сервера.

У томката в server.xml явно указываются ресурсы доступные приложению
ЕХ:
<Context docBase="E:/Inetpub/Tomcat_App/webapps/nalvag" path="/nalvag" ~~//~~>
<ResourceLink global="jdbc/QWERTY" name="jdbc/QWERTY" type="java.object"/>
<ResourceLink global="jdbc/ASDFGH" name="jdbc/ASDFGH" type="java.object"/>
</Context>

Т.е. подсмотрев ресурсы сервера WAS - их можно смело юзать - так получается.
...
Рейтинг: 0 / 0
03.04.2007, 13:22
    #34434013
WebSphere AS и jndi ресурсы
Слободской Андрей
по правилам ресурс м.б. и должен быть объявлен в web.xml
Но факт остаётся фактом: есть пиложение написаное на JDeveloper(9-ка или 10-ка)
ресурс прописан в коде приложении как "jdbc/QWERTY"
в файле web.xml я нашёл только описание сервлетов.

Ну так добавить туда ссылку на ресурс самостоятельно. Это ведь нетрудно.
А потом попинать разработчика этого приложения, дабы он оформил web.xml в соответствии со спецификациями. Сама среда разработки не будет добавлять ссылки на внешние ресурсы, если автор приложения в коде использовал JNDI-имя. Это ответственность автора внести используемые внешние ресурсы в список. То же касается используемых приложением ролей и т.п.
Слободской АндрейУ томката в server.xml явно указываются ресурсы доступные приложению
ЕХ:
<Context docBase="E:/Inetpub/Tomcat_App/webapps/nalvag" path="/nalvag" ~~//~~>
<ResourceLink global="jdbc/QWERTY" name="jdbc/QWERTY" type="java.object"/>
<ResourceLink global="jdbc/ASDFGH" name="jdbc/ASDFGH" type="java.object"/>
</Context>

Ну и что? Да, томкат позволяет такие фокусы, знаю, но WAS это другой продукт, поэтому приложение при деплойменте на WAS должно соответствовать требованиям этого сервера, причем что эти требования соответствуют спецификации.
Кстати тип ресурса желательно указывать более конкретный, а не java.lang.Object.
Слободской Андрей
Т.е. подсмотрев ресурсы сервера WAS - их можно смело юзать - так получается.
С чего такой вывод?
Даже если ресурс описан на уровне сервера, он недоступен в контексте приложения, пока не выполнена привязка ссылки на ресурс (в приложении) к этому ресурсу.
Поэтому пытаясь обратиться к ресурсу, даже зная его JNDI имя на сервере, должен будешь получить javax.naming.NameNotFoundException.
...
Рейтинг: 0 / 0
03.04.2007, 15:31
    #34434560
chro
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
WebSphere AS и jndi ресурсы
На самом деле это разница между глобальными и локальными jndi reference. Допустим,Вы создали datasource jndi/QWERTY на сервере через админ консоль.При этом описание появлется в файлах конфигурации WAS (наподобии server.xml в Томкате, только посложнее). Это глобальный datasource, доступ к которому из серверного приложения lookup("jdbc/QWERTY") , причем в самом приложении ничего писать не надо, надо только разрешить доступ в политике безопасности(по умолчанию разрешено). Понятное дело, это криво, к тому же грубо прописано в коде.
Локальная jndi ссылка -это <resource-ref> в web.xml или ejb.xml или ещё где. В приложении при доступе к этому ресурсу пишется как и положено ctx.lookup("java:comp/env/jdbc/QWERTYRef"). Затем при установке приложения на сервер, предлагается сопоставить локальной ссылке QWERTYRef существующий реальный datasource на сервере.

авторТ.е. подсмотрев ресурсы сервера WAS - их можно смело юзать - так получается.

Да это так. Только это относится не только к WAS. Если Вы открыли доступ к RMI или к JNDI любого сервера (а по умолчанию он открыт) для любого удаленного приложения или запустили сомнительное приложение with grant codebase AllPermission, то будьте готовы к вполне возможным неприятностям. Посмотрите на Universal Test Client.
...
Рейтинг: 0 / 0
03.04.2007, 16:04
    #34434696
WebSphere AS и jndi ресурсы
chroНа самом деле это разница между глобальными и локальными jndi reference. Допустим,Вы создали datasource jndi/QWERTY на сервере через админ консоль.При этом описание появлется в файлах конфигурации WAS (наподобии server.xml в Томкате, только посложнее). Это глобальный datasource, доступ к которому из серверного приложения lookup("jdbc/QWERTY") , причем в самом приложении ничего писать не надо, надо только разрешить доступ в политике безопасности(по умолчанию разрешено).

Можно пример кода для такого случая?
Или речь про режим когда Global Security Off?
...
Рейтинг: 0 / 0
03.04.2007, 19:16
    #34435419
chro
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
WebSphere AS и jndi ресурсы
Евгений, какого рода пример Вы ожидаете ? Что-то типа
DataSource ds = (DataSource)(new InitialContext()).lookup("jdbc/QWERTY");
Global security немного туманное понятие, кстати в WAS 6.1 такого слова нету.
Обычно это подключенный реестр пользователей + авторизованный доступ к некоторым службам.
Вышенаписанный код работает на сервере и при включенном реестре пользователей. В крайнем случае можно подправить файл jndi.properties
Если Вы ищете способ для обеспечения безопасности от того что я написал выше, обратите внимание на файлы лежащие в директории properties
...
Рейтинг: 0 / 0
04.04.2007, 11:17
    #34436531
WebSphere AS и jndi ресурсы
Хабаров
Даже если ресурс описан на уровне сервера, он недоступен в контексте приложения, пока не выполнена привязка ссылки на ресурс (в приложении) к этому ресурсу.
Поэтому пытаясь обратиться к ресурсу, даже зная его JNDI имя на сервере, должен будешь получить javax.naming.NameNotFoundException.Вот именно - что соединение проходит без проблем
WAS Global Security - ON
получается помимо описания используемых ресурсов в web.xml в приложении можно статично описать ещё некоторое подключение
chro DataSource ds = (DataSource)(new InitialContext()).lookup("jdbc/QWERTY");и к нему цепляться.

chro Если Вы ищете способ для обеспечения безопасности от того что я написал выше, обратите внимание на файлы лежащие в директории propertiesЗдесь можно поподробнее - или где можно это почитать?
...
Рейтинг: 0 / 0
04.04.2007, 14:11
    #34437419
WebSphere AS и jndi ресурсы
chroЕвгений, какого рода пример Вы ожидаете ? Что-то типа
DataSource ds = (DataSource)(new InitialContext()).lookup("jdbc/QWERTY");


:) Все, понял.
Я как-то ни разу не пробовал в своих приложениях делать именно так.
Обычно делаю lookup("java:comp/env/jdbc/QWERTY");
И при отсутствии маппинга получаю NameNotFound.

Спасибо за информацию, я почему то упустил этот момент.
...
Рейтинг: 0 / 0
09.04.2007, 07:12
    #34446238
Fushe
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
WebSphere AS и jndi ресурсы
Звиздец мужики, вам на работе то никак пообщаться? Телефон, жабу ньюсы запретили штоли?
...
Рейтинг: 0 / 0
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / WebSphere AS и jndi ресурсы / 10 сообщений из 10, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]