0

我目前正在使用这个WebDAV Java Servlet 实现,据我所知,它是最小和最容易使用的不依赖于 Tomcat 的 WebDAV Java 解决方案(使用 WebLogic)。

所以我想扩展它以使用我的底层安全层,它在某种程度上使用数据库连接来验证用户。

我的问题是这是否可能?HttpServletRequest 甚至获得身份验证吗?

考虑以下方法头:

protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { }

现在我想使用 req.getPrincipal 来获取包含用户名和密码的用户主体。但是,即使我将我的 WebDAV 客户端设置为 Windows 身份验证或其他任何东西,我的 getPrincipal 总是返回 null 。

4

1 回答 1

2

如果您使用自己的身份验证层,则需要将身份验证信息注入 ServletRequest。这通常通过过滤器和包装的 HttpServletRequest 完成。

你可以在 CAS 中找到一个很好的例子,

http://www.jasig.org/cas

下载源码看看这个类,

org.jasig.cas.client.web.filter.HttpServletRequestWrapperFilter
于 2009-10-01T13:21:16.120 回答