2009-08-25 16 views
7

में कुछ पृष्ठों के लिए HTTPS का उपयोग करें मेरे पास एक सर्वलेट आधारित वेबैप टॉमकैट 6 सर्वर पर चल रहा है। यूआरएल योजना एचटीटीपीएस है। पूरी साइट वर्तमान में HTTPS पर परोसा जा रहा है। लेकिन मैं वास्तव में क्या करना चाहूंगा खरीद और लॉगिन जैसे कुछ संचालन के लिए केवल HTTPS सेटअप करें। क्या टोमकैट में कोई विन्यास है जो मुझे आसानी से ऐसा करने में मदद कर सकता है?केवल सर्वलेट आधारित वेबपैप

क्या एचटीटीपीएस और HTTP में सत्र जारी रखने के लिए कोई कोड परिवर्तन आवश्यक है?

उत्तर

11

वास्तव में, यह आपके वेब ऐप की web.xml फ़ाइल में कॉन्फ़िगर किया गया है। आप बस कुछ यूआरएल निर्दिष्ट करते हैं जो <security-constraint><web-resource-collection> के रूप में सुरक्षित होना चाहिए और <transport-guarantee> के रूप में HT12PS आवश्यकता CONFIDENTIAL के मान के साथ निर्दिष्ट करें। कंटेनर पारदर्शी रूप से रीडायरेक्ट का प्रबंधन करेगा। सरल।

<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

जानकारी के लिए धन्यवाद, मैं यह कोशिश करूंगा! – Keshav

+0

मैंने इसे अपने web.xml में जोड़ने का प्रयास किया, लेकिन टॉमकैट रीडायरेक्ट नहीं करता है, यह बस विफल रहता है! क्या मुझसे कुछ गलत हो रही है? मैं टोमकैट 5.5.23 का उपयोग कर रहा हूँ। – ep4169

+0

मैंने इसे अपने ऐप के web.xml में करने की कोशिश की, लेकिन टॉमकैट रीडायरेक्ट नहीं करता है; यह बस कुछ भी लोड करने में विफल रहता है। क्या मुझसे कुछ गलत हो रही है? – ep4169

2

आपको बस एक HTTP कनेक्टर सेट करने की आवश्यकता है और आपका सभी सर्वलेट HTTP पर भी उपलब्ध होगा।

संचालन HTTPS की आवश्यकता होती है के लिए, आप इस तरह अपने आप को इस लागू करने के लिए,

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

हमारे मामले में, लॉगिन यूआरएल उपयोगकर्ता द्वारा टाइप किया जा सकता है की जरूरत है ताकि हम HTTPS पृष्ठ पर उपयोगकर्ता अनुप्रेषित अगर HTTP URL है घुसा।

यदि आप सर्वलेट सत्र (JSESSIONID) के बारे में बात कर रहे हैं, तो आपको HTTP और HTTPS के बीच सत्र साझा करने में कोई समस्या नहीं होनी चाहिए क्योंकि Tomcat कुकीज़ में "सुरक्षित" ध्वज नहीं जोड़ता है।