我目前正在使用 this WebDAV Java Servlet 实现,据我所知,这是最小且最容易使用的不依赖于 Tomcat(使用 WebLogic)的 WebDAV java 解决方案。
因此,我想扩展它以使用我的底层安全层,该安全层在某种程度上使用数据库连接来验证用户身份。
我的问题是这是否可能? HttpServletRequest 是否获得了身份验证?
考虑以下方法头:
protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { }
现在我想使用 req.getPrincipal 来获取包含用户名和密码的用户主体。但是,即使我将 WebDAV 客户端设置为 Windows 身份验证或其他任何相关设置,我的 getPrincipal 也始终返回 null。
最佳答案
如果您使用自己的身份验证层,则需要将身份验证信息注入(inject) ServletRequest。这通常是通过过滤器和包装的 HttpServletRequest 完成的。
您可以在 CAS 中找到一个很好的示例,
http://www.jasig.org/cas
下载源代码并查看这个类,
org.jasig.cas.client.web.filter.HttpServletRequestWrapperFilter
关于java - 实现 WebDAV Servlet 的身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1502465/