powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Oracle APEX [игнор отключен] [закрыт для гостей] / Зависание при попытке аутентификации через Active Directory
25 сообщений из 36, страница 1 из 2
Зависание при попытке аутентификации через Active Directory
    #37985805
acya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброго времени суток

Пытаюсь настроить аутентификацию в 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 тоже зависает.

Не знаю куда копать:(

Может быть, кто-то сталкивался или есть мысли по направлению поиска решения.


Буду благодарна.
...
Рейтинг: 0 / 0
Зависание при попытке аутентификации через Active Directory
    #37991827
SvDev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
acya,

1. Версия базы? Если 11-я ACL настроен?

2. Вы приведите пример без недокументированных функций, apex_ldap или dbms_ldap,
так чтобы зависал в APEX и срабатывал в PL/SQL Developer

3. Попробуйте это вызвать не при аутентификации, а, скажем, в процессе на странице
...
Рейтинг: 0 / 0
Зависание при попытке аутентификации через Active Directory
    #37993443
acya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
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(под ним вызывается в клиенте аутентификация)
...
Рейтинг: 0 / 0
Зависание при попытке аутентификации через Active Directory
    #37993448
acya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
На странице, где требуется ввод логина\пароля вызывается
apex_authentication.login(
p_username => :P112_USERNAME,
p_password => :P112_PASSWORD );

Я пробовала в функции аутентификации не использовать bind, а просто сравнить логин с текстом - отрабатывает в apex корректно.
...
Рейтинг: 0 / 0
Зависание при попытке аутентификации через Active Directory
    #37993493
SvDev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
acya,

элементарно, в том же процессе вызываете

raise_application_error(-20001, :P112_USERNAME || ' ! ' || :P112_PASSWORD );

сравниваете с теми, которые вы подставляете в PL/SQL Developer
...
Рейтинг: 0 / 0
Зависание при попытке аутентификации через Active Directory
    #37993507
SvDev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
acya,

Пока забудем про аутентификацию и разберемся с процессом на странице. Похоже вы просто не можете правильно передать туда логин и пароль.
...
Рейтинг: 0 / 0
Зависание при попытке аутентификации через Active Directory
    #37998039
acya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SvDev,

Я пробовала убирать из функции аутентификации работу с ldap, прописала туда логирование данных, вводимых в форме.
По логам - передается то, что вводили, если Вы об этом.
...
Рейтинг: 0 / 0
Зависание при попытке аутентификации через Active Directory
    #37998045
acya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SvDev,

Попробовала Ваш код, возвращает в ошибке, что вводила
...
Рейтинг: 0 / 0
Зависание при попытке аутентификации через Active Directory
    #37998302
SvDev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
acya,

Еще раз, создайте хранимую процедуру без bind variables совсем, со статически прописанными именем пользователем и паролем и др., потом повторите эксперимент с вызовом в pl/sql Developer'e и в процессе на странице нового приложения... Код у вас рабочий, и в апексе нет ничего такого специфического, чтобы вызывало ошибку.

И выведите полный стек ошибок.
...
Рейтинг: 0 / 0
Зависание при попытке аутентификации через Active Directory
    #37998406
acya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
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;


Все вместе отрабатывает корректно
...
Рейтинг: 0 / 0
Зависание при попытке аутентификации через Active Directory
    #37998639
SvDev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
acya,

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
create or replace function my_authentication_dbms 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,'username','123456');
 
 v:=dbms_ldap.unbind_s(v_session);

  if v=dbms_ldap.SUCCESS then
     return(true);
       end if;

/* exception when others then ! */
 return(false); 

  end;



Выполняете

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
begin

if package.my_authentication_dbms then

  null;
else
  null;
end if;

end;



в
1. PL/SQL Developer
2. В апекс новом приложении в каком-нибудь процессе

