कुछ वेब सेवाओं के लिए मैं सत्रों का उपयोग अक्षम करना चाहता हूं। मैं बनाने सत्र जोड़ा = "कभी नहीं" config करने के लिए:वसंत विकल्प बनाने-सत्र = कुछ परिदृश्यों में "कभी नहीं" अनदेखा किया जाता है?
<beans:bean id="http403EntryPoint"
class="org.springframework.security.web.authentication.Http403ForbiddenEntryPoint"/>
<http use-expressions="true" entry-point-ref="http403EntryPoint"
create-session="never">
<custom-filter ref="x509Filter" position="PRE_AUTH_FILTER"/>
</http>
यह ज्यादातर मामलों के लिए काम करता है, जब पूर्व प्रमाणीकृत उपयोगकर्ता क्लाइंट प्रमाणपत्र जो आवेदन में पंजीकृत नहीं है है को छोड़कर, इसलिए हमारे प्रमाणीकरणउसर DetailsServiceउपयोगकर्ता नाम नॉटफाउंड अपवाद फेंकता है। यदि उपयोगकर्ता के पास कोई प्रमाणपत्र नहीं है या कोई पंजीकृत प्रमाणपत्र है, तो कोई सत्र नहीं बनाया गया है (HTTP प्रतिक्रिया में कोई सेट-कुकी शीर्षलेख नहीं है)। वर्णित मामले में एक कुकी भेजी जाती है। यह (प्रत्येक क्रम में कुकी क्रमशः) प्रत्येक निम्न अनुरोध पर भी मूल्यांकन किया जाता है, भले ही क्लाइंट प्रमाणपत्र बदल दिया गया हो (मूल रूप से एक सत्र निर्धारण हमले की इजाजत देता है - ऐप प्रत्येक कॉल पर पुनः प्रमाणीकरण के बजाय सहेजे गए प्रमाणीकरण का उपयोग करता है)।
हम वसंत सुरक्षा 3.0.5 का उपयोग करते हैं। टॉमकैट 6 और 7 और जेबॉस 7.1.1 के साथ भी परीक्षण किया गया।
वर्णित परिदृश्य में एक सत्र क्यों बनाया गया है?
पुनश्च: सत्र निर्धारण समस्या शायद checkForPrincipalChanges AbstractPreAuthenticatedProcessingFilter में की स्थापना करके workarounded किया जा सकता है, लेकिन मैं क्यों एक सत्र में सभी बनाई गई है का जवाब में दिलचस्पी है।