2012-07-05 7 views
8

के भीतर HttpServletRequest तक पहुंच प्राप्त करें मैं कस्टम प्रमाणीकरणप्रदाता के भीतर HttpServletRequest तक पहुंच कैसे प्राप्त करूं। मैं इसकस्टम प्रमाणीकरणप्रदाता

RequestAttributes requestAttributes = RequestContextHolder.getRequestAttributes(); 

HttpServletRequest request = ((ServletRequestAttributes) requestAttributes).getRequest(); 
String username = (String) httpReq.getAttribute("j_username"); 

या

RequestAttributes requestAttributes = RequestContextHolder.getRequestAttributes(); 
HttpServletRequest httpReq = ((ServletRequestAttributes)RequestContextHolder.currentRequestAttributes()).getRequest(); 

String username = (String) httpReq.getAttribute("j_username"); 

मैं हो रही है उपयोगकर्ता नाम अशक्त

लेकिन RequestContextHolder.getRequestAttributes() कर की कोशिश की है; शून्य वापस आता है।

मैं requestcontext संदर्भ, उस में पारित, या उसके जादू तो मैं यह संदर्भित कर सकते हैं करते हैं स्प्रिंग करना चाहते हैं।

मैं अपने web.xml

<listener> 
    <listener-class>org.springframework.web.context.request.RequestContextListener</listener-class> 
    </listener> 

में RequestContextListener दे रहा हूँ मैं सुरक्षा मंच खोज की है, लेकिन अभी भी अभी तक पाया कुछ भी havent।

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

+0

वे प्रमाणीकरण प्रमाणीकरण वस्तु के भीतर समाहित किया जा नहीं करना चाहिए? http://static.springsource.org/spring-security/site/docs/3.0.x/apidocs/org/springframework/security/authentication/AuthenticationProvider.html – dardo

+0

Dardo सही है। मुझे लगता है कि आप शायद, कुछ बुनियादी नमूने पर गौर करना चाहिए और प्रलेखन के कुछ पढ़ा है, तो और अधिक विस्तार आप क्या हासिल करने की कोशिश कर रहे हैं के साथ बताएं, क्योंकि मैं इस तरह से उपयोगकर्ता नाम का उपयोग करने की कोशिश कर रहा है के लिए एक वैध कारण के बारे में सोच नहीं कर सकते। –

+0

प्रमाण-पत्र वास्तव में प्रमाणीकरण ऑब्जेक्ट में होंगे। हालांकि, मैं भी एक समाधान की तलाश में हूं। मुझे भी अनुरोध का उपयोग करने की आवश्यकता है, लेकिन किसी अन्य कारण से। मेरे ऐप में यूआरएल प्रमाणीकरण में एक भूमिका निभाता है। इस वर्ग में इसे कैसे प्राप्त करें इस पर कोई विचार? – Wouter

उत्तर

8

मैं बस अपना web.xml और RequestContextHolder.getRequestAttributes() अशक्त के बजाय RequestAttributes रिटर्न के लिए श्रोता गयी।

<listener> 
    <listener-class>org.springframework.web.context.request.RequestContextListener</listener-class> 
</listener> 

आप आप प्रपत्र के लिए लॉग इन, तुम क्यों इस फिल्टर विस्तार नहीं कस्टमाइज़ करना चाहते हैं: org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter

-2

उपयोग request.getParameter ("j_username"); request.getAttribute ("j_username") के बजाय;

यह मेरे लिए काम करता है। देखें कि यह आपकी मदद करता है या नहीं।

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