0

我们有一个 Java Spring 应用程序,在数据库中有很多联系人。现在我们想通过 CardDAV 提供这些联系人,以便通过外部设备访问它们。

据我了解 CardDAV,它使用“知名”协议。这意味着,它会向上看http://mydomain.com/.well-known/carddav

这可能是个问题,因为我们正在运行一个 Tomcat 服务器,并且在其上运行多个应用程序,并且每个应用程序都应该提供一个 CardDAV 服务器。这意味着,我们的 URL 看起来像:

  • http://mydomain.com/appOne/

  • http://mydomain.com/appTwo/

  • http://mydomain.com/appThree/

这些应用程序中的每一个都有一组完全不同的用户和数据。尽管这些 CardDAV 存储库中的每一个都必须查找自己的数据源并且必须使用自己的身份验证机制。

问题当然是:如何在一个域中获得多个不同的 CardDAV 服务器?


顺便说一句:是否有任何关于 CardDAV 的真实信息(不仅仅是 WebDAV 还是都一样?!)?

例如,我找不到有关多个存储库/访问权限限制的任何信息。也许我想拥有一个拥有多个不同用户的 CardDAV 服务器,其中每个用户都有自己的地址簿,并且有一些常见的地址簿。

4

2 回答 2

1

众所周知的 url 用于客户端在用户只需键入域名时自动发现 carddav 服务器的根目录。每个域只能重定向到 1 个服务器,但您可以设置多个域以重定向到多个 carddav 服务器。

如果你不能使用多个子域,你根本就不能使用众所周知的。相反,您必须要求用户填写其委托人的完整 URL 以设置其帐户。

至于您的问题,是否有“真实”信息。rfc6352是官方文档。它绝对不仅仅是 WebDAV。

于 2013-10-24T18:00:20.423 回答
0

实际上,iOS 仅支持 well-known。如果 iOS 设备无法通过 well-known 进行连接,它将允许用户输入完整的主体地址,但只有在向用户显示错误消息之后,大多数用户才会放弃。

但是,重定向发生在身份验证之后,因此只要您能够在根目录进行身份验证(例如,使用包含子站点的用户名方案,例如“appOne:brad”),那么您应该能够做到这一点。或者,如上所述,只需使用子域。

于 2013-10-24T22:08:53.167 回答