¿Cómo consigo el acceso a HttpServletRequest dentro de un AuthenticationProvider personalizado. He intentado hacer estoObtener acceso a HttpServletRequest dentro de un encargo AuthenticationProvider
RequestAttributes requestAttributes = RequestContextHolder.getRequestAttributes();
HttpServletRequest request = ((ServletRequestAttributes) requestAttributes).getRequest();
String username = (String) httpReq.getAttribute("j_username");
O
RequestAttributes requestAttributes = RequestContextHolder.getRequestAttributes();
HttpServletRequest httpReq = ((ServletRequestAttributes)RequestContextHolder.currentRequestAttributes()).getRequest();
String username = (String) httpReq.getAttribute("j_username");
estoy consiguiendo nombre de usuario nulo
pero RequestContextHolder.getRequestAttributes(); devuelve nulo.
quiero hacer referencia a la RequestContext, pasarlo en ella o tenga primavera haga su magia por lo que se puede hacer referencia a ella.
Yo también estoy dando el RequestContextListener en mi web.xml
<listener>
<listener-class>org.springframework.web.context.request.RequestContextListener</listener-class>
</listener>
He buscado el foro de seguridad, pero todavía havent encontrado nada todavía.
Gracias de antemano.
¿No deberían esas credenciales estar contenidas dentro del objeto Autenticación? http://static.springsource.org/spring-security/site/docs/3.0.x/apidocs/org/springframework/security/authentication/AuthenticationProvider.html – dardo
Dardo es correcto. Creo que probablemente debas mirar algunas muestras básicas y leer parte de la documentación, luego explicar con más detalle lo que estás tratando de lograr, porque no puedo pensar en una razón válida para intentar acceder al nombre de usuario de esta manera. –
Las credenciales se encontrarán en el objeto Autenticación. Sin embargo, también estoy buscando una solución. Yo también necesito acceder a la solicitud, pero por otra razón. En mi aplicación, la URL juega un papel en la autenticación. ¿Alguna idea sobre cómo obtenerlo en esta clase? – Wouter