java - 实现 WebDAV Servlet 的身份验证

标签 java webdav

我目前正在使用 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/

相关文章:

java - 我如何在基于图 block 的 Android 游戏中检查碰撞?

java - onClickListener onclicklistener Android Java编程

java - 实现 VFS 的想法

iphone - 什么是 WEBDAV?

java - 在Java代码中,我创建的方法仅将第一个重复实例放入新数组中

java - 尝试使用 Spring Boot 2 启动 Gemfire 脉冲时出现 Jackson Cast 异常

java - IOException - read end dead - 在此示例中导致它的原因以及如何修复它 - Java 中的多线程应用程序

windows - 除非指定端口 443,否则通过 SSL 的“net use”失败

webdav - 对不存在的资源上的 PROPFIND 的正确响应

.net - SharePoint 上的 WebDav .NET 库将操作复制/移动到不同的网站集导致 409