2010-03-24 38 views
1

Version courte:Comment trouver si une session Oracle APEX est expiré

Si la fonction wwv_flow_custom_auth_std.is_session_valid (ou apex_custom_auth_std.is_session_valid) retourne TRUE, est-il possible que la session est terminée, mais encore en vie? Si oui, comment pouvez-vous vérifier si une session a expiré?

Version longue:

J'ai créé un système d'authentification unique sur nos applications Oracle APEX, à peu près basé sur ce tutoriel:

http://www.oracle.com/technology/oramag/oracle/09-may/o39security.html

La seule différence est que mon La connexion SSO principale est en Perl, plutôt qu'une autre application APEX. Il définit un cookie SSO et l'application peut vérifier si elle est valide avec une procédure de base de données.

J'ai remarqué que lorsque j'arrive le matin, tout le système ne fonctionne pas. Je recharge une page de l'application APEX, puis elle m'envoie à la page SSO car la session a expiré, je me connecte et je suis redirigé vers ma page d'application APEX d'origine. Cela fonctionne habituellement sauf la première chose le matin. Il semble que la session APEX ait expiré. Dans ce cas, il semble trouver la session, mais ensuite refuser de l'utiliser, et me renvoie à la page de connexion.

J'ai essayé de mon mieux de tracer le problème. La fonction "wwv_flow_custom_auth_std.is_session_valid" renvoie true, donc je suppose que la session est valide. Mais rien ne fonctionne jusqu'à ce que je supprime le cookie de session APEX. Ensuite, je peux me connecter facilement.

Quelqu'un sait s'il y a un autre appel qui me dirait si la session a expiré ou non?

Merci

+0

Désolé je ne sais pas - mais merci pour ce lien :) –

Répondre

1

Vous pouvez définir la durée maximale de session en quelques secondes sous la sécurité des applications attributs page.

Apex stipule ce qui suit:

« La durée de la session peut être remplacée par l'exploitation du travail qui fonctionne toutes les huit heures qui supprime les sessions de plus de 12 heures. »

Vous pouvez utiliser la vue apex_040100.APEX_WORKSPACE_SESSIONS pour déterminer si une session est valide en fonction de son existence ou de son heure de création. par exemple: session_created - systdate > 12Hours.

Vous devez également utiliser l'attribut "Au moment de la session directement à cette URL".

+0

cela peut être un meilleur commentaire que de répondre. – Phlume