我目前正在使用this WebDAV Java Servlet实现,据我所知,最小和最容易使用的WebDAV Java解决方案不依赖于Tomcat(使用WebLogic)。
所以我想扩展它以使用我的底层安全层,它有点使用数据库连接来验证用户。
我的问题是,这是否可行? HttpServletRequest甚至可以获得身份验证吗?
考虑以下方法标题:
protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { }
现在我想使用req.getPrincipal来获取包含用户名和密码的用户主体。但是,即使我将WebDAV客户端设置为Windows身份验证或其他任何内容,我的getPrincipal也始终返回null。
答案 0 :(得分:3)
如果您使用自己的身份验证层,则需要将身份验证信息注入ServletRequest。这通常通过过滤器和包装的HttpServletRequest来完成。
你可以在CAS中找到一个很好的例子,
http://www.jasig.org/cas
下载源代码并查看此课程
org.jasig.cas.client.web.filter.HttpServletRequestWrapperFilter