|
|
|
Apache Http Server proxy to Oracle Apex Listener
|
|||
|---|---|---|---|
|
#18+
Использую Oracle 11.2 + Oracle Apex 4.2 с настроенным на него Oracle Apex Listener 2.3 для внутренней сети предприятия. Появилась необходимость дать доступ внешним пользователям (интернет), которые будут соединятся через DMZ (ОС Windows Server 2008 R2), и используя там Apache Http Server 2.4 с proxy модулем к Apex Listener. Установил и сконфигурировал Apache Http Server 2.4 с модулем mod_proxy: Код: html 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. Но когда я в браузере (Internet Explorer) ввел адрес: test1:8090/apex, мне вернуло страницу с ошибкой от Apex Listener: Код: html 1. 2. 3. Как я понял, ошибка возникла из-за символа "?" в заданном URL в команде ProxyPass. Сам режим прокси работает, поскольку проверял на других внутренних сайтах (где не было в URL символа "?"), но мне нужно выдать доступ только на одно Apex-приложение, а адрес у них всегда содержит фразу "f?p=". Как правильно задать URL для этих приложений, в котором содержится символ "?", или как обойти эту ошибку? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.03.2014, 17:25 |
|
||
|
Apache Http Server proxy to Oracle Apex Listener
|
|||
|---|---|---|---|
|
#18+
Решил попробовать модуль mod_rewrite, который позволяет преобразовывать URL и выполнять редирект, а также как прокси ( http://httpd.apache.org/docs/current/rewrite/proxy.html). Изменил конфиг в httpd.conf: Код: html 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. Перезапустил Apache Http Server, и ввел в браузере http://test1:8090/apex, после чего у меня открылась страница авторизации в Apex-приложение. Но кроме ввода логина и пароля, больше ничего не работало, такое ощущение, что загрузилась обычная html без java-скриптов, которые отправляют данные по авторизации. mod_rewrite помог зайти на страницу приложения, но все скрипты страницы при этом перестали работать (т.е. страница перестала быть интерактивной). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.03.2014, 00:08 |
|
||
|
Apache Http Server proxy to Oracle Apex Listener
|
|||
|---|---|---|---|
|
#18+
SOULURAN, Не совсем понял, у вас задача какая, ограничить доступ ко всем приложениям, кроме 134, или 134 это у вас просто приложение по умолчанию ? И почему у вас в одном месте f?p134, а в другом f?p=134 ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.03.2014, 13:42 |
|
||
|
Apache Http Server proxy to Oracle Apex Listener
|
|||
|---|---|---|---|
|
#18+
SvDev, Мне надо открыть доступ только для приложения http://apex.test.int/apex/f?p=134 - это есть прямая ссылка на Apex-приложение, которую юзает Apex Listener, и оно не по умолчанию. f?p134 - это я тут случайно ввел без знака "=", а так в конфе f?p=134. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.03.2014, 14:24 |
|
||
|
Apache Http Server proxy to Oracle Apex Listener
|
|||
|---|---|---|---|
|
#18+
в общем, если вы пытались указать приложение по умолчанию, можно как-то так: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.03.2014, 14:25 |
|
||
|
Apache Http Server proxy to Oracle Apex Listener
|
|||
|---|---|---|---|
|
#18+
SOULURANМне надо открыть доступ только для приложения http://apex.test.int/apex/f?p=134 Вы не учитываете, что кроме ссылок на приложения, у них есть общие ресурсы (картинки, public functions), поэтому этот подход - ограничивать доступ к приложениям через прокси, весьма ущербный. Нельзя запретить полностью доступ ко всем ресурсам приложения, правда ограничить переход по некоторым ссылкам в принципе можно. список разрешенных функций можно взять из документации (доступ через /apex) http://docs.oracle.com/cd/E37099_01/doc/doc.20/e25066/config_file.htm#AELIG7205 apex, p, v, f, wwv_*, y*, c* + разрешены картинки (доступ через /i) Поэтому тут проще спроксировать всё, кроме заданных url, (не тестировал, но мне это видится как-то так) Код: sql 1. 2. 3. 4. Но тут нужно еще учитывать, что могут найтись дырки: f?p=134, допустим, вы запрещаете, а доступ можно будет получить через Код: sql 1. (p_instance - сессия, p_flow_id - приложение, p_flow_step_id - страница) т.е. запретить вам получается нужно: /apex/f?p=134 wwv_flow.show?p_instance=цифры&p_flow_id=134 (это те, про которые мне известно, а я могу знать не все) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.03.2014, 14:33 |
|
||
|
Apache Http Server proxy to Oracle Apex Listener
|
|||
|---|---|---|---|
|
#18+
SvDevНо тут нужно еще учитывать, что могут найтись дырки: А можно еще вот так вот приложение запросить, например: f?p_trace=NO&p=134:LOGIN_DESKTOP:0 чтобы параметр p был вторым ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.03.2014, 15:06 |
|
||
|
Apache Http Server proxy to Oracle Apex Listener
|
|||
|---|---|---|---|
|
#18+
Спасибо, SvDev. Получилось запустить приложение 134 по вот вашему конфигу: Код: html 1. 2. 3. 4. 5. 6. 7. 8. 9. Ввел в браузере URL - http://test1:8090/f?p=134, запустилось окно авторизации к приложению. Ввел логин и пароль, нажал Ок и Apex-приложение запустилось. Насчет фильтрации пользовательских запросов и безопасности тут придется подумать еще. Но, спасибо, за предложенное направление действий. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.03.2014, 16:32 |
|
||
|
|

start [/forum/topic.php?fid=50&msg=38582974&tid=1875388]: |
0ms |
get settings: |
5ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
58ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
46ms |
get tp. blocked users: |
1ms |
| others: | 218ms |
| total: | 353ms |

| 0 / 0 |
