Téléchargement des produits


Version anglaise


 

Introduction

La session Web (ou session HTTP) utilisée pour conserver le contexte d'une application Web entre un client et le serveur d'applications peut, dans certains cas, être partagée entre plusieurs clients. Ce partage peut alors être la source d'effets de bord et d'un comportement dysfonctionnel.

Il faut savoir par exemple que dans une instance des navigateurs IE7, IE8, Firefox, tous les onglets partagent la même session Web. Dans le même ordre d'idées, toutes les instances du navigateur IE8 ou du navigateur Firefox partagent, par défaut, la même session Web.

Pour palier ce problème, un mode dit "mode protégé" a été mis en place de façon à ce que chaque couple (instance de navigateur, onglet) s'appuie sur une pseudo-session Web qui lui est propre.

 

Le mode protégé s'appuie principalement sur un préfixage des attributs stockés sur l'objet implicite Session. Le préfixe est construit ainsi "psh<ClientSessionId>_". Chaque client possède un <ClientSessionId>, délivré par le serveur lors de la première requête, qui lui est propre.

En mode protégé on parle alors d'une pseudo-session Web (ou pseudo-session http). Toutes les pseudo-sessions Web sont portées par l'objet implicite Session, la mise en place d'un préfixage permettant de dissocier les clients les uns des autres.

 

Le mode protégé s'applique aux contextes suivants :

 

Ordres L4G Adélia

En mode protégé, les ordres Adélia [RECUPERER_CTX, SAUVER_CTX, SUPPRIMER_CTX, LIBERER_SESSION] faisant référence à l'objet implicite Session font désormais référence à la pseudo-session Web et non plus à la session Web.

Pour faire référence à la session Web, il faut, pour les ordres de contexte, utiliser le niveau 'global_session', alors que pour l'ordre LIBERER_SESSION il faut utiliser la directive *ALL(GLOBAL_SESSION).

 

Les deux fonctions de la VaToolBx, VaToolBxAwsGetPseudoSessionId et VaToolBxAwsGetPrefixHTTPSession, permettent de récupérer respectivement l'ID et le préfixe de la pseudo-session Web. Ces deux fonctions rendent la chaîne *BLANK si le mode protégé n'est pas actif.

 

Débogueur Visual/Web

Le mode protégé s'applique également au débogueur Adélia : il est désormais possible de s'attacher à une pseudo-session Web. Pour cela, il faut repérer la ligne présentant le bon ID de session et le bon préfixe, puis sélectionner cette ligne.

 

Activation du mode protégé

Pour bénéficier du mode protégé, l'application Web doit avoir été entièrement générée avec une version d'Adélia Studio supérieure ou égale à la V11 PTF03. D'autre part, il faut créer une clé SESSION_MODE avec la valeur 1 dans le fichier CfgConfiguration.properties de l'application Web.

 

URL & pseudo-session Web

Quand une pseudo-session Web a été initiée et qu'une page JSP générée avec Adélia Studio doit être accédée directement via une URL, il est possible de lui passer l'ID de pseudo-session Web afin de rester dans le même contexte d'exécution.

Cet ID est passé en tant que dernier paramètre (nommé AdeliaKeyClientId) de l'URL.

 

Exemple :

• L'URL possède déjà des paramètres :

...&AdeliaKeyClientId=<ValeurId>

 

• L'URL ne possède pas encore de paramètres :

...?AdeliaKeyClientId=<ValeurId>

 

Préparateur de sessions et Pool nommé

L'utilisation d'un préparateur de sessions spécifique (ou d'un pool de sessions spécifique) s'active en fixant une valeur sur l'objet implicite Session via l'attribut AdeliaKeySessionPrepName (respectivement AdeliaKeyPoolName).

 

Il n'est pas possible de fixer une valeur pour ces attributs depuis une page JSP frontale non générée avec Adélia Studio pour une pseudo-session Web. En effet, l'ID de la pseudo-session n'a pas encore été créé. En revanche, ces attributs peuvent être créés à partir d'une page JSP frontale générée avec Adélia Studio à l'aide de l'ordre SAUVER_CTX avec le niveau "session".

 

En mode protégé, les attributs AdeliaKeySessionPrepName et AdeliaKeyPoolName sont d'abord cherchés sur la pseudo-session, puis, en cas d'échec, sur l'objet implicite Session. Il est ainsi possible d'utiliser un préparateur de sessions (ou un pool de sessions) spécifique fixé à partir d'une page JSP frontale non générée avec Adélia Studio.

 

↑ Haut de page

  • Aucune étiquette