2010-06-14 11 views
6

J'utilise Tomcat dans mon environnement de production et jette dans mon environnement de test (via jetty-maven-plugin). Tomcat définit l'indicateur de sécurité sur un cookie jsessionid, quand il est envoyé sur un canal sécurisé (https), ce qui me semble être une bonne idée, car cela empêche la session d'être exposée, lorsque l'utilisateur klicks sur un http://-link. Mais Jetty ne le fait pas! Je voudrais forcer Jetty à se comporter comme Tomcat et toujours mettre le drapeau de sécurité sur jsessionid-cookies envoyer sur un canal sécurisé, parce que sinon, mon environnement de test se comporte considérablement différent de mon environnement de production. Mais je ne trouve aucune option de configuration pour réaliser ceci.Comment envoyer jsessionid-cookies avec le flag sécurisé lors de l'utilisation d'un canal sécurisé

Je me demande aussi, s'il s'agit d'un bug de sécurité dans Jetty. Parce que ne pas marquer un jsessionid-cookie envoie sur un canal sécurisé comme sécurisé révèle la session sécurisée si l'utilisateur revient à un canal non sécurisé.

Répondre

3

Je qui suit juste pour montrer l'exemple complet qui a fonctionné pour moi.

Mettez ce qui suit dans WEB-INF/jetée-web.xml

<?xml version="1.0" encoding="ISO-8859-1"?> 
<!DOCTYPE Configure PUBLIC "-//Jetty//Configure//EN" "http://www.eclipse.org/jetty/configure.dtd"> 

<Configure class="org.eclipse.jetty.webapp.WebAppContext"> 
    <Get name="sessionHandler"> 
     <Get name="sessionManager"> 
      <Set name="secureCookies" type="boolean">true</Set> 
     </Get> 
    </Get> 
</Configure> 
1

Les modifications de configuration nécessaires pour définir la propriété secureCookies peuvent être ajoutés au fichier jetée-web.xml:

<Get name="sessionHandler"> 
    <Get name="sessionManager"> 
    <Set name="secureCookies">true</Set> 
    </Get> 
</Get>