Выводите сюда Technical Info и сообщение об ошибке полностью, которые отобразятся
...
Рейтинг: 0 / 0
Зависание при попытке аутентификации через Active Directory
    #37998746
acya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
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): Сервер разорвал соединение, не отправив данные.
...
Рейтинг: 0 / 0
Зависание при попытке аутентификации через Active Directory
    #37998837
SvDev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
acya,

Ранее
acyaВ PL\SQL Developer не зависает и работает корректно
Подставьте те значения, которые у вас отрабатывали в первом примере, только статикой

acyaОшибка 324 (net::ERR_EMPTY_RESPONSE): Сервер разорвал соединение, не отправив данные.
Если вы под разработчиком и приложение новое, процесс, скажем, On Load - Before Header, тогда на странице выведется нормальная ora-ошибка, ниже будет ссылка Technical Info
...
Рейтинг: 0 / 0
Зависание при попытке аутентификации через Active Directory
    #37998878
SvDev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
acyaОшибка 324 (net::ERR_EMPTY_RESPONSE): Сервер разорвал соединение, не отправив данные.
Я понял, это у вас ошибка браузера, обычно возникает 404, тогда смотрите в лог, какая ошибка, в зависимости от сценария установки

http://www.inside-oracle-apex.com/oracle-apex-got-404-not-found-2/
...
Рейтинг: 0 / 0
Зависание при попытке аутентификации через Active Directory
    #38000640
acya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
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] []
...
Рейтинг: 0 / 0
Зависание при попытке аутентификации через Active Directory
    #38000645
acya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SvDev,

зависание происходит в независимости от вида браузера
...
Рейтинг: 0 / 0
Зависание при попытке аутентификации через Active Directory
    #38000745
SvDev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
acyaВ трейсах из ошибок только это
т.е. под sys выполняли
Код: plsql
1.
exec dbms_epg.set_dad_attribute('APEX', 'error-style', 'DebugStyle');


и на экран ошибка все равно не выводится?
...
Рейтинг: 0 / 0
Зависание при попытке аутентификации через Active Directory
    #38000781
acya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SvDev,

вот так я проставляла уровень

execute dbms_epg.set_global_attribute('log-level',dbms_epg.LOG_DEBUG);
...
Рейтинг: 0 / 0
Зависание при попытке аутентификации через Active Directory
    #38000788
acya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SvDev,

На экране не было оракловых сообщений
...
Рейтинг: 0 / 0
Зависание при попытке аутентификации через Active Directory
    #38000814
SvDev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
acyadbms_epg.LOG_DEBUG
Поставьте уровень dbms_epg.LOG_ERR
Про EPG тут подробно http://daust.blogspot.co.uk/2008/04/troubleshooting-404-not-found-error-on.html
...
Рейтинг: 0 / 0
Зависание при попытке аутентификации через Active Directory
    #38000842
acya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SvDev,

получаю аналогичный трейс
...
Рейтинг: 0 / 0
Зависание при попытке аутентификации через Active Directory
    #38000847
SvDev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Еще вариант, перед выполнением процесса в Developer Toolbar нажать кнопку Debug, далее назад в браузере и view debug, последний запрос
...
Рейтинг: 0 / 0
Зависание при попытке аутентификации через Active Directory
    #38000985
acya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SvDev,

А может это быть связано с режимом shared servers ?
...
Рейтинг: 0 / 0
Зависание при попытке аутентификации через Active Directory
    #38001068
SvDev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
acya,

Это могут быть некорректные установки system/NLS параметров, ora-...unable to allocate... и т.д., т.е. ошибки не связанные с апекс.

Дебаг что выводит?
...
Рейтинг: 0 / 0
Зависание при попытке аутентификации через Active Directory
    #38002196
acya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
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"
...
Рейтинг: 0 / 0
25 сообщений из 36, страница 1 из 2
Форумы / Oracle APEX [игнор отключен] [закрыт для гостей] / Зависание при попытке аутентификации через Active Directory
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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