2011-04-01 18 views
7

मेरे पास 2 विशेषता के साथ एक कामयाब सेम: userName & password, और कहा कि लॉगइन क्रेडेंशियल्स सत्यापित करने के लिए डेटाबेस का उपयोग एक login() विधि (अपने संबंधित getters और setters के तरीकों के साथ)।HTTPS, संरक्षित संसाधनों के लिए और के लिए लॉग इन

मेरा प्रश्न यह है कि जब उपयोगकर्ता "लॉगिन" बटन पर क्लिक करता है, तो कार्रवाई को https प्रोटोकॉल के माध्यम से जाना चाहिए। मैं इसे जेएसएफ 2 के साथ कैसे प्राप्त कर सकता हूं?

इसके अलावा, अगर मैं कुछ चेहरे को संरक्षित करना चाहता हूं (https प्रोटोकॉल के तहत), तो मैं इसे कैसे प्राप्त करूं? क्या कोई फ़िल्टर है जो मुझे ऐसा करने में सक्षम बनाता है?

अग्रिम धन्यवाद।

उत्तर

8

अपने ऐप्लिकेशन के web.xml में एक सुरक्षा बाधा को परिभाषित कर सकते हैं:

<security-constraint> 
    <web-resource-collection> 
     <web-resource-name>SecureConnection</web-resource-name> 
     <url-pattern>*</url-pattern> 
     <http-method>GET</http-method> 
     <http-method>POST</http-method> 
     </web-resource-collection> 
     <auth-constraint/> 
     <user-data-constraint> 
     <transport-guarantee>CONFIDENTIAL</transport-guarantee> 
     </user-data-constraint> 
</security-constraint> 

यूआरएल पैटर्न अनुकूल अपने प्रवेश पृष्ठ और अन्य सभी सुरक्षित पृष्ठों को रोकने के लिए। Https का उपयोग उपयोगकर्ता-डेटा-बाधा द्वारा परिभाषित किया गया है।

Java EE tutorial से:

आप गोपनीय निर्दिष्ट करते हैं या एक सुरक्षा बाधा का अभिन्न अंग है, यह आम तौर पर कि SSL के उपयोग की आवश्यकता है का मतलब है और सभी अनुरोधों को कि में URL प्रतिमानों से मिलान करने के लिए लागू होता है वेब संसाधन संग्रह, न केवल लॉगिन संवाद बॉक्स पर।

आप अपनी प्रवेश() विधि में लिखा था और Glassfish का उपयोग कर रहे हैं, तो आप विकल्प लॉगिन दृष्टिकोण के रूप में एक JDBCRealm साथ कंटेनर-आधारित प्रमाणीकरण पर एक नज़र डालें सकता है।

संबंधित मुद्दे