|
Зависание при попытке аутентификации через Active Directory
|
|||
---|---|---|---|
#18+
Доброго времени суток Пытаюсь настроить аутентификацию в Active Directory, сначала создала Authentication Scheme, прописала необходимые параметры. Но при введении логина\пароля страница подвисает и через некоторое время выдает сообщение Ошибка 324 (net::ERR_EMPTY_RESPONSE): Сервер разорвал соединение, не отправив данные Попробовала использовать Custom Authentication Scheme и написать свою функцию. Вписала ее в поле Authentication Function Name из формы редактирования Authentication Scheme Текст процедуры: create or replace function my_authentication ( p_username in varchar2, p_password in varchar2 ) return boolean is begin return( apex_040100.wwv_flow_custom_auth_ldap.authenticate('domain\'||lower(p_username), null, p_password, 'server', 389, 'N', 'Y') ); end; Где domain - домен, где ищем пользователя server - адрес сервера AD Но результат тот же. Зависание. В PL\SQL Developer не зависает и работает корректно. При изменении кода этой процедуры, например на простое сравнение логина и пароля с конкретными значениями - работает. При вставке непосредственно процедур dbms_ldap тоже зависает. Не знаю куда копать:( Может быть, кто-то сталкивался или есть мысли по направлению поиска решения. Буду благодарна. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.10.2012, 17:39 |
|
Зависание при попытке аутентификации через Active Directory
|
|||
---|---|---|---|
#18+
acya, 1. Версия базы? Если 11-я ACL настроен? 2. Вы приведите пример без недокументированных функций, apex_ldap или dbms_ldap, так чтобы зависал в APEX и срабатывал в PL/SQL Developer 3. Попробуйте это вызвать не при аутентификации, а, скажем, в процессе на странице ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2012, 15:04 |
|
Зависание при попытке аутентификации через Active Directory
|
|||
---|---|---|---|
#18+
SvDev, База 10-ка, acl вроде там не требуется Пытаюсь использовать такой код сейчас create or replace function my_authentication_dbms(p_username in varchar2, p_password in varchar2) return boolean is v_session dbms_ldap.SESSION; v PLS_INTEGER; begin v_session:=dbms_ldap.init('server',389); v:=dbms_ldap.simple_bind_s(v_session,'dom\'||lower(p_username),p_password); v:=dbms_ldap.unbind_s(v_session); if v=dbms_ldap.SUCCESS then return(true); end if; exception when others then return(false); end; При попытке выполнить как процесс на странице, происходит зависание страницы пр попытке ее запустить. В Pl\SQL Developer отрабатывает корректно, в том числе под anonymous(под ним вызывается в клиенте аутентификация) ... |
|||
:
Нравится:
Не нравится:
|
|||
11.10.2012, 12:22 |
|
Зависание при попытке аутентификации через Active Directory
|
|||
---|---|---|---|
#18+
На странице, где требуется ввод логина\пароля вызывается apex_authentication.login( p_username => :P112_USERNAME, p_password => :P112_PASSWORD ); Я пробовала в функции аутентификации не использовать bind, а просто сравнить логин с текстом - отрабатывает в apex корректно. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.10.2012, 12:25 |
|
Зависание при попытке аутентификации через Active Directory
|
|||
---|---|---|---|
#18+
acya, элементарно, в том же процессе вызываете raise_application_error(-20001, :P112_USERNAME || ' ! ' || :P112_PASSWORD ); сравниваете с теми, которые вы подставляете в PL/SQL Developer ... |
|||
:
Нравится:
Не нравится:
|
|||
11.10.2012, 12:43 |
|
Зависание при попытке аутентификации через Active Directory
|
|||
---|---|---|---|
#18+
acya, Пока забудем про аутентификацию и разберемся с процессом на странице. Похоже вы просто не можете правильно передать туда логин и пароль. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.10.2012, 12:47 |
|
Зависание при попытке аутентификации через Active Directory
|
|||
---|---|---|---|
#18+
SvDev, Я пробовала убирать из функции аутентификации работу с ldap, прописала туда логирование данных, вводимых в форме. По логам - передается то, что вводили, если Вы об этом. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.10.2012, 10:07 |
|
Зависание при попытке аутентификации через Active Directory
|
|||
---|---|---|---|
#18+
SvDev, Попробовала Ваш код, возвращает в ошибке, что вводила ... |
|||
:
Нравится:
Не нравится:
|
|||
15.10.2012, 10:10 |
|
Зависание при попытке аутентификации через Active Directory
|
|||
---|---|---|---|
#18+
acya, Еще раз, создайте хранимую процедуру без bind variables совсем, со статически прописанными именем пользователем и паролем и др., потом повторите эксперимент с вызовом в pl/sql Developer'e и в процессе на странице нового приложения... Код у вас рабочий, и в апексе нет ничего такого специфического, чтобы вызывало ошибку. И выведите полный стек ошибок. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.10.2012, 12:24 |
|
Зависание при попытке аутентификации через Active Directory
|
|||
---|---|---|---|
#18+
SvDev, Что Вы подразумевали под полным стеком ошибок? Код процедуры: create or replace function my_authentication ( p_username in varchar2, p_password in varchar2 ) return boolean is begin if lower(p_username)='acya' and p_password='123' then return true; else return false; end if; end; Код, прописанный на странице логина(выполняется после нажатия кнопки "Логин") begin if package.my_authentication(:P112_USERNAME,:P112_PASSWORD) then raise_application_error(-20001,'true'); else raise_application_error(-20001,'false'); end if; end; Все вместе отрабатывает корректно ... |
|||
:
Нравится:
Не нравится:
|
|||
15.10.2012, 12:57 |
|
Зависание при попытке аутентификации через Active Directory
|
|||
---|---|---|---|
#18+
acya, Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19.
Выполняете Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
в 1. PL/SQL Developer 2. В апекс новом приложении в каком-нибудь процессе Выводите сюда Technical Info и сообщение об ошибке полностью, которые отобразятся ... |
|||
:
Нравится:
Не нравится:
|
|||
15.10.2012, 14:16 |
|
Зависание при попытке аутентификации через Active Directory
|
|||
---|---|---|---|
#18+
SvDev, В PL\SQL Developer всегда(даже при существующей учетной записи), кроме пустого пароля: ORA-31202: DBMS_LDAP: LDAP client/server error: Invalid credentials. 80090308: LdapErr: DSID-0C090334, comment: AcceptSecurityContext error, data 525, vece ORA-06512: at "SYS.DBMS_SYS_ERROR", line 86 ORA-06512: at "SYS.DBMS_LDAP", line 1455 ORA-06512: at "SYS.DBMS_LDAP", line 79 ORA-06512: at "PACKAGE.MY_AUTH", line 8 ORA-06512: at line 4 В apex(код выполняется по кнопке), браузер долго думает, а потом выдает. В любом случае. Ошибка 324 (net::ERR_EMPTY_RESPONSE): Сервер разорвал соединение, не отправив данные. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.10.2012, 15:00 |
|
Зависание при попытке аутентификации через Active Directory
|
|||
---|---|---|---|
#18+
acya, Ранее acyaВ PL\SQL Developer не зависает и работает корректно Подставьте те значения, которые у вас отрабатывали в первом примере, только статикой acyaОшибка 324 (net::ERR_EMPTY_RESPONSE): Сервер разорвал соединение, не отправив данные. Если вы под разработчиком и приложение новое, процесс, скажем, On Load - Before Header, тогда на странице выведется нормальная ora-ошибка, ниже будет ссылка Technical Info ... |
|||
:
Нравится:
Не нравится:
|
|||
15.10.2012, 15:48 |
|
Зависание при попытке аутентификации через Active Directory
|
|||
---|---|---|---|
#18+
acyaОшибка 324 (net::ERR_EMPTY_RESPONSE): Сервер разорвал соединение, не отправив данные. Я понял, это у вас ошибка браузера, обычно возникает 404, тогда смотрите в лог, какая ошибка, в зависимости от сценария установки http://www.inside-oracle-apex.com/oracle-apex-got-404-not-found-2/ ... |
|||
:
Нравится:
Не нравится:
|
|||
15.10.2012, 16:07 |
|
Зависание при попытке аутентификации через Active Directory
|
|||
---|---|---|---|
#18+
SvDev, Включила дебаг в логировании для Embedded PL/SQL Gateway В трейсах из ошибок только это ksedmp: internal or fatal error ORA-07445: exception encountered: core dump [ACCESS_VIOLATION] [unable_to_trans_pc] [PC:0x5CDDE95] [ADDR:0x39E96A50] [UNABLE_TO_READ] [] ... |
|||
:
Нравится:
Не нравится:
|
|||
16.10.2012, 15:31 |
|
Зависание при попытке аутентификации через Active Directory
|
|||
---|---|---|---|
#18+
SvDev, зависание происходит в независимости от вида браузера ... |
|||
:
Нравится:
Не нравится:
|
|||
16.10.2012, 15:32 |
|
Зависание при попытке аутентификации через Active Directory
|
|||
---|---|---|---|
#18+
acyaВ трейсах из ошибок только это т.е. под sys выполняли Код: plsql 1.
и на экран ошибка все равно не выводится? ... |
|||
:
Нравится:
Не нравится:
|
|||
16.10.2012, 16:08 |
|
Зависание при попытке аутентификации через Active Directory
|
|||
---|---|---|---|
#18+
SvDev, вот так я проставляла уровень execute dbms_epg.set_global_attribute('log-level',dbms_epg.LOG_DEBUG); ... |
|||
:
Нравится:
Не нравится:
|
|||
16.10.2012, 16:23 |
|
Зависание при попытке аутентификации через Active Directory
|
|||
---|---|---|---|
#18+
SvDev, На экране не было оракловых сообщений ... |
|||
:
Нравится:
Не нравится:
|
|||
16.10.2012, 16:26 |
|
Зависание при попытке аутентификации через Active Directory
|
|||
---|---|---|---|
#18+
acyadbms_epg.LOG_DEBUG Поставьте уровень dbms_epg.LOG_ERR Про EPG тут подробно http://daust.blogspot.co.uk/2008/04/troubleshooting-404-not-found-error-on.html ... |
|||
:
Нравится:
Не нравится:
|
|||
16.10.2012, 16:39 |
|
Зависание при попытке аутентификации через Active Directory
|
|||
---|---|---|---|
#18+
SvDev, получаю аналогичный трейс ... |
|||
:
Нравится:
Не нравится:
|
|||
16.10.2012, 16:49 |
|
Зависание при попытке аутентификации через Active Directory
|
|||
---|---|---|---|
#18+
Еще вариант, перед выполнением процесса в Developer Toolbar нажать кнопку Debug, далее назад в браузере и view debug, последний запрос ... |
|||
:
Нравится:
Не нравится:
|
|||
16.10.2012, 16:52 |
|
Зависание при попытке аутентификации через Active Directory
|
|||
---|---|---|---|
#18+
SvDev, А может это быть связано с режимом shared servers ? ... |
|||
:
Нравится:
Не нравится:
|
|||
16.10.2012, 17:47 |
|
Зависание при попытке аутентификации через Active Directory
|
|||
---|---|---|---|
#18+
acya, Это могут быть некорректные установки system/NLS параметров, ora-...unable to allocate... и т.д., т.е. ошибки не связанные с апекс. Дебаг что выводит? ... |
|||
:
Нравится:
Не нравится:
|
|||
16.10.2012, 18:21 |
|
Зависание при попытке аутентификации через Active Directory
|
|||
---|---|---|---|
#18+
SvDev, А какую именно информацию нужно из Debug? Там есть роспись по стадиям, что делалось Debug - > ViewIdentifire(последний выполненный) и есть вкладка Errors, но там пусто В дебаге такая информация по NLS NLS: Language=en metadata, fetch translated app info alter session set nls_language="AMERICAN" alter session set nls_territory="AMERICA" NLS: CSV charset=WE8MSWIN1252 NLS: Set Decimal separator="." NLS: Set NLS Group separator="," NLS: Set g_nls_date_format="DD-MON-RR" Set g_nls_timestamp_format="DD-MON-RR HH.MI.SSXFF AM" Set g_nls_timestamp_tz_format="DD-MON-RR HH.MI.SSXFF AM TZR" NLS_DATE_FORMAT to application date format: DS NLS_TIMESTAMP_FORMAT to application timestamp format: DS NLS_TIMESTAMP_TZ_FORMAT to application timestamp time zone format: DS NLS Set g_nls_date_format="DS" NLS Set g_nls_timestamp_format="DS" NLS: Set g_nls_timestamp_tz_format="DS" ... SESSION Language (nobody): wwv_flow.g_browser_language=en maplang=en ...NLS: Set g_nls_date_format="DS" ...NLS: Set g_nls_timestamp_format="DS" ...NLS: Set g_nls_timestamp_tz_format="DS" NLS: Language=en Setting NLS_DATE_FORMAT to application date format: DS Setting NLS_TIMESTAMP_FORMAT to application timestamp format: DS Setting NLS_TIMESTAMP_TZ_FORMAT to application timestamp time zone format: DS ...NLS: Set g_nls_date_format="DS" ...NLS: Set g_nls_timestamp_format="DS" ...NLS: Set g_nls_timestamp_tz_format="DS" ... |
|||
:
Нравится:
Не нравится:
|
|||
17.10.2012, 12:48 |
|
Зависание при попытке аутентификации через Active Directory
|
|||
---|---|---|---|
#18+
acya, Там должна быть строка, которая соответствует выполненнему процессу с последующей детализацией, например: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15.
Если процесс onSubmit может быть и не последний... + вы так и не ответили, 13321209 чтобы не лезть в дебри зря... Если подставить правильные значения, в PL/SQL Developer-е выполняется без ошибок, в апексе такое же зависание с ошибкой, правильно я понимаю? ... |
|||
:
Нравится:
Не нравится:
|
|||
17.10.2012, 13:25 |
|
Зависание при попытке аутентификации через Active Directory
|
|||
---|---|---|---|
#18+
SvDev, Описываю все шаги: 1. Создаю схему аутентификации в APEX, в поле Authentication Function Name пишу package.my_authentication_dbms 2. Функция выглядит след. образом Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18.
3. Выдаю права grant execute on package.my_authentication_dbms to anonymous;(под anonymous она и вызывается) 4. Делаю схему текущей 5. Запускаю приложение, ввожу существующую учетку - зависание Варианты: 1. Код: plsql 1.
Т.е. просто строки - зависание 2. Если убрать работу с пакетом dbms_ldap вообще - работает, в приложение пускает 3. Если написать этот код(с dbms_ldap) в теле процесса, который вызывался бы на странице получаем аналогичное зависание Трейсы от debug кончаются на вызове функции аутентификации(каким бы способом она не вызывалась) Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107. 108. 109. 110. 111. 112. 113. 114. 115. 116. 117. 118. 119. 120. 121. 122. 123. 124. 125. 126. 127. 128. 129. 130. 131. 132.
... |
|||
:
Нравится:
Не нравится:
|
|||
17.10.2012, 13:51 |
|
Зависание при попытке аутентификации через Active Directory
|
|||
---|---|---|---|
#18+
acya3. Выдаю права grant execute on package.my_authentication_dbms to anonymous;(под anonymous она и вызывается) Для апекс приложения никакие grants to anonymous не нужны, максимум гранты собственнику приложения, которая уже имеет права на свои процедуры. В общем-то опыты с anonymous бесполезны, в том числе в pl/sql developer-е acya4. Делаю схему текущей Я надеюсь, вы в apex никаких alter не делаете, речь в апексе может быть лишь в выборе Parsing Schema в свойствах приложения - схемы, в которой вы ведете разработку ... ... |
|||
:
Нравится:
Не нравится:
|
|||
17.10.2012, 14:54 |
|
Зависание при попытке аутентификации через Active Directory
|
|||
---|---|---|---|
#18+
SvDevacya4. Делаю схему текущей Я надеюсь, вы в apex никаких alter не делаете, речь в апексе может быть лишь в выборе Parsing Schema в свойствах приложения - схемы, в которой вы ведете разработку ... Я имела в виду схему аутентификации. Там нужно кликнуть кнопку Make Current ... |
|||
:
Нравится:
Не нравится:
|
|||
17.10.2012, 15:05 |
|
Зависание при попытке аутентификации через Active Directory
|
|||
---|---|---|---|
#18+
acya, А что такое package, это имя схемы (в пакетах нельзя писать create or replace) ? Совпадает ли схема функции my_authentication_dbms с Parsing Schema в свойствах приложения? Схема обычная - созданная или особая (system, apex_040100 и т.д.) ... |
|||
:
Нравится:
Не нравится:
|
|||
17.10.2012, 15:19 |
|
Зависание при попытке аутентификации через Active Directory
|
|||
---|---|---|---|
#18+
SvDevacya, А что такое package, это имя схемы (в пакетах нельзя писать create or replace) ? Совпадает ли схема функции my_authentication_dbms с Parsing Schema в свойствах приложения? Схема обычная - созданная или особая (system, apex_040100 и т.д.) Да, имя схемы Есть схема, в которой лежит my_authentication_dbms - схема1 Есть схема, которая прописана в Parsing Schema - схема2 Выданы права grant execute on схема1.my_authentication_dbms to схема2 ... |
|||
:
Нравится:
Не нравится:
|
|||
17.10.2012, 15:23 |
|
Зависание при попытке аутентификации через Active Directory
|
|||
---|---|---|---|
#18+
acya, Вы можете отчасти эмулировать из pl/sql developer-а недокументированными функциями, в надежде, что будет более подробная информация об ошибке, например: Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36.
Выполнять под system, схема my_authentication_dbms обычная (не system/apex_040100 и т.д.) Схему аутентификации приложения такая, чтобы аутентифицировала без всяких ldap указанного пользователя ... |
|||
:
Нравится:
Не нравится:
|
|||
17.10.2012, 15:50 |
|
Зависание при попытке аутентификации через Active Directory
|
|||
---|---|---|---|
#18+
acya, Обе схемы схема1, схема2 ваши созданные? Лучше всего использовать одну схему, при таких ошибках... ... |
|||
:
Нравится:
Не нравится:
|
|||
17.10.2012, 16:13 |
|
Зависание при попытке аутентификации через Active Directory
|
|||
---|---|---|---|
#18+
Еще лучше p_code такой Код: plsql 1.
Чтобы видеть, выполняется ли... ... |
|||
:
Нравится:
Не нравится:
|
|||
17.10.2012, 16:42 |
|
Зависание при попытке аутентификации через Active Directory
|
|||
---|---|---|---|
#18+
SvDev, Подняли другую Active Directory, заработало с полпинка Видимо, проблема в нехватке прав на серверные ресурсы, думаю над тем, кому и чего не хватает, сам процесс oracle.exe выполняет все корректно без участия EPG, а через него фейл База 10g, acl добавлять не требуется ... |
|||
:
Нравится:
Не нравится:
|
|||
18.10.2012, 10:11 |
|
Зависание при попытке аутентификации через Active Directory
|
|||
---|---|---|---|
#18+
acya, У вас же не EPG с Active Directory общается, а тот же Oracle Database, только метод вызова указанного PL/SQL разный... А как его отчасти воспроизвести - я написал, если оборвется, смотреть что дописывается в alert.log: Код: plsql 1. 2.
+ Oracle Application Express Installation Requirements пункт 2.1.1 ... |
|||
:
Нравится:
Не нравится:
|
|||
18.10.2012, 11:19 |
|
|
start [/forum/topic.php?all=1&fid=50&tid=1875954]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
43ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
71ms |
get tp. blocked users: |
1ms |
others: | 321ms |
total: | 482ms |
0 / 0 |