La implementación de la autenticación para un servlet WebDAV
Pregunta
Actualmente estoy usando este WebDAV Java Servlet implementación, es por lo que yo saben el más pequeño y el más fácil de usar solución de WebDAV de java que no depende de Tomcat (Uso de WebLogic).
Así que me gustaría extender esto a usar mi capa de seguridad subyacente que tanto utiliza una conexión de base de datos para autenticar a los usuarios.
Mi pregunta es si esto es posible? ¿El HttpServletRequest incluso obtener la autenticación?
Considere la siguiente cabecera del método:
protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { }
Ahora me gustaría utilizar req.getPrincipal para obtener el principal de usuario que contiene el nombre de usuario y contraseña. Sin embargo, mi getPrincipal siempre devuelve un valor nulo, incluso si fijo mi cliente WebDAV para la autenticación de Windows o cualquier otra cosa para esa materia.
Solución
Si usted está utilizando su propia capa de autenticación, es necesario inyectar su información de autenticación al ServletRequest. Esto se hace normalmente a través de un filtro y se envolvió HttpServletRequest.
Se puede encontrar un buen ejemplo en el CAS,
http://www.jasig.org/cas
Descargar la fuente y mirar esta clase,
org.jasig.cas.client.web.filter.HttpServletRequestWrapperFilter