2009-08-25 9 views
7

Mam aplet oparty na serwletach działający na serwerze Tomcat 6. Schemat adresu URL to HTTPS. Cała witryna jest obecnie wyświetlana w HTTPS. Ale naprawdę chciałbym skonfigurować HTTPS tylko dla niektórych operacji, takich jak zakup i logowanie. Czy jest jakaś konfiguracja w Tomcat, która może mi w tym pomóc?Używaj HTTPS tylko dla niektórych stron w aplecie opartym na serwletach.

Czy są jakieś zmiany kodu wymagane do utrzymywania sesji przez HTTPS i HTTP?

Odpowiedz

11

Naprawdę, najlepiej, jest to skonfigurowane w pliku web.xml Twojej aplikacji internetowej. Po prostu określ niektóre adresy URL, które powinny być bezpieczne jako <security-constraint><web-resource-collection> i określ wymagania HTTPS jako <transport-guarantee> o wartości CONFIDENTIAL. Kontener będzie zarządzać przekierowaniami w sposób przezroczysty. Prosty.

<security-constraint> 
    <web-resource-collection> 
    <web-resource-name>My Secure Stuff</web-resource-name> 
    <url-pattern>/some/secure/stuff/*</url-pattern> 
    <url-pattern>/other/secure/stuff/*</url-pattern> 
    ... 
    </web-resource-collection> 
    <user-data-constraint> 
    <transport-guarantee>CONFIDENTIAL</transport-guarantee> 
    </user-data-constraint> 
</security-constraint> 
+0

Dzięki za informację, spróbuję tego! – Keshav

+0

Próbowałem dodać to do mojego web.xml, ale Tomcat nie przekierowuje, to po prostu zawiedzie! czy robię coś źle? Używam Tomcat 5.5.23. – ep4169

+0

Próbowałem tego w web.xml mojej aplikacji, ale Tomcat nie przekierowuje; po prostu nie ładuje niczego. czy robię coś źle? – ep4169

2

Wystarczy ustawić konektor HTTP, a wszystkie serwlety będą dostępne również w protokole HTTP.

Dla operacje wymagające HTTPS, trzeba egzekwować ten sam jak ten,

if (!request.isSecure()) { 
    response.sendError(HttpServletResponse.SC_FORBIDDEN); 
    return; 
} 

W naszym przypadku, URL logowania może być wpisany przez użytkownika, więc przekierować użytkownika do HTTPS strony jeśli HTTP URL weszła.

Jeśli mówisz o sesjach serwletów (JSESSIONID), nie powinieneś mieć problemów z dzieleniem sesji pomiędzy HTTP i HTTPS, ponieważ Tomcat nie dodaje "bezpiecznej" flagi do ciasteczek.