Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Религиозные войны > Аутидентификация APEX Oracle


Автор: smospan 23.10.2014, 10:17
У меня такая проблема: Существует несколько видов авторизации.
1. по таблице - существует отдельная таблица.
2. Авторизация Application Express Accounts - внутренними механизмами Apex
Необходимо выполнить одну точку входа.
Так как я читал что в Apexe в один момент времени, использовать один тип авторизации.
Я решил использовать тип авторизации - Custom
Проверить авторизацию по таблице возможно следующим образом:

function my_authentication (
p_username in varchar2,
p_password in varchar2 )
return boolean
is
acsess_ok boolean;
begin

if auth.authenticate_ldap(p_username,p_password)= true then
acsess_ok :=true;
elsif auth.authenticate_apex (p_username,p_password)= true then
acsess_ok :=true;
else acsess_ok :=false;
end if;
return acsess_ok;
exception
when OTHERS then return false;
end;
Каким оразом добавить проверку авторизацию Application Express Accounts?
Я пробывал вариант.
function my_authentication_test
(
p_username in varchar2,
p_password in varchar2 )
return boolean
is
acsess_ok boolean;
session_id_num number;
var_user_name varchar2(200);
begin
acsess_ok := false;
Select apex_custom_auth.get_session_id_from_cookie into session_id_num from dual; -- Получение сессии

:P101_SESSION_ID:=session_id_num;
apex_custom_auth.set_session_id(p_session_id => session_id_num);
Select apex_custom_auth.get_username into var_user_name from dual; --Получение user name
if apex_authentication.is_authenticated then
acsess_ok :=true;
:P101_RESULT_FUNCTION := 'Да '||:APP_USER||var_user_name;
else
acsess_ok :=false;
:P101_RESULT_FUNCTION := 'Нет '||:APP_USER||var_user_name;
end if;
--acsess_ok :=true;
return acsess_ok;
exception
when OTHERS then return false;
end;
Но столкнулся с проблемой что не могу получить имя usera
Select apex_custom_auth.get_username into var_user_name from dual;
мне возвращает nobody.
Подскажите как решить данную проблему? 
Заранее спасибо.

Автор: Addidas 7.12.2014, 22:10
COOKIE

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)