2012-07-05 10 views
8

içinde HttpServletRequest'e erişme Özel bir AuthenticationProvider içinde HttpServletRequest'e nasıl erişirim. BuÖzel bir AuthenticationProvider

RequestAttributes requestAttributes = RequestContextHolder.getRequestAttributes(); 

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

VEYA

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

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

i alıyorum kullanıcı adı null adlı

ama RequestContextHolder.getRequestAttributes() yapıyor denedi; null değerini döndürür.

İstek standardına başvurmak, iletmek veya Spring'in kendi sihrini yapmasını sağlamak için başvurmak istiyorum.

Ben de güvenlik konferansında arandı ama hala henüz tespit şey sığınak var benim web.xml

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

yılında RequestContextListener veriyorum.

Şimdiden teşekkürler.

+0

Bu kimlik bilgileri Kimlik Doğrulama nesnesinde yer almamalıdır? http://static.springsource.org/spring-security/site/docs/3.0.x/apidocs/org/springframework/security/authentication/AuthenticationProvider.html – dardo

+0

Dardo doğru. Muhtemelen bazı temel örneklere bakmalı ve belgelerin bazılarını okumalı, daha sonra neyi başarmaya çalıştığınızı daha ayrıntılı olarak açıklamalısınız, çünkü kullanıcı adına bu şekilde erişmeye çalışmak için geçerli bir neden düşünemiyorum. –

+0

Kimlik bilgileri gerçekten Kimlik Doğrulama nesnesinde olacaktır. Bununla birlikte, ben de bir çözüm arıyorum. İsteğime de erişmem gerekiyor ama başka bir nedenden dolayı. Uygulamamda, URL kimlik doğrulamasında bir rol oynar. Bu sınıfa nasıl ulaşacağınız hakkında bir fikrin var mı? – Wouter

cevap

8

Sadece dinleyicimi web.xml dosyasına ekledim ve RequestContextHolder.getRequestAttributes(), null yerine RequestAttributes değerini döndürüyor.

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

Bu filtreyi uzatmaz neden, giriş formunu özelleştirmek istiyorsanız: org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter

-2

Kullanım request.getParameter ("j_username"); request.getAttribute ("j_username") yerine;

Benim için çalışıyor. Size yardımcı olup olmadığına bakın.

İlgili konular