2014-01-20 2 views
1

게시 로그인 페이지를 변경 로그인 페이지로 리디렉션하고 싶습니다. 인증 기능으로 user_mng.authenticate를 호출하는 사용자 정의 인증 스키마가 있습니다.apex APEX_CUSTOM_AUTH.LOGIN 리디렉션

function authenticate(p_username in VARCHAR2, p_password in VARCHAR2) RETURN BOOLEAN IS 
ntype int; 
     pwobf varchar2(100); 
     BEGIN 
     pwobf:=obfuscate(nvl(p_password,'**')); 
     select user_role 
     into ntype 
     from(select 1 user_role 
      from view_users 
      where upper(user_id)=upper(p_username) 
       and password=p_password 
      union all 
      select 2 user_role 
      from view_users 
      where upper(user_id)=upper(p_username) 
       and password=pwobf);  
     apex_util.set_authentication_result(0); 
     RETURN TRUE; 
     exception when no_data_found then 
     apex_util.set_authentication_result(1); 
     return false; 
     END authenticate; 

하면 로그인 페이지가 거의 게시물에 로그인 프로세스를 제출 자동으로 APEX에 의해 생성 된 하나의 내가

을 추가한다

http://gyazo.com/10dc90b9e271ae11fadfa48201665a3d.png

로그인 페이지의 PRINTSCREEN를 검색 할 수 있습니다

begin APEX_CUSTOM_AUTH.LOGIN (
    p_uname  => :P101_USERNAME, 
    p_password => :P101_PASSWORD, 
    p_session_id => V('APP_SESSION'), 
    p_app_page => :APP_ID||':18');end; 

여기서 18 페이지는 내 대상 페이지이고 1은 홈 페이지입니다.

나는 왜 대부분의 시간이 페이지가 집으로 보내지는지 모르겠다. 나는 다른 조건과 관련이 없지만 때때로 로그인 페이지로 간다. p_app_page => :APP_ID||':18'에 잘못된 페이지를 설정하면 로그인 중에 잘못된 비밀번호 (인증 프로세스가 작동 중임)를 설정하면 오류 (페이지가 읽히는 중)가 수신됩니다.

브라우저 캐시를 정리하려고했으나 아무 효과가없는 것 같습니다.

나는 Tomcat 7과 함께 Apex 4.2.4를 사용하고 있습니다. 나는 어떤 도움을 주셔서 감사합니다.

감사합니다.

답변

3

악당은 딥 링크입니다. 다음과 같이 해결됨

declare 
vpg varchar2(10):=':1'; 
begin 
APEX_UTIL.SET_SESSION_STATE('FSP_AFTER_LOGIN_URL'); 
IF user_mng.need_psw_rst(:P101_USERNAME) then 
    vpg:=':18'; 
end if; 
APEX_CUSTOM_AUTH.LOGIN (
    P_UNAME  => :P101_USERNAME, 
    P_PASSWORD => :P101_PASSWORD, 
    P_SESSION_ID => v('APP_SESSION'), 
    p_app_page => :APP_ID||vpg 
    ); 
end;