我们有一个Java Spring应用程序,在数据库中有很多联系人。现在我们想通过CardDAV提供这些联系人,以便通过外部设备访问它们。
据我了解CardDAV,它使用'众所周知'的协议。这意味着,它会查找http://mydomain.com/.well-known/carddav
这可能是一个问题,因为我们运行了Tomcat服务器,并且在其上运行了多个应用程序,并且每个应用程序都应提供CardDAV服务器。这意味着,我们的网址如下:
http://mydomain.com/appOne/
http://mydomain.com/appTwo/
http://mydomain.com/appThree/
每个应用程序都有完全不同的用户和数据集。虽然每个CardDAV存储库都必须查找自己的数据源,但必须使用自己的身份验证机制。
问题当然是:如何在一个域中获得多个不同的CardDAV服务器?
例如,我找不到任何有关多个存储库/访问权限限制的信息。也许我想拥有一个拥有多个不同用户的CardDAV服务器,每个用户都有自己的地址簿,还有一些常见的地址簿。
答案 0 :(得分:1)
当用户输入域名时,众所周知的url用于客户端自动发现carddav服务器的根目录。您每个域只能重定向到1个服务器,但您可以设置多个域以重定向到多个carddav服务器。
如果不能使用多个子域,则根本无法使用众所周知的。相反,您将不得不要求用户填写他们的校长的完整URL以设置他们的帐户。
关于你的问题是否有“真实”的信息。 rfc6352是官方文档。它绝对不仅仅是WebDAV。
答案 1 :(得分:0)
实际上,iOS仅支持众所周知。如果iOS设备无法通过众所周知的方式连接,它将允许用户输入完整的主体地址,但这只是在向用户显示错误消息之后,此时大多数用户将放弃。
但是,重定向发生在身份验证之后,因此只要您能够在根端进行身份验证(例如,使用包含子站点的用户名方案,例如'appOne:brad'),那么您应该能够做到这一点。或者,如上所述,只使用子域。