2010-04-18 7 views
2

En utilisant Jetty 7.0.2, je n'arrive pas à définir un chemin de cookie de session personnalisé.Jetty 7 ne me permet pas de personnaliser un chemin de cookie de session

J'héberge plusieurs sites sur le même serveur en utilisant apache pour acheminer les requêtes au bon contexte. (Remplacé http comme htp que stackoverflow pense mes liens multiples pourraient être du spam)

<VirtualHost *:80> 
    ServerName context.domain.com 

    ProxyRequests On 
    ProxyPreserveHost Off 

    <Proxy *:80> 
    Order deny,allow 
    Allow from 127.0.0.1 
    </Proxy> 

    ProxyPass/htp://localhost:8080/context/ 
    ProxyPassReverse/htp://localhost:8080/context/ 

    <Location /> 
    Order allow,deny 
    Allow from all 
    </Location> 
</VirtualHost> 

Jetty est en cours d'exécution sur le même serveur sur le port 8080 et mon contexte est disponible @/contexte

L'utilisateur accède à l'application @ htp: //context.domain.com mais jetty définit le chemin du cookie de session @/context. Cela empêche le navigateur d'accéder au cookie puisque le chemin d'accès réel au contexte n'est pas utilisé. Je dois remplacer le paramètre par défaut de Jetty pour définir le cookie pour le contexte, et définir le chemin à la racine (/).

Dans mon webdefault.xml de la jetée, je donne les résultats suivants, qui travaille en partie:

<context-param> 
    <param-name>org.eclipse.jetty.servlet.SessionCookie</param-name> 
    <param-value>CustomCookieName</param-value> 
</context-param> 
<context-param> 
    <param-name>org.eclipse.jetty.servlet.SessionPath</param-name> 
    <param-value>/</param-value> 
</context-param> 

Le cookie est correctement configurée avec un nom personnalisé, mais ce ne sont pas le réglage de la SessionPath. Peu importe ce que je mets la valeur à ... il refuse de mettre un cookie à n'importe quel chemin mais/contexte.

Cela m'a rendu fou, toute aide serait grandement appréciée.

Répondre

1

on dirait que vous avez touché this bug, provoquant la jetée d'utiliser toujours le chemin de contexte pour les cookies de session.

1

Je ne suis pas aussi familier avec Jetty, mais il semble que le client accède à à l'aide de/Context, où le cookie est généré. Je voudrais vérifier le code et être sûr que votre cookie n'est pas généré au/Context de votre site. Peu importe que votre utilisateur se connecte à la racine du domaine, le cookie ne regarde pas où votre utilisateur se connecte, il regarde d'où le cookie est généré.

Si votre cookie est généré à partir de/Context, votre utilisateur pourrait même accéder à htp: //foobar.domain.com cela semblerait toujours provenir de/Context parce que c'est de là qu'il est généré. La seule solution consiste à générer le cookie au niveau racine et non sur les pages de la zone/Context. Ceci afin d'empêcher les monstres de cookie de voler des informations de cookie sur des sites auxquels il n'appartient pas (si vous hébergez sur votre site sur foo.yahoo.com et que vous créez un cookie, cela garderait un autre site que vous ne possédez pas (bar.yahoo .com) de regarder votre cookie. c'est normal.