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

Там должна быть строка, которая соответствует выполненнему процессу с последующей детализацией, например:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
0.20300	0.00000	...Process "zsgzsgzsg" - Type: PLSQL	4	
	0.20300	0.07900	...Execute Statement: begin ... end;	4	
	0.28200	0.00000	Add error onto error stack	4	
	0.28200	0.00000	...Error data:	4	
	0.28200	0.00000	......message: ORA-31202: DBMS_LDAP: LDAP client/server error: ...	4	
	0.28200	0.01500	......additional_info: ORA-31202: DBMS_LDAP: LDAP client/server error: ...	4	
	0.29700	0.00000	......display_location: ON_ERROR_PAGE	4	
	0.29700	0.01600	......is_internal_error: false	4	
	0.31300	0.00000	......ora_sqlcode: -31202	4	
	0.31300	0.00000	......ora_sqlerrm: ORA-31202: DBMS_LDAP: LDAP client/server error: ...	4	
	0.31300	0.00000	......error_backtrace: ORA-06512: at "SYS.WWV_DBMS_SQL", line 904 ORA-06512: at "APEX_040100.WWV_FLOW_DYNAMIC_EXEC", line 618 ORA-06512: at "APEX_040100.WWV_FLOW_PROCESS", line 128 	4	
	0.31300	0.00000	......component.type: APEX_APPLICATION_PAGE_PROCESS	4	
	0.31300	0.00000	......component.id: 5364306107725178	4	
	0.31300	0.00000	......component.name: zsgzsgzsg	4	
	0.31300	0.00000	...Show Error on Error Page	4	
	0.31300	0.06200	......Performing rollback

Если процесс onSubmit может быть и не последний...

+ вы так и не ответили, 13321209 чтобы не лезть в дебри зря...
Если подставить правильные значения, в PL/SQL Developer-е выполняется без ошибок, в апексе такое же зависание с ошибкой, правильно я понимаю?
...
Рейтинг: 0 / 0
Зависание при попытке аутентификации через Active Directory
    #38002366
acya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
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.
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,
                            'domain\'||lower(p_username),
                                       p_password);
 
 v:=dbms_ldap.unbind_s(v_session);

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

 exception when others then
 return(false);
  end;



3. Выдаю права grant execute on package.my_authentication_dbms to anonymous;(под anonymous она и вызывается)
4. Делаю схему текущей
5. Запускаю приложение, ввожу существующую учетку - зависание

