2012-07-05 11 views
8

Jak uzyskać dostęp do HttpServletRequest w niestandardowym uwierzytelnianiu uwierzytelniania. Próbowałem robić toUzyskaj dostęp do HttpServletRequest w niestandardowym uwierzytelnianiu Provider

RequestAttributes requestAttributes = RequestContextHolder.getRequestAttributes(); 

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

LUB

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

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

jestem coraz nazwę użytkownika NULL

ale RequestContextHolder.getRequestAttributes(); zwraca null.

Chcę odwołać się do requestcontext, przekazać go lub zlecić Spring Magic, abym mógł się do niego odwoływać.

Jestem również daje RequestContextListener w moim web.xml

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

Przeszukałem forum zabezpieczeń, ale nadal nie miałaś jeszcze znalazłem nic.

Z góry dziękuję.

+0

Czy te poświadczenia nie powinny być zawarte w obiekcie Uwierzytelnianie? http://static.springsource.org/spring-security/site/docs/3.0.x/apidocs/org/springframework/security/authentication/AuthenticationProvider.html – dardo

+0

Dardo ma rację. Myślę, że prawdopodobnie powinieneś spojrzeć na kilka podstawowych próbek i przeczytać część dokumentacji, a następnie wyjaśnić bardziej szczegółowo, co próbujesz osiągnąć, ponieważ nie mogę wymyślić uzasadnionego powodu, aby próbować uzyskać dostęp do nazwy użytkownika w ten sposób. –

+0

Poświadczenia rzeczywiście będą w obiekcie Uwierzytelnianie. Jednak też szukam rozwiązania. Ja również potrzebuję uzyskać dostęp do wniosku, ale z innego powodu. W mojej aplikacji URL odgrywa rolę w uwierzytelnianiu. Jakieś pomysły, jak zdobyć je w tej klasie? – Wouter

Odpowiedz

8

Właśnie dodałem odbiornik do mojego pliku web.xml, a RequestContextHolder.getRequestAttributes() zwraca wartość RequestAttributes zamiast wartości null.

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

Jeśli chcesz dostosować logowania formularza, dlaczego nie rozszerzyć ten filtr: org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter

-2

Zastosowanie request.getParameter ("j_username"); zamiast request.getAttribute ("j_username");

To działa dla mnie. Sprawdź, czy to ci pomaga.

Powiązane problemy