Варианты:
1.
Код: plsql
1.
v:=dbms_ldap.simple_bind_s(v_session, 'domain\'||'user_login', 'user_password');

Т.е. просто строки - зависание
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.
0.00000	0.00000	A C C E P T: Request="LOGIN"	4	

0.00000	0.00000	Metadata: Fetch application definition and shortcuts	4	

0.00000	0.01500	NLS: Language=en	4	

0.01500	0.00000	...metadata, fetch translated app info	4	

0.01500	0.00000	alter session set nls_language="AMERICAN"	4	

0.01500	0.00000	alter session set nls_territory="AMERICA"	4	

0.01500	0.00000	NLS: CSV charset=WE8MSWIN1252	4	

0.01500	0.00000	...NLS: Set Decimal separator="."	4	

0.01500	0.00000	...NLS: Set NLS Group separator=","	4	

0.01500	0.00000	...NLS: Set g_nls_date_format="DD-MON-RR"	4	

0.01500	0.00000	...NLS: Set g_nls_timestamp_format="DD-MON-RR HH.MI.SSXFF AM"	4	

0.01500	0.00000	...NLS: Set g_nls_timestamp_tz_format="DD-MON-RR HH.MI.SSXFF AM TZR"	4	

0.01500	0.00000	Setting NLS_DATE_FORMAT to application date format: DS	4	

0.01500	0.00000	Setting NLS_TIMESTAMP_FORMAT to application timestamp format: DS	4	

0.01500	0.00000	Setting NLS_TIMESTAMP_TZ_FORMAT to application timestamp time zone format: DS	4	

0.01500	0.00000	...NLS: Set g_nls_date_format="DS"	4	

0.01500	0.00000	...NLS: Set g_nls_timestamp_format="DS"	4	

0.01500	0.00000	...NLS: Set g_nls_timestamp_tz_format="DS"	4	

0.01500	0.00000	...fetch session state from database	4	

0.01500	0.00000	fetch items	4	

0.01500	0.00000	...fetched 1 session state items	4	

0.01500	0.00000	Authentication check: TestScheme (NATIVE_CUSTOM)	4	

0.01500	0.00000	... sentry+verification success	4	

0.01500	0.00000	...Session ID 303491311859801 can be used	4	

0.01500	0.00000	SESSION Language (nobody): wwv_flow.g_browser_language=en maplang=en	4	

0.01500	0.00000	Setting NLS_DATE_FORMAT to application date format: DS	4	

0.01500	0.00000	Setting NLS_TIMESTAMP_FORMAT to application timestamp format: DS	4	

0.01500	0.00000	Setting NLS_TIMESTAMP_TZ_FORMAT to application timestamp time zone format: DS	4	

0.01500	0.00000	...NLS: Set g_nls_date_format="DS"	4	

0.01500	0.01600	...NLS: Set g_nls_timestamp_format="DS"	4	

0.03100	0.00000	...NLS: Set g_nls_timestamp_tz_format="DS"	4	

0.03100	0.00000	NLS: Language=en	4	

0.03100	0.00000	...metadata, fetch translated app info	4	

0.03100	0.00000	...Setting session time_zone to +04:00	4	

0.03100	0.00000	...Check session 303491311859801 owner	4	

0.03100	0.00000	Setting NLS_DATE_FORMAT to application date format: DS	4	

0.03100	0.00000	Setting NLS_TIMESTAMP_FORMAT to application timestamp format: DS	4	

0.03100	0.00000	Setting NLS_TIMESTAMP_TZ_FORMAT to application timestamp time zone format: DS	4	

0.03100	0.00000	...NLS: Set g_nls_date_format="DS"	4	

0.03100	0.00000	...NLS: Set g_nls_timestamp_format="DS"	4	

0.03100	0.00000	...NLS: Set g_nls_timestamp_tz_format="DS"	4	

0.03100	0.00000	...Metadata: Fetch Page, Computation, Process, and Branch	4	

0.03100	0.00000	Session: Fetch session header information	4	

0.03100	0.00000	...metadata, fetch page info	4	

0.03100	0.00000	...Validate item page affinity.	4	

0.03100	0.00000	...Validate protected items.	4	

0.03100	0.00000	...Check authorization security schemes	4	

0.03100	0.00000	Session State: Save form items and p_arg_values	4	

0.03100	0.00000	...Session State: Save "P112_USERNAME" - saving same value: "tpodelinskaya"	4	

0.03100	0.00000	Processes - point: ON_SUBMIT_BEFORE_COMPUTATION	4	

0.03100	0.00000	Branch point: Before Computation	4	

0.03100	0.00000	Computation point: After Submit	4	

0.03100	0.00000	Tabs: Perform Branching for Tab Requests	4	

0.03100	0.00000	Branch point: Before Validation	4	

0.03100	0.00000	Validations:	4	

0.03100	0.01600	Perform basic and predefined validations:	4	

0.04700	0.00000	Perform custom validations:	4	

0.04700	0.00000	Branch point: Before Processing	4	

0.04700	0.00000	Processes - point: AFTER_SUBMIT	4	

0.04700	0.00000	...Process "Set Username Cookie" - Type: PLSQL	4	

0.04700	0.00000	...Execute Statement: begin apex_authentication.send_login_username_cookie ( p_username => lower(:P112_USERNAME) ); end;	4	

0.04700	0.00000	...Process "Login" - Type: PLSQL	4	

0.04700	0.00000	...Execute Statement: begin apex_authentication.login( p_username => :P112_USERNAME, p_password => :P112_PASSWORD ); end;	4	

0.04700	0.00000	...Session ID 303491311859801 can be used	4	

0.04700	-	...Execute Statement: begin declare begin wwv_flow.g_boolean := package.my_authentication_dbms( p_username => :p_username, p_password => :p_password ); end; end;	4	-
1 - 65


...
Рейтинг: 0 / 0
Зависание при попытке аутентификации через Active Directory
    #38002579
SvDev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
acya3. Выдаю права grant execute on package.my_authentication_dbms to anonymous;(под anonymous она и вызывается)
Для апекс приложения никакие grants to anonymous не нужны, максимум гранты собственнику приложения, которая уже имеет права на свои процедуры. В общем-то опыты с anonymous бесполезны, в том числе в pl/sql developer-е

acya4. Делаю схему текущей
Я надеюсь, вы в apex никаких alter не делаете, речь в апексе может быть лишь в выборе Parsing Schema в свойствах приложения - схемы, в которой вы ведете разработку ...
...
Рейтинг: 0 / 0
Зависание при попытке аутентификации через Active Directory
    #38002623
acya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SvDevacya4. Делаю схему текущей
Я надеюсь, вы в apex никаких alter не делаете, речь в апексе может быть лишь в выборе Parsing Schema в свойствах приложения - схемы, в которой вы ведете разработку ...

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

А что такое package, это имя схемы (в пакетах нельзя писать create or replace) ?

Совпадает ли схема функции my_authentication_dbms с Parsing Schema в свойствах приложения? Схема обычная - созданная или особая (system, apex_040100 и т.д.)
...
Рейтинг: 0 / 0
Зависание при попытке аутентификации через Active Directory
    #38002672
acya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
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
...
Рейтинг: 0 / 0
Зависание при попытке аутентификации через Active Directory
    #38002738
SvDev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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.
declare 
  p_schema varchar2(30);
  p_app_id number := ; -- номер апекс приложения
  p_app_user varchar2(100) := ; -- пользователь апекс приложения
  p_app_pw varchar2(100) := ; -- пароль апекс приложения
  
  -- код вызова проверяемого процесса
  p_code varchar2(4000) := 'begin if схема.my_authentication_dbms then null; else null; end if; end;';
begin
  select t.schema into p_schema
  from dba_registry t
  where comp_id = 'APEX';

  apex_application.G_PUBLIC_USER := 'ANONYMOUS';
  for c1 in ( select workspace_id
              from apex_applications
              where application_id = p_app_id ) loop

     apex_util.set_security_group_id( p_security_group_id => c1.workspace_id );
     exit;
  end loop;

  apex_custom_auth.login(
          p_uname => p_app_user,
          p_password => p_app_pw,
          p_app_page => p_app_id || ':1'
  );
  
  execute immediate( 'declare param number; begin '
                  || '  param := ' || p_schema || '.WWV_FLOW_META_DATA.FETCH_FLOW_INFO;'
                  || 'end;' );
                  
  htp.init;
  execute immediate( 'begin ' || p_schema || '.WWV_FLOW_DYNAMIC_EXEC.EXECUTE_PLSQL_CODE('''
                  || p_code || '''); end; ');
end;


Выполнять под system, схема my_authentication_dbms обычная (не system/apex_040100 и т.д.)
Схему аутентификации приложения такая, чтобы аутентифицировала без всяких ldap указанного пользователя
...
Рейтинг: 0 / 0
Зависание при попытке аутентификации через Active Directory
    #38002797
SvDev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
acya,

Обе схемы схема1, схема2 ваши созданные? Лучше всего использовать одну схему, при таких ошибках...
...
Рейтинг: 0 / 0
Зависание при попытке аутентификации через Active Directory
    #38002897
SvDev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Еще лучше p_code такой
Код: plsql
1.
  p_code varchar2(4000) := 'begin if схема.my_authentication_dbms then raise_application_error(-20001,''''TRUE''''); else raise_application_error(-20001,''''FALSE''''); end if; end;';


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

Подняли другую Active Directory, заработало с полпинка

Видимо, проблема в нехватке прав на серверные ресурсы, думаю над тем, кому и чего не хватает, сам процесс oracle.exe выполняет все корректно без участия EPG, а через него фейл

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

У вас же не EPG с Active Directory общается, а тот же Oracle Database, только метод вызова указанного PL/SQL разный...
А как его отчасти воспроизвести - я написал, если оборвется, смотреть что дописывается в alert.log:
Код: plsql
1.
2.
select value from v$parameter 
where name = 'background_dump_dest'



+ Oracle Application Express Installation Requirements пункт 2.1.1
...
Рейтинг: 0 / 0
11 сообщений из 36, страница 2 из 2
Форумы / Oracle APEX [игнор отключен] [закрыт для гостей] / Зависание при попытке аутентификации через Active Directory
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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